如何在不删除其他触发器的情况下添加 Lambda 触发器?
How can I add a Lambda Trigger without erasing other triggers?
我有一个 S3 存储桶,我要将异构文件放入其中。特定文件夹中的每个文件(即 key="typeA/content.json")和每个文件夹将触发不同的 Lambda 函数。
我正在使用这个命令:
aws s3api put-bucket-notification-configuration --bucket mybucket --notification-configuration file://notification.json
我的 notification.json 文件如下所示:
{ "LambdaFunctionConfigurations": [ { "LambdaFunctionArn": "arn:aws:lambda:us-east-1:085318171245:function:myfunction", "Events": ["s3:ObjectCreated:*"], "Id": "lkjlkj", "Filter": { "Key": { "FilterRules": [ {"Name": "prefix", "Value": "typeA"}, {"Name": "suffix", "Value": "content.json"} ] } } } ] }
这个命令对我创建的第一个触发器非常有用。但是,当我尝试将不同的触发器添加到不同的 LambdaFunctionArn(对于 "typeB" 前缀)时,第一个触发器被删除。
我知道前缀+后缀必须是唯一的,我已经确认这不是问题所在。
我可以先查找所有现有的触发器,附加新触发器,然后发回完整列表,但这似乎效率不高。
我怎样才能再追加一个触发器?
看起来 S3 对象创建事件可能只有一个 lambda 关联。
https://forums.aws.amazon.com/message.jspa?messageID=600330
尝试 S3 扇出,将 S3 通知发送到 SNS 主题,SNS 可以有多个 lambda 消费者来处理它们。
https://aws.amazon.com/blogs/compute/fanout-s3-event-notifications-to-multiple-endpoints/
希望对您有所帮助。
我有一个 S3 存储桶,我要将异构文件放入其中。特定文件夹中的每个文件(即 key="typeA/content.json")和每个文件夹将触发不同的 Lambda 函数。
我正在使用这个命令:
aws s3api put-bucket-notification-configuration --bucket mybucket --notification-configuration file://notification.json
我的 notification.json 文件如下所示:
{ "LambdaFunctionConfigurations": [ { "LambdaFunctionArn": "arn:aws:lambda:us-east-1:085318171245:function:myfunction", "Events": ["s3:ObjectCreated:*"], "Id": "lkjlkj", "Filter": { "Key": { "FilterRules": [ {"Name": "prefix", "Value": "typeA"}, {"Name": "suffix", "Value": "content.json"} ] } } } ] }
这个命令对我创建的第一个触发器非常有用。但是,当我尝试将不同的触发器添加到不同的 LambdaFunctionArn(对于 "typeB" 前缀)时,第一个触发器被删除。
我知道前缀+后缀必须是唯一的,我已经确认这不是问题所在。
我可以先查找所有现有的触发器,附加新触发器,然后发回完整列表,但这似乎效率不高。
我怎样才能再追加一个触发器?
看起来 S3 对象创建事件可能只有一个 lambda 关联。
https://forums.aws.amazon.com/message.jspa?messageID=600330
尝试 S3 扇出,将 S3 通知发送到 SNS 主题,SNS 可以有多个 lambda 消费者来处理它们。
https://aws.amazon.com/blogs/compute/fanout-s3-event-notifications-to-multiple-endpoints/
希望对您有所帮助。