繁体   English   中英

AWS使用SNS链接Lambda函数

[英]AWS Chaining Lambda Functions with SNS

我有两个lambda函数,当对象上传到S3时应该触发它们。

要触发这两个脚本,在第一个脚本中,我将发布一个sns主题,后面跟着第二个脚本。 发布时我应该通过事件,以便我可以操纵它。

我有问题将事件传递给第二个lambda函数。 我是这样做的:

第一个脚本像这样传递事件

exports.handler = function(event, context) {
 console.log("Loading metadata function");
 var eventText = JSON.stringify(event, null, 2);
 console.log("Received event:", eventText);
 var sns = new AWS.SNS({region:'us-west-2'});
 var messageparams = {
    Message: eventText, 
    Subject: "Successfully send",
    TopicArn: "MyArn"
 };
 sns.publish(messageparams);

第二个脚本应该使用这样的事件

def lambda_handler(event, context):
    """
    :param event:
    :param context:
    """
    # Loop through records provided by S3 Event trigger
    for s3_record in event['Records']:
        logger.info("Working on new s3_record...")
        # Extract the Key and Bucket names for the asset uploaded to S3
        key = s3_record['s3']['object']['key']

我建议您配置S3以直接向SNS发布事件而不使用任何中间Lambda。 接下来,您可以配置SNS通知调用的两个或更多Lambda。

另一方面,如果您只需要一个Lambda函数,则可以将S3配置为发布事件并使用事件数据直接调用Lambda作为参数而不涉及SNS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM