WebSocket espressioni di selezione - Amazon API Gateway

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

WebSocket espressioni di selezione

APIGateway utilizza le espressioni di selezione per valutare il contesto di richiesta e risposta e produrre una chiave. La chiave viene quindi utilizzata per selezionare tra un insieme di valori possibili, in genere forniti dallo API sviluppatore. L'esatto set di variabili supportate varierà a seconda del tipo di espressione. Ogni espressione viene descritta in modo dettagliato di seguito.

Per tutte le espressioni, il linguaggio segue lo stesso set di regole:

  • Una variabile ha il prefisso "$".

  • Le parentesi graffe possono essere utilizzate per definire i limiti delle variabili in modo esplicito, ad esemp., "${request.body.version}-beta".

  • Sono supportate numerose variabili, ma la valutazione viene eseguita una sola volta (non esiste la valutazione ricorsiva).

  • Il segno di dollaro ($) può essere preceduto dal carattere di escape "\". Questa prassi è molto utile quando si definisce un'espressione associata alla chiave riservata $default, ad esempio "\$default".

  • In alcuni casi, un formato di modello è obbligatorio. In questo caso, l'espressione deve essere racchiusa tra barre ("/"), ad esempio "/2\d\d/" per corrispondere ai codici di stato 2XX.

Espressioni di selezione della risposta di instradamento

Una risposta di instradamento viene utilizzata per modellare una risposta dal back-end al client. Infatti WebSocket APIs, una risposta di percorso è facoltativa. Una volta definita, segnala a API Gateway che deve restituire una risposta a un client dopo aver ricevuto un WebSocket messaggio.

La valutazione dell'espressione di selezione della risposta di instradamento produce una chiave di risposta di instradamento. Alla fine, questa chiave verrà utilizzata per scegliere tra quelle RouteResponsesassociate aAPI. Tuttavia, al momento è supportata solo la chiave $default.

APIespressioni di selezione chiave

Questa espressione viene valutata quando il servizio determina che la richiesta specificata deve procedere solo se il client fornisce una APIchiave valida.

Attualmente, i soli due valori supportati sono $request.header.x-api-key e $context.authorizer.usageIdentifierKey.

APImappatura delle espressioni di selezione

Questa espressione viene valutata per determinare quale API fase viene selezionata quando viene effettuata una richiesta utilizzando un dominio personalizzato.

Attualmente, l'unico valore supportato è $request.basepath.

WebSocketriepilogo delle espressioni di selezione

La tabella seguente riassume i casi d'uso delle espressioni di selezione in WebSocketAPIs:

Espressione di selezione Restituisce la chiave per Note Esempio di caso d'uso
Api.RouteSelectionExpression Route.RouteKey $defaultLa chiave è supportata come instradamento catch-all. WebSocket Indirizza i messaggi in base al contesto della richiesta di un client.
Route.ModelSelectionExpression Chiave per Route.RequestModels

Facoltativo.

Se fornita per un'integrazione non proxy, viene effettuata la convalida del modello.

$defaultLa chiave è supportata come catch-all.

Convalida dinamica della richiesta all'interno dello stesso instradamento.
Integration.TemplateSelectionExpression Chiave per Integration.RequestTemplates

Facoltativo.

Può essere fornita per un'integrazione non proxy allo scopo di manipolare i payload in entrata.

${request.body.jsonPath}Sono supportati e valori statici.

$defaultLa chiave è supportata come catch-all.

Manipolazione della richiesta dell'intermediario in base alle proprietà dinamiche della richiesta.
Integration.IntegrationResponseSelectionExpression IntegrationResponse.IntegrationResponseKey

Facoltativo. Può essere fornita per un'integrazione non proxy.

Funge da pattern match per i messaggi di errore (da Lambda) o i codici di stato (dalle HTTP integrazioni).

$defaultÈ necessaria la chiave per far sì che le integrazioni non proxy agiscano da catch-all per le risposte con esito positivo.

Manipolazione della risposta del back-end.

Scegliere l'azione da eseguire in base alla risposta dinamica del back-end, ad esempio la gestione distinta di determinati errori.

IntegrationResponse.TemplateSelectionExpression Chiave per IntegrationResponse.ResponseTemplates Facoltativo. Può essere fornita per un'integrazione non proxy.

La chiave $default è supportata.

In alcuni casi, una proprietà dinamica della risposta potrebbe imporre trasformazioni differenti all'interno dello stesso instradamento e dell'integrazione associata.

${request.body.jsonPath}, ${integration.response.statuscode}, ${integration.response.header.headerName}, ${integration.response.multivalueheader.headerName}, Sono supportati , , , e valori statici.

$defaultLa chiave è supportata come catch-all.

Route.RouteResponseSelectionExpression RouteResponse.RouteResponseKey

Deve essere fornito per avviare una comunicazione bidirezionale per un percorso. WebSocket

Attualmente, questo valore è limitato solo a $default.

RouteResponse.ModelSelectionExpression Chiave per RouteResponse.RequestModels Attualmente non è supportata.