Implementazione delle API WebSocket in Gateway API - Gateway Amazon API

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à.

Implementazione delle API WebSocket in Gateway API

Dopo aver creato l'API WebSocket, è necessario distribuirla in modo che possa essere richiamata dagli utenti.

Per distribuire un'API, crea una distribuzione API e associala a una fase. Ogni fase è una snapshot dell'API ed è resa disponibile per essere chiamata dalle app client.

Importante

Ogni volta che aggiorni un'API, devi ripeterne l'implementazione. Le modifiche a qualcosa di diverso dalle impostazioni di fase richiedono una nuova implementazione, incluse le modifiche alle seguenti risorse:

  • Route

  • Integrazioni

  • Authorizers

C'è un limite predefinito di 10 fasi per API. Si consiglia di riutilizzare le fasi per le implementazioni.

Per chiamare un API WebSocket distribuita, il client invia un messaggio all'URL dell'API. L'URL viene determinato dal nome host e dal nome fase dell'API.

Nota

API Gateway supporta payload fino a 128 KB con dimensione del frame massima di 32 KB. Se un messaggio supera i 32 KB, deve essere suddiviso in più frame, ciascuno di 32 KB o più piccolo.

Utilizzando il nome di dominio predefinito dell'API, il formato dell'URL di (ad esempio) un'API WebSocket in una fase specifica ({stageName}) è il seguente:

wss://{api-id}.execute-api.{region}.amazonaws.com/{stageName}

Per rendere l'URL dell'API WebSocket più intuitivo, puoi creare un nome di dominio personalizzato (ad esempio api.example.com) per sostituire il nome host predefinito dell'API. Il processo di configurazione è lo stesso delle API REST. Per ulteriori informazioni, consulta Nome di dominio personalizzato per REST pubblico APIs in API Gateway.

Le fasi permettono un efficace controllo delle versioni dell'API. Ad esempio, puoi distribuire un'API in una fase test e una fase prod e utilizzare la fase test come build di test e la fase prod come build stabile. Dopo che gli aggiornamenti hanno superato il test, puoi promuovere la fase test alla fase prod. La promozione può essere eseguita ridistribuendo l'API nella fase prod. Per ulteriori dettagli sulle fasi, consulta Configurazione di una fase per una REST API in Gateway API.

Creazione di una distribuzione API WebSocket mediante AWS CLI

Il seguente comando create-deployment crea l'implementazione:

aws apigatewayv2 --region us-east-1 create-deployment --api-id aabbccddee

L'output sarà simile al seguente:

{ "DeploymentId": "fedcba", "DeploymentStatus": "DEPLOYED", "CreatedDate": "2018-11-15T06:49:09Z" }

L'API distribuita non può essere chiamata fino a quando non si associa la distribuzione a una fase. Puoi creare una nuova fase o riutilizzare una fase creata in precedenza.

Il comando create-stage seguente crea una nuova fase e la associa all’implementazione:

aws apigatewayv2 --region us-east-1 create-stage --api-id aabbccddee --deployment-id fedcba --stage-name test

L'output sarà simile al seguente:

{ "StageName": "test", "CreatedDate": "2018-11-15T06:50:28Z", "DeploymentId": "fedcba", "DefaultRouteSettings": { "MetricsEnabled": false, "ThrottlingBurstLimit": 5000, "DataTraceEnabled": false, "ThrottlingRateLimit": 10000.0 }, "LastUpdatedDate": "2018-11-15T06:50:28Z", "StageVariables": {}, "RouteSettings": {} }

È anche possibile riutilizzare una fase esistente aggiornando la proprietà deploymentId della fase con l’ID di implementazione appena creato (deployment-id). Il comando update-stage seguente aggiorna l’ID di implementazione della fase:

aws apigatewayv2 update-stage --region region \ --api-id api-id \ --stage-name stage-name \ --deployment-id deployment-id

Creazione di una distribuzione API WebSocket mediante la console API Gateway

Per utilizzare la console API Gateway per creare una distribuzione per un'API WebSocket:

  1. Accedere alla console API Gateway e scegliere l'API.

  2. Seleziona Deploy API (Distribuisci API).

  3. Scegliere la fase desiderata dall'elenco a discesa oppure immettere il nome di una nuova fase.