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