Informazioni di riferimento sui modelli di mappatura delle API WebSocket in Gateway API - Amazon API Gateway

Informazioni di riferimento sui modelli di mappatura delle API WebSocket in Gateway API

Questa sezione riepiloga il set di variabili attualmente supportate per le API WebSocket in API Gateway.

Parametro Descrizione
$context.connectionId

Un ID univoco per la connessione, che può essere utilizzato per effettuare un callback al client.

$context.connectedAt

L'ora della connessione in formato Epoch.

$context.domainName

Un nome di dominio per l'API WebSocket. Può essere utilizzato per effettuare un callback al client (invece di un valore hardcoded).

$context.eventType

Il tipo di evento: CONNECT, MESSAGE o DISCONNECT.

$context.messageId

Un ID univoco sul lato server per un messaggio. Disponibile solo quando $context.eventType è MESSAGE.

$context.routeKey

La chiave di instradamento selezionata.

$context.requestId

Come $context.extendedRequestId.

$context.extendedRequestId Un ID generato automaticamente per la chiamata API, che contiene ulteriori informazioni utili per il debug/la risoluzione dei problemi.
$context.apiId

Identificatore assegnato da API Gateway all'API.

$context.authorizer.principalId

Identificazione dell'utente dell'entità principale associata al token inviato dal client e restituita da una funzione Lambda del provider di autorizzazioni Lambda di API Gateway (noto in precedenza come autorizzazioni ad hoc).

$context.authorizer.property

Valore in formato stringa della coppia chiave/valore specificata della mappa context restituita da una funzione delle autorizzazioni Lambda di API Gateway. Ad esempio, se le autorizzazioni restituiscono la mappa context seguente:

"context" : { "key": "value", "numKey": 1, "boolKey": true }

la chiamata di $context.authorizer.key restituisce la stringa "value", la chiamata di $context.authorizer.numKey restituisce la stringa "1" e la chiamata di $context.authorizer.boolKey restituisce la stringa "true".

$context.error.messageString Valore $context.error.message tra virgolette, ovvero "$context.error.message".
$context.error.validationErrorString

Stringa contenente un messaggio dettagliato di errore di convalida.

$context.identity.accountId

ID account AWS associato alla richiesta.

$context.identity.apiKey

Chiave del proprietario dell'API associata alla richiesta API abilitata dalla chiave.

$context.identity.apiKeyId ID chiave API associato alla richiesta API abilitata dalla chiave
$context.identity.caller

Identificatore dell'entità principale del chiamante da cui proviene la richiesta.

$context.identity.cognitoAuthenticationProvider

Un elenco separato da virgole con tutti i provider di autenticazione Amazon Cognito utilizzati dal chiamante che effettua la richiesta. Disponibile solo se la richiesta è stata firmata con credenziali Amazon Cognito.

Ad esempio, per un'identità di un pool di utenti Amazon Cognito, cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim

Per informazioni sui provider di autenticazione Amazon Cognito disponibili, consulta Using Federated Identities nella Guida per gli sviluppatori di Amazon Cognito.

$context.identity.cognitoAuthenticationType

Tipo di autenticazione Amazon Cognito dell'intermediario da cui proviene la richiesta. Disponibile solo se la richiesta è stata firmata con credenziali Amazon Cognito. I valori possibili includono authenticated per le identità autenticate e unauthenticated per le identità non autenticate.

$context.identity.cognitoIdentityId

ID identità di Amazon Cognito dell'intermediario da cui proviene la richiesta. Disponibile solo se la richiesta è stata firmata con credenziali Amazon Cognito.

$context.identity.cognitoIdentityPoolId

ID pool di identità di Amazon Cognito dell'intermediario da cui proviene la richiesta. Disponibile solo se la richiesta è stata firmata con credenziali Amazon Cognito.

$context.identity.sourceIp

L'indirizzo IP di origine della connessione TCP immediata da cui proviene la richiesta all'endpoint di API Gateway.

$context.identity.user

Identificatore dell'entità principale dell'utente da cui proviene la richiesta.

$context.identity.userAgent

Agente utente della chiamata API.

$context.identity.userArn

Amazon Resource Name (ARN) dell'utente valido identificato dopo l'autenticazione.

$context.requestTime Ora della richiesta in formato CLF (dd/MMM/yyyy:HH:mm:ss +-hhmm).
$context.requestTimeEpoch L'ora della richiesta in formato epoca (Unix epoch) in millisecondi.
$context.stage

Fase di distribuzione della chiamata API, ad esempio, beta o di produzione.

$context.status

Lo stato della risposta.

$input.body

Restituisce il payload non elaborato come stringa.

$input.json(x)

Questa funzione valuta un'espressione JSONPath e restituisce i risultati come stringa JSON.

Ad esempio, $input.json('$.pets') restituisce una stringa JSON che rappresenta la struttura di elementi "pet" (animali domestici).

Per ulteriori informazioni su JSONPath, consulta la pagina relativa a JSONPath o JSONPath per Java.

$input.path(x)

Da una stringa di espressione JSONPath (x) restituisce una rappresentazione di oggetto JSON del risultato. In questo modo, puoi accedere agli elementi del payload e modificarli in modo nativo in Apache Velocity Template Language (VTL).

Ad esempio, se l'espressione $input.path('$.pets') restituisce un oggetto in questo modo:

[ { "id": 1, "type": "dog", "price": 249.99 }, { "id": 2, "type": "cat", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]

$input.path('$.pets').count() restituisce "3".

Per ulteriori informazioni su JSONPath, consulta la pagina relativa a JSONPath o JSONPath per Java.

$stageVariables.<variable_name>

<variable_name> rappresenta il nome di una variabile di fase.

$stageVariables['<variable_name>']

<variable_name> rappresenta il nome di qualsiasi variabile di fase.

${stageVariables['<variable_name>']}

<variable_name> rappresenta il nome di qualsiasi variabile di fase.

$util.escapeJavaScript()

Aggiunge caratteri di escape ai caratteri in una stringa usando le regole delle stringhe JavaScript.

Nota

Questa funzione trasforma qualsiasi virgoletta singola (') in virgoletta preceduta da un carattere escape (\'). Tuttavia, le virgolette singole con escape non sono valide in JSON. Di conseguenza, quando l'output di questa funzione viene usato in una proprietà JSON, devi modificare di nuovo qualsiasi virgoletta singola con carattere escape (\') in virgoletta singola normale ('). Questo viene mostrato nell'esempio seguente:

$util.escapeJavaScript(data).replaceAll("\\'","'")
$util.parseJson()

Da una stringa JSON restituisce una rappresentazione oggetto del risultato. Puoi usare il risultato di questa funzione per accedere agli elementi del payload e modificarli in modo nativo in Apache Velocity Template Language (VTL). Ad esempio, in presenza del payload seguente:

{"errorMessage":"{\"key1\":\"var1\",\"key2\":{\"arr\":[1,2,3]}}"}

E se usi il modello di mappatura seguente:

#set ($errorMessageObj = $util.parseJson($input.path('$.errorMessage'))) { "errorMessageObjKey2ArrVal" : $errorMessageObj.key2.arr[0] }

Otterrai l'output seguente:

{ "errorMessageObjKey2ArrVal" : 1 }
$util.urlEncode()

Converte una stringa nel formato "application/x-www-form-urlencoded".

$util.urlDecode()

Decodifica una stringa "application/x-www-form-urlencoded".

$util.base64Encode()

Codifica i dati in una stringa con codifica base64.

$util.base64Decode()

Decodifica i dati da una stringa con codifica base64.