Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Impostazione di una richiesta di integrazione per API WebSocket in Gateway API
La configurazione di una richiesta di integrazione comporta le seguenti operazioni:
-
Selezione di una chiave di instradamento da integrare nel back-end.
-
Specifica dell'endpoint di back-end da richiamare. Le API WebSocket supportano i seguenti tipi di integrazione:
AWS_PROXYAWSHTTP_PROXYHTTPMOCK
Per ulteriori informazioni sui tipi di integrazione, consulta IntegrationType in REST API di Gateway API V2.
-
Configurazione della modalità di trasformazione dei dati della richiesta di instradamento, se necessario, in dati di richiesta di integrazione specificando uno o più modelli di richiesta.
Impostazione di una richiesta di integrazione API WebSocket mediante la console API Gateway
Per aggiungere una richiesta di integrazione a una route in un'API WebSocket mediante la console API Gateway
-
Accedere alla console API Gateway, scegliere l'API e selezionare Routes (Route).
-
In Routes (Route), scegliere la route.
-
Scegli la scheda Richiesta di integrazione, quindi seleziona Modifica nella sezione Impostazioni della richiesta di integrazione.
-
Per Tipo di integrazione scegli una delle seguenti opzioni:
-
Scegli Funzione Lambda solo se l'API verrà integrata con una funzione AWS Lambda che è già stata creata in questo o in un altro account.
Per creare una nuova funzione Lambda in AWS Lambda al fine di impostare le autorizzazioni a livello di risorsa nella funzione Lambda o eseguire qualsiasi altra operazione del servizio Lambda, scegliere invece l'opzione AWS Service (Servizio AWS).
-
Scegliere HTTP se l'API verrà integrata con un endpoint HTTP esistente. Per ulteriori informazioni, consulta Integrazioni HTTP per REST APIs in API Gateway.
-
Scegliere Mock (Fittizio) se si desidera generare le risposte API direttamente da API Gateway, senza la necessità di un back-end di integrazione. Per ulteriori informazioni, consulta Integrazioni fittizie per REST APIs in API Gateway.
-
Scegli Servizio AWS se l'API sarà integrata con un servizio AWS.
-
Scegli Collegamento VPC se l'API utilizzerà un
VpcLinkcome endpoint di integrazione privato. Per ulteriori informazioni, consulta Integrazioni private per REST APIs in API Gateway.
-
-
Se scegli Funzione Lambda procedi come segue:
-
Per Utilizza integrazione proxy Lambda seleziona la casella di controllo desiderata per utilizzare l'integrazione proxy Lambda o l'integrazione proxy Lambda tra più account.
-
Per Funzione Lambda specifica la funzione in uno dei modi seguenti:
-
Se la funzione Lambda si trova nello stesso account, immetti il nome della funzione e quindi seleziona la funzione dall'elenco a discesa.
Nota
Il nome della funzione può facoltativamente includere l'alias o la specifica della versione, come in
HelloWorld,HelloWorld:1oHelloWorld:alpha. -
Se la funzione si trova in un account diverso, immettere l'ARN per la funzione.
-
-
Per utilizzare il valore di timeout predefinito di 29 secondi, mantieni attiva l'opzione Timeout predefinito. Per impostare un timeout personalizzato, scegli Timeout predefinito e immetti un valore di timeout compreso tra
50e29000millisecondi.
-
-
Se si sceglie HTTP, seguire le istruzioni nella fase 4 di Configurazione di una richiesta di integrazione API tramite la console API Gateway.
-
Se si sceglie Mock (Fittizio), andare alla fase Request Templates (Modelli di richiesta).
-
Se scegli Servizio AWS segui le istruzioni della fase 6 in Configurazione di una richiesta di integrazione API tramite la console API Gateway.
-
Se scegli Collegamento VPC procedi come segue:
-
Per Integrazione proxy VPC seleziona la casella di controllo se desideri eseguire il proxy delle richieste sull'endpoint di
VPCLink. -
Per HTTP method (Metodo HTTP) scegliere il tipo di metodo HTTP che corrisponde maggiormente al metodo nel back-end HTTP.
-
Dall'elenco a discesa Collegamento VPC seleziona un collegamento VPC. È possibile selezionare
[Use Stage Variables]e inserire${stageVariables.vpcLinkId}nella casella di testo sotto l'elenco.È possibile definire la variabile di fase
vpcLinkIddopo l'implementazione dell'API in una fase e l'impostazione del suo valore sull'ID delVpcLink. -
In Endpoint URL (URL endpoint), immettere l'URL del back-end HTTP che l'integrazione deve utilizzare.
-
Per utilizzare il valore di timeout predefinito di 29 secondi, mantieni attiva l'opzione Timeout predefinito. Per impostare un timeout personalizzato, scegli Timeout predefinito e immetti un valore di timeout compreso tra
50e29000millisecondi.
-
-
Scegli Save changes (Salva modifiche).
-
In Modelli di richiesta procedi come segue:
Per immettere un'Espressione di selezione del modello scegli Modifica in Modelli di richiesta.
Immetti un'Espressione di selezione del modello. Specifica un'espressione che viene ricercata da Gateway API nel payload del messaggio. Se viene trovata, viene valutata e il risultato è un valore chiave del modello che viene utilizzato per selezionare il modello di mappatura dei dati che deve essere applicato ai dati nel payload del messaggio. Il modello di mappatura dei dati viene creato nel passaggio successivo. Scegli Modifica per salvare le modifiche.
Scegli Crea modello per creare il modello di mappatura dei dati. Per Chiave del modello immetti il valore della chiave del modello utilizzato per selezionare il modello di mappatura dei dati da applicare ai dati nel payload del messaggio. Quindi, specifica un modello di mappatura. Scegli Crea modello.
Per ulteriori informazioni sulle espressioni di selezione del modello, consulta Espressioni di selezione del modello.
Configurazione di una richiesta di integrazione mediante AWS CLI
Puoi configurare una richiesta di integrazione per una route in un'API WebSocket utilizzando AWS CLI come nell'esempio seguente, che crea un'integrazione fittizia:
-
Crea un file denominato
integration-params.json, con i seguenti contenuti:{"PassthroughBehavior": "WHEN_NO_MATCH", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "RequestTemplates": {"application/json": "{\"statusCode\":200}"}, "IntegrationType": "MOCK"} -
Utilizza il seguente comando create-integration per creare l’integrazione fittizia.
aws apigatewayv2 --region us-east-1 create-integration --api-id aabbccddee --cli-input-json file://integration-params.jsonL'output sarà simile al seguente:
{ "PassthroughBehavior": "WHEN_NO_MATCH", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "IntegrationResponseSelectionExpression": "${response.statuscode}", "RequestTemplates": { "application/json": "{\"statusCode\":200}" }, "IntegrationId": "0abcdef", "IntegrationType": "MOCK" }
In alternativa, è possibile configurare una richiesta per un’integrazione proxy utilizzando AWS CLI.
-
Creare una funzione Lambda nella console Lambda e assegnarle un ruolo di esecuzione Lambda di base.
-
Utilizza il seguente comando create-integration per creare l’integrazione.
aws apigatewayv2 create-integration --api-idaabbccddee--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
L'output sarà simile al seguente:
{ "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" }
Formato di input di una funzione Lambda per l'integrazione proxy di API WebSocket
Con l'integrazione proxy Lambda, API Gateway mappa l'intera richiesta client al parametro di input event della funzione Lambda di back-end. Nell'esempio seguente viene illustrata la struttura dell'evento di input dall'instradamento $connect e dell'evento di input dall'instradamento $disconnect che Gateway API invia a un'integrazione proxy Lambda.