如何將某個 AWS 帳戶中建立的 Lambda 函數與另一個 AWS 帳戶中的 AWS CloudFormation 自訂資源結合使用?

1 分的閱讀內容
0

我想要在某個帳戶中建立 AWS Lambda 函數,然後從另一個帳戶中的 AWS CloudFormation 自訂資源叫用該函數。

簡短說明

只有當函數和資源位於相同 AWS 區域時,您才可以從另一個帳戶的自訂資源調用 Lambda 函數。AWS::CloudFormation::CustomResourceServiceToken 屬性必須位於您建立 AWS CloudFormation 堆疊的相同區域中。您必須使用以資源為基礎的政策,授予帳戶叫用 Lambda 函數的自訂資源許可。

**注意:**當您將 Lambda 函數與自訂資源建立關聯時,每當建立、更新或刪除自訂資源時,都會調用函數。CloudFormation 會調用 Lambda API,將請求類型和資源屬性等所有請求資料傳遞至函數。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱 AWS CLI 錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

在您的主要帳戶(帳戶 A)中,執行 AWS CLI add-permission 命令。該命令可讓 Lambda 函數存取另一個帳戶(帳戶 B)中的自訂資源。

-或-

使用 AWS::Lambda::Permission 資源,向帳戶 B 授予在帳戶 A 中調用 Lambda 函數的權限:

  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 函數。

相關資訊

授予函數對其他帳戶的存取權

AWS 官方
AWS 官方已更新 4 年前