我正在尝试遵循aws lambda教程,目前位于: https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html
我正在迈向 “ 向功能策略添加权限”
它说: ” 运行以下Lambda CLI add-permission命令来授予Amazon S3服务主体(s3.amazonaws.com)权限,以执行lambda:InvokeFunction操作。请注意,只有在满足以下条件的情况下,才授予Amazon S3调用该功能的权限:
在特定存储桶中检测到对象创建的事件。
存储桶归您的帐户所有。如果删除存储桶,则另一个帐户可能会创建具有相同ARN的存储桶。 “
,然后给出命令行命令以输入:
aws lambda add-permission --function-name CreateThumbnail --principal s3.amazonaws.com --statement-id s3invoke --action "lambda:InvokeFunction" --source-arn arn:aws:s3:::sourcebucket --source-account account-id
我没有要触发的存储桶。这是我公司设置的已经建立的存储桶,我的任务是学习lambda并在文件上传至文件时触发。
如何获取要使用的帐户ID?我可以在该命令中使用我自己的帐户ID吗?
此外,sourcebucket arn是否总是“ arn:aws:s3 :::?”?是在某个地方玩了吗?
答案 0 :(得分:1)
克里斯托弗, 您需要输入公司已在其中创建存储桶的帐户ID。此外,您肯定需要输入要为其设置触发器的存储桶的arn(亚马逊资源名称)。
这是ARN的样子:
arn:aws:s3 ::: bucket-name
您将在AWS控制台的账户设置中找到账户ID。
答案 1 :(得分:0)
对于任何存储桶的ARN,请在任意位置单击存储桶的行,它将在右侧打开一个幻灯片窗口,您可以看到“复制存储桶ARN”按钮,可以看到格式始终为'arn:aws:s3: :: l'
问题:使用此命令后,您能否在Lambda函数内部看到自动生成的S3触发器?我不能,它应该在那里。就像我看到“上次修改的列”已更新,但看不到任何自动生成的触发器一样。