如何通過 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:GetPolicy 和 s3:GetBucketNotification 許可。
在 LambdaFunctionArn 中,輸入 Lambda 函數的 Amazon 資源名稱 (ARN)。
在 S3BucketName 中,輸入 Amazon S3 儲存貯體名稱。
7. 選擇 Execute (執行)。
注意:如果輸出建議驗證和設定 Lambda 函數並行,請參閲非同步叫用和 AWS Lambda 函數擴展。