簡體   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