我想要在某個帳戶中建立 AWS Lambda 函數,然後從另一個帳戶中的 AWS CloudFormation 自訂資源叫用該函數。
簡短說明
只有當 Lambda 函數和自訂資源位於相同 AWS 區域時,您才可以從不同帳戶的自訂資源叫用 Lambda 函數。AWS::CloudFormation::CustomResource 的 ServiceToken 屬性必須位於您建立 AWS CloudFormation 堆疊的相同區域中。您必須使用以資源為基礎的政策,授予帳戶叫用 Lambda 函數的自訂資源許可。
**注意事項:**當您將 Lambda 函數與自訂資源建立關聯時,每當建立、更新或刪除自訂資源時,都會叫用函數。AWS CloudFormation 會叫用 Lambda API 來叫用函數,並將所有請求資料傳遞至函數。例如,請求資料包括請求類型和資源屬性。
解決方案
**注意事項:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確認您使用最新的 AWS CLI 版本。
若要授予 Lambda 函數存取權,以從其他帳戶 (帳戶 B) 存取您的自訂資源,請在主要帳戶 (帳戶 A) 中執行 AWS CLI 命令 add-permission。
-或-
1. 透過帳戶 A 中的堆疊建立 Lambda 函數時,請使用 AWS::Lambda::Permission 資源授予許可給帳戶 B。
2. 在帳戶 B 中,啟動包含您自訂資源的 AWS CloudFormation 堆疊。
注意事項:ServiceToken 務必要從帳戶 A 參考 Lambda 函數的 Amazon Resource Name (ARN)。請將要傳送至自訂資源的任何其他屬性都包含為輸入。
3. 使用 Amazon CloudWatch Logs 確認帳戶 B 中的自訂資源已在帳戶 A 中叫用 Lambda 函數。
相關資訊
屬性
授予函數對其他帳戶的存取權