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à.
Quando si crea una mappatura dei parametri, è possibile utilizzare le variabili di contesto come origine dati. Quando si creano trasformazioni di modelli di mappatura, è possibile utilizzare variabili di contesto, variabili input e util negli script scritti in Velocity
Per un elenco delle variabili di riferimento per la registrazione degli accessi, vedere. Variabili per la registrazione degli accessi per API Gateway
Variabili di contesto per le trasformazioni dei dati
È possibile utilizzare le seguenti $context
variabili per le trasformazioni dei dati.
Parametro | Descrizione |
---|---|
$context.accountId |
L'ID dell' AWS account del proprietario dell'API. |
$context.apiId |
Identificatore assegnato da API Gateway all'API. |
$context.authorizer.claims. |
Proprietà delle richieste restituite dal pool di utenti di Amazon Cognito dopo che l'intermediario del metodo viene autenticato correttamente. Per ulteriori informazioni, consulta Controlla l'accesso a REST APIs utilizzando i pool di utenti di Amazon Cognito come autorizzatore. NotaLa chiamata di |
$context.authorizer.principalId |
Identificazione dell'utente dell'entità principale associata al token inviata dal client e restituita da un'autorizzazione Lambda in API Gateway (precedentemente noto come autorizzazione ad hoc). Per ulteriori informazioni, consulta Uso di autorizzazioni Lambda di API Gateway. |
$context.authorizer. |
Valore in formato stringa della coppia chiave/valore specificata della mappa
La chiamata di Infatti Per ulteriori informazioni, consulta Uso di autorizzazioni Lambda di API Gateway. |
$context.awsEndpointRequestId |
L'ID della richiesta dell' AWS endpoint. |
$context.deploymentId |
ID dell'implementazione API. |
$context.domainName |
Nome di dominio completo usato per richiamare l'API. Deve essere lo stesso dell'intestazione |
$context.domainPrefix |
Prima etichetta di |
$context.error.message |
Stringa contenente un messaggio di errore di API Gateway. Questa variabile può essere utilizzata solo per la semplice sostituzione di variabili in un modello di GatewayResponsebody mapping, che non viene elaborato dal motore Velocity Template Language, e nella registrazione degli accessi. Per ulteriori informazioni, consulta Monitora l'esecuzione delle WebSocket API con CloudWatch metriche e Configurazione delle risposte del gateway per la personalizzazione delle risposte agli errori. |
$context.error.messageString |
Valore $context.error.message tra virgolette, ovvero "$context.error.message" . |
$context.error.responseType |
Un tipo di. GatewayResponse Questa variabile può essere utilizzata solo per la semplice sostituzione di variabili in un modello di GatewayResponsebody mapping, che non viene elaborato dal motore Velocity Template Language, e nella registrazione degli accessi. Per ulteriori informazioni, consulta Monitora l'esecuzione delle WebSocket API con CloudWatch metriche e Configurazione delle risposte del gateway per la personalizzazione delle risposte agli errori. |
$context.error.validationErrorString |
Stringa contenente un messaggio dettagliato di errore di convalida. |
$context.extendedRequestId |
ID esteso generato da API Gateway e assegnato alla richiesta API. L’ID della richiesta esteso contiene ulteriori informazioni utili per il debug e la risoluzione dei problemi. |
$context.httpMethod |
Metodo HTTP usato. I valori validi sono: |
$context.identity.accountId |
L'ID dell'account associato alla richiesta. AWS |
$context.identity.apiKey |
Per i metodi API che richiedono una chiave API, questa variabile è la chiave API associata alla richiesta del metodo. Per i metodi che non richiedono una chiave API, questa variabile è null. Per ulteriori informazioni, consulta Piani di utilizzo e chiavi API per REST APIs in API Gateway. |
$context.identity.apiKeyId |
ID chiave API associato a una richiesta API che richiede una chiave API. |
$context.identity.caller |
Identificatore dell'entità principale dell'intermediario che ha firmato la richiesta. Supportato per risorse che utilizzano l'autorizzazione IAM. |
$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, 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 |
$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.principalOrgId |
|
$context.identity.sourceIp |
L'indirizzo IP di origine della connessione TCP immediata da cui proviene la richiesta all'endpoint di Gateway API. |
$context.identity.clientCert.clientCertPem |
Certificato client codificato PEM che il client ha presentato durante l'autenticazione TLS reciproca. Presente quando un client accede a un'API utilizzando un nome di dominio personalizzato che ha attivato l'autenticazione TLS reciproca. Presente solo nei log di accesso se l'autenticazione TLS reciproca non riesce. |
$context.identity.clientCert.subjectDN |
Nome distinto dell'oggetto del certificato presentato da un client. Presente quando un client accede a un'API utilizzando un nome di dominio personalizzato che ha attivato l'autenticazione TLS reciproca. Presente solo nei log di accesso se l'autenticazione TLS reciproca non riesce. |
$context.identity.clientCert.issuerDN |
Nome distinto dell'approvatore del certificato presentato da un cliente. Presente quando un client accede a un'API utilizzando un nome di dominio personalizzato che ha attivato l'autenticazione TLS reciproca. Presente solo nei log di accesso se l'autenticazione TLS reciproca non riesce. |
$context.identity.clientCert.serialNumber |
Il numero di serie del certificato. Presente quando un client accede a un'API utilizzando un nome di dominio personalizzato che ha attivato l'autenticazione TLS reciproca. Presente solo nei log di accesso se l'autenticazione TLS reciproca non riesce. |
$context.identity.clientCert.validity.notBefore |
La data prima della quale il certificato non è valido. Presente quando un client accede a un'API utilizzando un nome di dominio personalizzato che ha attivato l'autenticazione TLS reciproca. Presente solo nei log di accesso se l'autenticazione TLS reciproca non riesce. |
$context.identity.clientCert.validity.notAfter |
La data dopo la quale il certificato non è valido. Presente quando un client accede a un'API utilizzando un nome di dominio personalizzato che ha attivato l'autenticazione TLS reciproca. Presente solo nei log di accesso se l'autenticazione TLS reciproca non riesce. |
$context.identity.vpcId |
L'ID VPC del VPC da cui proviene la richiesta all'endpoint Gateway API. |
$context.identity.vpceId |
L'ID endpoint VPC dell'endpoint VPC da cui proviene la richiesta all'endpoint Gateway API. Presente solo quando si dispone di un'API privata. |
$context.identity.user |
Identificatore dell'entità principale dell'utente che sarà autorizzato per l'accesso alle risorse. Supportato per risorse che utilizzano l'autorizzazione IAM. |
$context.identity.userAgent |
Intestazione |
$context.identity.userArn |
Amazon Resource Name (ARN) dell'utente valido identificato dopo l'autenticazione. Per ulteriori informazioni, consulta https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html. |
$context.isCanaryRequest |
Restituisce |
$context.path |
Percorso della richiesta. Ad esempio, per un URL di richiesta non proxy https://{rest-api-id}.execute-api.{region}.amazonaws.com/{stage}/root/child , il valore di $context.path è /{stage}/root/child . |
$context.protocol |
Protocollo della richiesta, ad esempi, HTTP/1.1 . NotaAPI Gateway APIs può accettare richieste HTTP/2, ma API Gateway invia richieste alle integrazioni di backend utilizzando HTTP/1.1. Di conseguenza, il protocollo di richiesta viene registrato come HTTP/1.1 anche se un client invia una richiesta che utilizza HTTP/2. |
$context.requestId |
L'ID della richiesta. I client possono sovrascrivere questo ID di richiesta. Utilizza |
$context.requestOverride.header. |
Sovrascrittura intestazione della richiesta. Se definito, questo parametro contiene le intestazioni da utilizzare al posto delle intestazioni HTTP che sono definite nel riquadro Integration Request (Richiesta di integrazione). Per ulteriori informazioni, consulta Sostituisci i parametri di richiesta e risposta e i codici di stato dell'API per REST APIs in API Gateway. |
$context.requestOverride.path. |
Sovrascrittura percorso della richiesta. Se definito, questo parametro contiene il percorso della richiesta da utilizzare al posto dei parametri di percorso URL che sono definiti nel riquadro Integration Request (Richiesta di integrazione). Per ulteriori informazioni, consulta Sostituisci i parametri di richiesta e risposta e i codici di stato dell'API per REST APIs in API Gateway. |
$context.requestOverride.querystring. |
Sovrascrittura stringa di query della richiesta. Se definito, questo parametro contiene la stringa di query della richiesta da utilizzare al posto dei URL Query String Parameters (Parametri stringa di query URL) che sono definiti nel riquadro Integration Request (Richiesta di integrazione). Per ulteriori informazioni, consulta Sostituisci i parametri di richiesta e risposta e i codici di stato dell'API per REST APIs in API Gateway. |
$context.responseOverride.header. |
Sovrascrittura intestazione della risposta. Se definito, questo parametro contiene l'intestazione da restituire al posto della Response header (Intestazione di risposta) che è definita come la Default mapping (mappatura predefinita) nel riquadro Integration Response (Risposta integrazione). Per ulteriori informazioni, consulta Sostituisci i parametri di richiesta e risposta e i codici di stato dell'API per REST APIs in API Gateway. |
$context.responseOverride.status |
Sovrascrittura codice di stato della risposta. Se definito, questo parametro contiene il codice di stato da restituire al posto di Method response status (Stato risposta metodo) che è definito come la Default mapping (Mappatura predefinita) nel riquadro Integration Response (Risposta integrazione). Per ulteriori informazioni, consulta Sostituisci i parametri di richiesta e risposta e i codici di stato dell'API per REST APIs in API Gateway. |
$context.requestTime |
Ora della richiesta in formato CLFdd/MMM/yyyy:HH:mm:ss
+-hhmm ). |
$context.requestTimeEpoch |
L'ora della richiesta in formato epoca (Unix epoch) |
$context.resourceId |
Identificatore assegnato da API Gateway alla risorsa. |
$context.resourcePath |
Percorso della risorsa. Ad esempio, per l'URI della richiesta non proxy di |
$context.stage |
La fase di distribuzione della richiesta API (ad esempio |
$context.wafResponseCode |
La risposta ricevuta da AWS WAF: |
$context.webaclArn |
ARN completo della lista di controllo accessi Web usata per stabilire se consentire o bloccare la richiesta. Non verrà impostata se la fase non è associata a un ACL Web. Per ulteriori informazioni, consulta Utilizzalo AWS WAF per proteggere il tuo REST APIs in API Gateway. |
Variabili di input
È possibile utilizzare le seguenti $input
variabili per fare riferimento al payload della richiesta del metodo e ai parametri di richiesta del metodo. Sono disponibili le funzioni seguenti:
Variabile e funzione | Descrizione |
---|---|
$input.body |
Restituisce il payload della richiesta non elaborata come stringa. È possibile utilizzare |
$input.json(x) |
Questa funzione valuta un' JSONPath espressione e restituisce i risultati come stringa JSON. Ad esempio, Per ulteriori informazioni su JSONPath, vedere JSONPath |
$input.params() |
Restituisce una mappa di tutti i parametri della richiesta. Si consiglia di utilizzare |
$input.params(x) |
Restituisce il valore di un parametro della richiesta del metodo dal percorso, dalla stringa di query o dal valore dell'intestazione (cercati in questo ordine) a partire da una stringa del nome del parametro |
$input.path(x) |
Accetta una stringa di JSONPath espressione ( Ad esempio, se l'espressione
Per ulteriori informazioni su JSONPath, vedere JSONPath |
Variabili di fase
È possibile utilizzare le seguenti variabili di fase come segnaposto per ARNs e URLs nelle integrazioni di metodi. Per ulteriori informazioni, consulta Utilizzo delle variabili di fase per una REST API in Gateway API.
Sintassi | Descrizione |
---|---|
$stageVariables. , $stageVariables[' o ${stageVariables[' |
|
variabili di utilità
È possibile utilizzare le seguenti $util
variabili per utilizzare le funzioni di utilità per i modelli di mappatura. Se non diversamente specificato, il set di caratteri predefinito è UTF-8.
Funzione | Descrizione |
---|---|
$util.escapeJavaScript() |
Sfugge ai caratteri di una stringa utilizzando le regole delle JavaScript stringhe. NotaQuesta funzione trasforma qualsiasi virgoletta singola (
|
$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:
E se usi il modello di mappatura seguente:
Otterrai l'output seguente:
|
$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. |