如何通過 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.    在導覽窗格中的 Change Management (變更管理) 下,選擇 Automation (自動化)。

3.    選擇 Execute automation (執行自動化)。

4.    在 Owned by Amazon (亞馬遜旗下) 標籤的 Automation document (自動化文件) 搜尋方塊中,輸入及搜尋 AWSSupport-TroubleshootLambdaS3Event

5.    選取 AWSSupport-TroubleshootLambdaS3Event 卡片右上角的核取方塊。然後,選擇 Next (下一步)。

6.    在 Input parameters (輸入參數) 區段中執行以下操作:
AutomationAssumeRole 中,輸入執行手冊要擔任的 AWS Identity and Access Management (IAM) 角色,該角色包括 lambda:GetPolicys3:GetBucketNotification 許可。
LambdaFunctionArn 中,輸入 Lambda 函數的 Amazon 資源名稱 (ARN)
S3BucketName 中,輸入 Amazon S3 儲存貯體名稱。

7.    選擇 Execute (執行)。

注意:如果輸出建議驗證和設定 Lambda 函數並行,請參閲非同步叫用AWS Lambda 函數擴展