我正在跟进本指南设置 lambda 函数来订阅日志事件。在步骤 5 中,您需要“授予 CloudWatch Logs 执行您的函数的权限”,如下所示:
aws lambda add-permission \
--function-name "helloworld" \
--statement-id "helloworld" \
--principal "logs.region.amazonaws.com" \
--action "lambda:InvokeFunction" \
--source-arn "arn:aws:logs:region:123456789123:log-group:TestLambda:*" \
--source-account "123456789012"
这很好用。
现在,根据文档参数--source-arn
是aws lambda add-permission
可选的。但如果我不提供它,当我访问 AWS 网站上的 lambda 函数的配置页面时,订阅不会显示为已注册(见下面的第一个屏幕截图)。订阅实际上已注册并可以触发 Lambda。我可以确认,如果我删除权限并重新添加它,订阅将--source-arn
显示为已注册(第二个屏幕截图)。
我猜这是一件小事,但为什么--source-arn
arg应该add-permission
与订阅为何/为何不显示在 UI 中有关?尤其是因为无论你是否提供--source-arn
权限对于 lambda 的执行仍然足够。
(注意:写完这个问题之后,它看起来就像是一个错误。但我打算离开,以便在一个大报告中参考它,等待任何答案)。