本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在API閘道中設定 WebSocket API整合要求
設定整合請求包含下列事項:
-
選擇路由金鑰來整合後端。
-
指定要叫用的後端端點。 WebSocket APIs支援下列整合類型:
AWS_PROXY
AWS
HTTP_PROXY
HTTP
MOCK
如需有關整合類型的詳細資訊,請參閱API閘道 V2 IntegrationType中的RESTAPI。
-
視需要指定一個或多個請求範本,設定路由請求資料轉換為整合請求資料的方式。
使用API閘道主控台設定 WebSocket API整合要求
WebSocket API使用API閘道主控台將整合要求新增至路由
-
登入API閘道主控台,選擇,然後API選擇 [路由]。
-
在 Routes (路由) 底下選擇路由。
-
選擇整合請求索引標籤,然後在整合請求設定區段中,選擇編輯。
-
針對整合類型,選擇下列其中一項:
-
只有在您API將與已在此帳戶或其他帳戶中建立的 AWS Lambda 函數整合時,才選擇 Lambda 函數。
若要在中建立新的 Lambda 函數 AWS Lambda、設定 Lambda 函數的資源權限,或是要執行任何其他 Lambda 服務動作,請改為選擇AWS 服務。
-
選擇是HTTPAPI否要與現有HTTP端點整合。如需詳細資訊,請參閱API Gateway 中其餘 API 的 HTTP 整合。
-
如果您想要直接從 API Gateway 產生API回應,而不需要整合後端,請選擇「模擬」。如需詳細資訊,請參閱API 網關中 REST API Gateway 的模擬集成。
-
如果您API將與AWS 服務整合,請選擇 AWS 服務。
-
如果您要API將
VpcLink
作為私有整合端點使用,請選擇VPC連結。如需詳細資訊,請參閱API閘道RESTAPIs中的私人整合。
-
-
如果您選擇 Lambda 函數,請執行下列動作:
-
若您希望使用 Lambda 代理整合或跨帳戶 Lambda 代理整合,請勾選使用 Lambda 代理整合核取方塊。
-
針對 Lambda 函數,以下列方式之一指定函數:
-
若您的 Lambda 函數位於同一個帳戶,請輸入函數名稱,然後從下拉式清單中選取函數。
注意
函數名稱可選擇納入其別名或版本規格,如
HelloWorld
、HelloWorld:1
或HelloWorld:alpha
。 -
如果函數位於不同的帳戶中,請輸ARN入函數的。
-
-
若要使用 29 秒的預設逾時值,請將預設逾時保持開啟。若要設定自訂逾時,請選擇預設逾時,然後輸入介於
50
和29000
毫秒之間的逾時值。
-
-
如果您選擇 HTTP,請按照步驟 4 中的指示進行操作使用 API Gateway 主控台設定 API 整合請求。
-
若您選擇 Mock (模擬),請前往 Request Templates (請求範本) 步驟。
-
若您選擇 AWS 服務,請依照 使用 API Gateway 主控台設定 API 整合請求 的步驟 6 的指示進行。
-
如果您選擇VPC連結,請執行下列動作:
-
對於 VPCProxy 整合,如果您希望將請求代理到您
VPCLink
的端點,請選擇核取方塊。 -
對於HTTP方法,請選HTTP擇最接近HTTP後端方法的方法類型。
-
從VPC連結下拉式清單中,選取VPC連結。您可以在清單下方的文字方塊中選取
[Use Stage Variables]
並輸入${stageVariables.vpcLinkId}
。您可以在部署API到
vpcLinkId
階段之後定義階段變數,並將其值設定為的 IDVpcLink
。 -
在 Endpoint 中URL,輸入URL您希望此整合使用的HTTP後端。
-
若要使用 29 秒的預設逾時值,請將預設逾時保持開啟。若要設定自訂逾時,請選擇預設逾時,然後輸入介於
50
和29000
毫秒之間的逾時值。
-
-
選擇 Save changes (儲存變更)。
-
在請求範本下,執行下列動作:
在請求範本下選擇編輯,以輸入範本選擇表達式。
輸入範本選擇表達式。使用API閘道在訊息承載中尋找的運算式。若找到將對其評估,而結果範本金鑰值將用於選取在訊息承載內套用至資料的資料映射範本。您會在下一個步驟中建立資料映射範本。選擇編輯,儲存您的變更。
選擇建立範本,以建立資料映射範本。針對範本金鑰輸入範本金鑰值,該值將用來選取要對訊息承載中的資料套用的資料映射範本。接著,輸入映射範本。選擇建立範本。
如需範本選擇表達式的相關資訊,請參閱 範本選擇表達式。
使用設定整合要求 AWS CLI
您可以使用如下列範例 WebSocket API所示,這會建立模擬整合, AWS CLI 以設定中的路由的整合要求:
-
建立名為
integration-params.json
的檔案,其中內容如下:{"PassthroughBehavior": "WHEN_NO_MATCH", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "RequestTemplates": {"application/json": "{\"statusCode\":200}"}, "IntegrationType": "MOCK"}
-
執行建立整合命令,如下列範例所示:
aws apigatewayv2 --region us-east-1 create-integration --api-id aabbccddee --cli-input-json file://integration-params.json
此範例的範例輸出如下:
{ "PassthroughBehavior": "WHEN_NO_MATCH", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "IntegrationResponseSelectionExpression": "${response.statuscode}", "RequestTemplates": { "application/json": "{\"statusCode\":200}" }, "IntegrationId": "0abcdef", "IntegrationType": "MOCK" }
或者,您也可以使用如下列範例所示,設定 Proxy 整合 AWS CLI 的整合要求:
-
在 Lambda 主控台中建立 Lambda 函數,並賦予基本的 Lambda 執行角色。
-
執行建立整合命令命令,如下列範例所示:
aws apigatewayv2 create-integration --api-id
aabbccddee
--integration-type AWS_PROXY --integration-method POST --integration-uri arn:aws:apigateway:us-east-1
:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1
:123412341234
:function:simpleproxy-echo-e2e
/invocations
此範例的範例輸出如下:
{ "PassthroughBehavior": "WHEN_NO_MATCH", "IntegrationMethod": "POST", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "IntegrationUri": "arn:aws:apigateway:
us-east-1
:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1
:123412341234
:function:simpleproxy-echo-e2e
/invocations", "IntegrationId": "abcdefg
", "IntegrationType": "AWS_PROXY" }
Lambda 函數的輸入格式,以進行代理整合 WebSocket APIs
在 Lambda 代理整合中,API閘道會將整個用戶端要求對應至後端 Lambda 函event
數的輸入參數。下列範例顯示$connect
路由中輸入事件的結構,以及API閘道傳送至 Lambda Proxy 整合$disconnect
之路由的輸入事件。