本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要以 Lambda 代理整合類型設定代理資源,請以 Greedy 路徑參數建立 API 資源 (例如 /parent/{proxy+}
),並將此資源與 arn:aws:lambda:us-west-2:123456789012:function:SimpleLambda4ProxyResource
方法上的 Lambda 函數後端 (例如 ANY
) 整合。Greedy 路徑參數必須位於 API 資源路徑結尾。如同非代理資源,您可以使用 API Gateway 主控台、匯入 OpenAPI 定義檔,或直接呼叫 API Gateway REST API,來設定代理資源。
下列 OpenAPI API 定義檔顯示 API 範例,其中具有與名為 SimpleLambda4ProxyResource
的 Lambda 函數整合的代理資源。
{ "openapi": "3.0.0", "info": { "version": "2016-09-12T17:50:37Z", "title": "ProxyIntegrationWithLambda" }, "paths": { "/{proxy+}": { "x-amazon-apigateway-any-method": { "parameters": [ { "name": "proxy", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": {}, "x-amazon-apigateway-integration": { "responses": { "default": { "statusCode": "200" } }, "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:SimpleLambda4ProxyResource/invocations", "passthroughBehavior": "when_no_match", "httpMethod": "POST", "cacheNamespace": "roq9wj", "cacheKeyParameters": [ "method.request.path.proxy" ], "type": "aws_proxy" } } } }, "servers": [ { "url": "https://gy415nuibc.execute-api.us-east-1.amazonaws.com/{basePath}", "variables": { "basePath": { "default": "/testStage" } } } ] }
在 Lambda 代理整合中,API Gateway 會在執行時間將傳入的請求映射到 Lambda 函數的輸入 event
參數。輸入包含請求方法、路徑、標頭、任何查詢字串參數、任何承載、相關聯內容和任何已定義的階段變數。「代理整合之 Lambda 函數的輸入格式」說明輸入格式。若要讓 API Gateway 成功將 Lambda 輸出映射至 HTTP 回應,Lambda 函數必須以 代理整合之 Lambda 函數的輸出格式 中所述的格式輸出結果。
在透過 ANY
方法之代理資源的 Lambda 代理整合中,單一後端 Lambda 函數透過代理資源作為所有請求的事件處理常式。例如,若要記錄流量模式,您可以在代理資源的 URL 路徑中使用 /state/city/street/house
提交請求,讓行動裝置傳送其州/省、城市、街道和建築物的位置資訊。後端 Lambda 函數接著可以剖析 URL 路徑,並將位置元組插入至 DynamoDB 資料表。