如何使用 Systems Manager Automation 解决通过 Amazon S3 事件通知调用 Lambda 函数时出现的问题?

上次更新日期:2022 年 2 月 14 日

我的 Amazon Simple Storage Service (Amazon S3) 事件通知无法触发我的 AWS Lambda 函数。或者,我在尝试创建 Amazon S3 事件通知以调用我的 Lambda 函数时收到错误消息。我能否使用 AWS Systems Manager Automation 对 Lambda 的 Amazon S3 事件通知问题进行故障排除?

简短描述

要对向 Lambda 发送 Amazon S3 事件通知时的问题进行故障排除,请使用 AWSSupport-TroubleshootLambdaS3Event Systems Manager Automation 运行手册。

运行手册将验证是否存在针对您输入的 Lambda 函数和 Amazon S3 存储桶参数值的事件配置。如果存在事件配置,则运行手册将验证配置、资源策略和权限是否正确。运行手册的输出提供了 AWS Command Line Interface (AWS CLI) 命令,允许您添加所需的资源策略或权限。

注意:如果不再需要 Amazon S3 事件通知,则最佳做法是删除事件通知。

解决方法

1.    打开 AWS Systems Manager 控制台

2.    在导航窗格的更改管理下,选择自动化

3.    选择 Execute automation(执行自动化)。

4.    在 Owned by Amazon 选项卡的自动化文档搜索框中,输入并搜索 AWSSupport-TroubleshootLambdaS3Event

5.    选中 AWSSupport-TroubleshootLambdaS3Event 卡右上角的复选框。然后,选择下一步

6.    在输入参数部分中,执行以下操作:
对于 AutomationAssumeRole,请输入要代入的运行手册的 AWS Identity and Access Management (IAM) 角色,其中包括 Lambda:GetPolicys3:GetBucketNotification 权限。
对于 LambdaFunctionArn,请输入 Lambda 函数的 Amazon Resource Name (ARN)
对于 S3BucketName,请输入 Amazon S3 存储桶的名称。

7.    选择执行

注意:如果输出建议验证和配置 Lambda 函数并发性,请参阅异步调用AWS Lambda 函数扩展