本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學:建置具 cross-account Lambda 代理整合的 REST API
您現在可以使用來自不同 AWS 帳戶的 AWS Lambda 函數做為 API 整合後端。每個帳戶可以位於 Amazon API Gateway 可用的任何區域。這可讓您輕鬆地集中管理和分享跨多個 API 的 Lambda 後端函數。
在本節中,我們示範如何使用 Amazon API Gateway 主控台設定跨帳戶 Lambda 代理整合。
建立 API Gateway 跨帳戶 Lambda 整合的 API
若要建立 API
- 
                在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway 。 
- 
                如果這是您第一次使用 API Gateway,您會看到服務功能的介紹頁面。在 REST API 下方,選擇 Build (組建)。當 Create Example API (建立範例 API) 快顯出現時,選擇 OK (確定)。 如果這不是第一次使用 API Gateway,請選擇 Create API (建立 API)。在 REST API 下方,選擇組建。 
- 對於API 名稱,輸入 - CrossAccountLambdaAPI。
- 在描述,請輸入描述。 
- 將 API 端點類型保持設定為區域。 
- 針對 IP 位址類型,選擇 IPv4。 
- 選擇建立 API。 
在另一個帳戶建立 Lambda 整合函數
現在您可以從與您在範例 API 中建立的不同帳戶建立 Lambda 函數。
在另一個帳戶中建立 Lambda 函數
- 
                透過與您在 API Gateway API 中建立的不同的帳戶登入 Lambda 主控台。 
- 
                選擇 Create function (建立函數)。 
- 
                選擇 Author from scratch (從頭開始撰寫)。 
- 
                在 Author from scratch (從頭開始撰寫) 下,進行下列操作: - 
                        針對 Function name (函數名稱),輸入名稱。 
- 
                        從 Runtime (執行時間) 下拉式清單中,選擇支援的 Node.js 執行時間。 
- 對於架構,請保留預設設定。 
- 
                        在 Permissions (許可) 下,展開 Choose or create an execution role (選擇或建立執行角色)。您可以建立角色或選擇現有角色。 
- 
                        選擇 Create function (建立函數) 繼續。 
 
- 
                        
- 
                向下捲動到函數程式碼 窗格中。 
- 
                從 教學:建立具 Lambda 代理整合的 REST API 輸入 Node.js 函數實作。 
- 
                選擇 Deploy (部署)。 
- 
                請注意適用於您函數的完整 ARN (在 Lambda 函數窗格的右上角)。在建立跨帳戶 Lambda 整合時會需要用到。 
設定跨帳戶 Lambda 整合
在不同的帳戶有 Lambda 整合函數後,您可以使用 API Gateway 主控台在您的第一個帳戶將其新增至 API。
注意
如果您設定的是跨區域、跨帳戶授權方,新增到目標函數的 sourceArn 應使用函數的區域,而非 API 的區域。
在建立 API 之後,請建立資源。一般而言,會根據應用程式邏輯將 API 資源組織為資源樹狀結構。在此範例中,您會建立 /helloworld 資源。
建立資源
- 選擇建立資源。 
- 讓代理資源保持關閉。 
- 將資源路徑保持為 - /。
- 針對資源名稱,輸入 - helloworld。
- 讓 CORS (跨來源資源分享) 保持關閉。 
- 選擇建立資源。 
在建立資源之後,請建立 GET 方法。將 GET 方法與另一個帳戶中的 Lambda 函數整合。
建立 GET 方法
- 選取 /helloworld 資源,然後選擇建立方法。 
- 針對方法類型,選取 GET。 
- 針對整合類型,選取 Lambda 函數。 
- 開啟 Lambda 代理整合。 
- 針對 Lambda 函數,輸入步驟 1 中 Lambda 函數的完整 ARN。 - 在 Lambda 主控台中,您可以在主控台視窗的右上角找到適用於您函數的 ARN。 
- 
                當您輸入 ARN 時,便會出現 aws lambda add-permission命令字串。這個政策會授予您的第一個帳戶對第二個帳戶 Lambda 函數的存取權。將aws lambda add-permission命令字串複製並貼到為您的第二個帳戶設定的 AWS CLI 視窗中。
- 選擇建立方法。 
您可以在 Lambda 主控台中查看您的函數適用的更新政策。
(選用) 查看更新的政策
- 
                登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/lambda/ 開啟 AWS Lambda 主控台。 
- 
                選擇 Lambda 函數。 
- 
                選擇許可。 您現在應該會看到內含 Allow子句的Condition政策,其中AWS:SourceArn為您 APIGET方法的 ARN。