教學課程:使RESTAPI用跨帳戶 Lambda 代理整合建立 - Amazon API 网关

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:使RESTAPI用跨帳戶 Lambda 代理整合建立

您現在可以使用來自不同 AWS 帳戶的 AWS Lambda 函數作為API整合後端。每個帳戶都可以位於可使用 Amazon API 閘道的任何區域。這可讓您輕鬆集中管理和共用多個 Lambda 後端函數APIs。

在本節中,我們將說明如何使用 Amazon API 閘道主控台設定跨帳戶 Lambda 代理整合。

API為API閘道跨帳戶 Lambda 整合建立

建立 API
  1. 請在 https://console.aws.amazon.com/apigateway 登入API閘道主控台。

  2. 如果這是您第一次使用 API Gateway,您會看到一個介紹服務功能的頁面。在下方 RESTAPI,選擇 [建置]。出現 [建立範例] API 快顯視窗時,選擇 [確定]

    如果這不是您第一次使用API閘道,請選擇 [建立] API。在下方 RESTAPI,選擇 [建置]。

  3. 對於API名稱,輸入CrossAccountLambdaAPI

  4. 描述,請輸入描述。

  5. 保持API端點類型設定為 [地區]。

  6. 選擇 [建立] API。

在另一個帳戶建立 Lambda 整合函數

現在,您將在與建立範例的帳戶不同的帳戶中建立 Lambda 函數API。

在另一個帳戶中建立 Lambda 函數
  1. 使用與建立API閘道的帳戶不同的帳戶登入 Lambda 主控台API。

  2. 選擇建立函數

  3. 選擇 Author from scratch (從頭開始撰寫)。

  4. Author from scratch (從頭開始撰寫) 下,進行下列操作:

    1. 針對 Function name (函數名稱),輸入名稱。

    2. Runtime (執行時間) 下拉式清單中,選擇支援的 Node.js 執行時間。

    3. Permissions (許可) 下,展開 Choose or create an execution role (選擇或建立執行角色)。您可以建立角色或選擇現有角色。

    4. 選擇 Create function (建立函數) 繼續。

  5. 向下捲動到函數程式碼 窗格中。

  6. 教學課程:使RESTAPI用 Lambda 代理整合建立 輸入 Node.js 函數實作。

  7. 選擇部署

  8. 請注意函數ARN的完整內容(位於 Lambda 函數窗格的右上角)。在建立跨帳戶 Lambda 整合時會需要用到。

設定跨帳戶 Lambda 整合

在不同帳戶中使用 Lambda 整合功能後,您可以使用API閘道主控台將其新增至您API的第一個帳戶。

注意

如果您要設定跨區域、跨帳戶授權者,新增至目標函數的授權者應該使用函數的區域,而不是的區域。sourceArn API

建立資源之後API,即可建立資源。通常情況下,API資源是根據應用程序邏輯在資源樹中組織的。在此範例中,您會建立 /helloworld 資源。

建立資源
  1. 選擇建立資源

  2. 代理資源保持關閉。

  3. 資源路徑保持為 /

  4. 針對資源名稱,輸入 helloworld

  5. 保持 CORS(跨源資源共享)關閉。

  6. 選擇建立資源

在建立資源之後,請建立 GET 方法。將 GET 方法與另一個帳戶中的 Lambda 函數整合。

建立 GET 方法
  1. 選取 /helloworld 資源,然後選擇建立方法

  2. 針對方法類型,選取 GET

  3. 針對整合類型,選取 Lambda 函數

  4. 開啟 Lambda 代理整合

  5. 對於 Lambda 函數,請輸入步驟 1 中ARN的完整 Lambda 函數。

    在 Lambda 主控台中,您可以在主控台視窗的右上角找到適ARN用於您的函數。

  6. 當您輸入時ARN,將顯示一個aws lambda add-permission命令字串。這個政策會授予您的第一個帳戶對第二個帳戶 Lambda 函數的存取權。將aws lambda add-permission命令字串複製並貼到為您的第二個帳戶設定的 AWS CLI 視窗中。

  7. 選擇建立方法

您可以在 Lambda 主控台中查看您的函數適用的更新政策。

(選用) 查看更新的政策
  1. 登入 AWS Management Console 並開啟 AWS Lambda 主控台,位於https://console.aws.amazon.com/lambda/

  2. 選擇 Lambda 函數。

  3. 選擇許可

    您應該會看到一個包含Condition子句的Allow政策,其中的ARN中AWS:SourceArn是您API的GET方法。