本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使RESTAPI用 Lambda 代理整合建立
Lambda 代理整合是一種輕量且靈活的API閘道API整合類型,可讓您將API方法 (或整API個) 與 Lambda 函數整合。Lambda 函數的編寫方式可以是 Lambda 支援的任何語言。由於這是代理整合,因此您可以隨時變更 Lambda 函數實作,而無需重新部署. API
在此教學中,您將執行下列操作:
-
建立 "Hello, World!" Lambda 函數成為API.
-
建立和測試 API與 Lambda 代理集成。
建立 "Hello, World!" Lambda 函數
建立 "Hello, World!" Lambda 控制台中的 Lambda 函數
在 https://console.aws.amazon.com/
lambda 登入 Lambda 主控台。 -
在 AWS 導覽列上,選擇一個AWS 區域。
注意
記下您建立 Lambda 函數的區域。當您建立API.
-
在導覽窗格中,選擇 Functions (函數)。
-
選擇 Create function (建立函式)。
-
選擇 Author from scratch (從頭開始撰寫)。
-
在 Basic information (基本資訊) 下,請執行下列動作:
-
在函數名稱 中,輸入
GetStartedLambdaProxyIntegration
。 -
針對執行期,請選擇最新支援的 Node.js 或 Python 執行期。
對於「架構」,請保留預設設定。
-
在許可下,展開變更預設執行角色。從執行角色下拉式清單中,選擇從 AWS 政策範本建立新角色。
-
在角色名稱 中,輸入
GetStartedLambdaBasicExecutionRole
。 -
將 Policy templates (政策範本) 欄位留白。
-
選擇 Create function (建立函式)。
-
-
在內嵌程式碼編輯器的 Function code (函數程式碼) 下,複製/貼上下列程式碼:
-
選擇 Deploy (部署)。
創建一個「你好,世界!」 API
現在創建一個API為您的「你好,世界!」 使用API閘道主控台的 Lambda 函數。
要創建一個「你好,世界!」 API
在 https://console.aws.amazon.com/ap
igateway 登入API閘道主控台。 -
如果這是您第一次使用 API Gateway,您會看到一個介紹服務功能的頁面。在下方 RESTAPI,選擇 [建置]。出現 [建立範例] API 快顯視窗時,選擇 [確定]。
如果這不是您第一次使用API閘道,請選擇 [建立] API。在下方 RESTAPI,選擇 [建置]。
對於API名稱,輸入
LambdaProxyAPI
。在描述,請輸入描述。
保持API端點類型設定為 [地區]。
選擇 [建立] API。
建立資源之後API,即可建立資源。一般而言,API資源會根據應用程式邏輯在資源樹狀結構中進行組織。在此範例中,您會建立 /helloworld 資源。
建立資源
選擇建立資源。
讓代理資源保持關閉。
將資源路徑保持為
/
。針對資源名稱,輸入
helloworld
。保持 CORS(跨源資源共享)關閉。
選擇建立資源。
在代理整合中,整個要求會透過代表任何方法的 Catch-All ANY
方法,依原樣傳送至後端 Lambda 函數。HTTP實際的HTTP方法是由客戶端在運行時指定。此方ANY
法可讓您針對所有支援的API方法使用單一HTTP方法設定:DELETE
GET
HEAD
、OPTIONS
、PATCH
、POST
、、和PUT
。
建立 ANY
方法
選取 /helloworld 資源,然後選擇建立方法。
針對方法類型,選取 ANY。
針對整合類型,選取 Lambda 函數。
開啟 Lambda 代理整合。
對於 Lambda 函數,請選取 AWS 區域 您建立 Lambda 函數的位置,然後輸入函數名稱。
-
若要使用 29 秒的預設逾時值,請將預設逾時保持開啟。若要設定自訂逾時,請選擇預設逾時,然後輸入介於
50
和29000
毫秒之間的逾時值。 選擇建立方法。
部署和測試 API
若要部署您的 API
選擇部署API。
針對階段,選取新階段。
針對階段名稱,輸入
test
。在描述,請輸入描述。
選擇部署。
在階段詳細資料下,選擇複製圖示以複製您API的呼叫URL。
使用瀏覽器和 c URL 來測試使API用 Lambda 代理整合
您可以使用瀏覽器或 c URL
若要僅使用查詢字串參數測試GET
請求,您可以在URL瀏覽器網址列中輸入的helloworld
資源。API
若要URL為的helloworld
資源建立,請將資源helloworld
和查詢字串參數附加?greeter=John
至您API的叫用URL。你URL應該看起來像下面這樣。
https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld?greeter=John
對於其他方法,您必須使用更進階的RESTAPI測試公用程式,例如POSTMAN
要API使用 c 測試您的部署URL:
-
開啟終端機視窗。
-
複製以下 c URL 命令並將其粘貼到終端窗口中,然後URL用您在上一步中複製的調用替換調用並添加
/helloworld
到的末尾URL。注意
如果您是在 Windows 上執行命令,請改用此語法:
curl -v -X POST "https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld" -H "content-type: application/json" -d "{ \"greeter\": \"John\" }"若要API使用的查詢字串參數呼叫
?greeter=John
:curl -X GET 'https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld?greeter=John'若要呼叫標API頭參數,請執行下列動作
greeter:John
:curl -X GET https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld \ -H 'content-type: application/json' \ -H 'greeter: John'要API使用以下主體調用
{"greeter":"John"}
:curl -X POST https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld \ -H 'content-type: application/json' \ -d '{ "greeter": "John" }'
在所有情況下,輸出都是具有下列回應內文的 200 回應:
Hello, John!