2016-08-18 18 views
1

オブジェクトをS3にアップロードするときにトリガされるべきラムダ関数が2つあります。AWS SNSでのラムダ関数の連結

両方のスクリプトを起動するには、最初のスクリプトでは、2番目のスクリプトが続くsnsトピックを公開しています。それを公開するときには、私はそれを操作できるようにイベントを渡す必要があります。

イベントを2番目のラムダ関数に渡す際に問題が発生しています。ここで私はそれをやっている方法です:

最初のスクリプトは、2番目のスクリプトは、任意の中間ラムダのない私はあなたconfigure S3 to publish events straight to SNS示唆この

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'] 

答えて

0

のようなイベントを使用すべきこの

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); 

のようにイベントを渡します。次に、2つ以上のLambdaをinvoked by the SNS notificationsに設定することができます。

ラムダ関数が1つだけ必要な場合は、イベントをパブリッシュするようにS3を設定し、SNSを含まずに直接invoke the Lambda with the event data as parameterを設定することができます。

関連する問題