如何知道哪个s3存储桶触发哪个lambda而没有去所有lambdas?
答案 0 :(得分:1)
您可以在存储桶事件本身下查看这些触发器。打开 s3存储桶时,导航至属性,并在该事件下。但是,您可以删除或编辑从该面板触发的资源。希望对您有帮助
答案 1 :(得分:0)
在S3 Bucket上设置触发器时,可以选择调用哪个Lambda函数。
查看此文档以获取更多信息:https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html。
这是一个更全面的文档,深入探讨了S3事件通知:https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html
如果选择Lambda Function目标类型,请执行以下操作:
在Lambda Function中,键入或选择要从Amazon S3接收通知的Lambda函数的名称。
如果您在包含存储桶的区域中没有任何Lambda函数,系统将提示您输入Lambda函数ARN。在Lambda Function ARN中,键入要从Amazon S3接收通知的Lambda函数的ARN。
(可选)您也可以从菜单中选择Add Lambda function ARN,并在Lambda函数ARN中键入Lambda函数的ARN。
答案 2 :(得分:0)
这可能有点困难,因为Lambda的命令行选项要求您使用aws lambda get-policy
以找出允许哪些资源对给定函数执行lambda:InvokeFunction
操作。这些权限不会显示为aws lambda get-function-configuration
的lambda配置的一部分。您可以使用一些bash
和jq
来获取函数列表并吐出允许的调用者。像这样:
aws lambda list-functions | jq .Functions[].FunctionName --raw-output | while read f; do
policy=$( aws lambda get-policy --function-name ${f} | jq '.Policy | fromjson | .Statement[] | select(.Effect=="Allow") | select(.Action=="lambda:InvokeFunction") | .Condition.ArnLike[]' --raw-output )
echo "FUNCTION ${f} CAN BE INVOKED FROM:"
echo ${policy}
done
这将列出允许在lambda:InvokeFunction
返回的所有Lambda函数上使用操作list-functions
的资源的arn。