[英]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.