Referencia de la plantilla de asignación de la API de WebSocket para API Gateway - Amazon API Gateway

Referencia de la plantilla de asignación de la API de WebSocket para API Gateway

En esta sección se resume el conjunto de variables compatibles actualmente con las API de WebSocket en API Gateway.

Parámetro Descripción
$context.connectionId

Identificador único para la conexión que se puede utilizar para realizar una devolución de llamada al cliente.

$context.connectedAt

Hora de la conexión en formato de tiempo Unix.

$context.domainName

Nombre de dominio para la API de WebSocket. Se puede utilizar para realizar una devolución de llamada al cliente (en lugar de un valor de código rígido).

$context.eventType

El tipo de evento: CONNECT, MESSAGE o DISCONNECT.

$context.messageId

Un ID único del lado del servidor para un mensaje. Solo está disponible si $context.eventType es MESSAGE.

$context.routeKey

La clave de ruta seleccionada.

$context.requestId

Igual que $context.extendedRequestId.

$context.extendedRequestId Un ID generado de forma automática para la llamada a la API, que contiene más información útil para la depuración o la resolución de problemas.
$context.apiId

El identificador que API Gateway asigna a su API.

$context.authorizer.principalId

La identificación de usuario principal asociada con el token enviado por el cliente y devuelto de una función de Lambda del autorizador de Lambda de API Gateway (que anteriormente se denominaba “autorizador personalizado”).

$context.authorizer.property

El valor en forma de cadena del par clave-valor especificado de la asignación context que devuelve la función de Lambda del autorizador de Lambda de API Gateway. Por ejemplo, si el autorizador devuelve la siguiente asignación de context:

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

la llamada a $context.authorizer.key devuelve la cadena "value", la llamada a $context.authorizer.numKey devuelve la cadena "1" y la llamada a $context.authorizer.boolKey devuelve la cadena "true".

$context.error.messageString El valor entrecomillado de $context.error.message, es decir, "$context.error.message".
$context.error.validationErrorString

Una cadena que contiene un mensaje de error de validación detallado.

$context.identity.accountId

El ID de cuenta de AWS asociado con la solicitud.

$context.identity.apiKey

Clave del propietario de API asociada a la solicitud de API habilitada para claves.

$context.identity.apiKeyId ID de clave de API asociado a la solicitud de API habilitada para claves
$context.identity.caller

El identificador principal del intermediario que realiza la solicitud.

$context.identity.cognitoAuthenticationProvider

Una lista separada por comas de todos los proveedores de autenticación de Amazon Cognito utilizados por el intermediario que realiza la solicitud. Solo está disponible si la solicitud se firmó con las credenciales de Amazon Cognito.

Por ejemplo, para una identidad de un grupo de usuarios de Amazon Cognito, cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim

Consulte Uso de las identidades federadas en la Guía para desarrolladores de Amazon Cognito para obtener información sobre los proveedores de autenticación de Amazon Cognito disponibles.

$context.identity.cognitoAuthenticationType

El tipo de autenticación de Amazon Cognito del intermediario que realiza la solicitud. Solo está disponible si la solicitud se firmó con las credenciales de Amazon Cognito. Los valores posibles incluyen authenticated para identidades autenticadas y unauthenticated para identidades no autenticadas.

$context.identity.cognitoIdentityId

El ID de identidad de Amazon Cognito del intermediario que realiza la solicitud. Solo está disponible si la solicitud se firmó con las credenciales de Amazon Cognito.

$context.identity.cognitoIdentityPoolId

El ID del grupo de identidades de Amazon Cognito del intermediario que realiza la solicitud. Solo está disponible si la solicitud se firmó con las credenciales de Amazon Cognito.

$context.identity.sourceIp

La dirección IP de origen de la conexión TCP inmediata que realiza la solicitud al punto de enlace de API Gateway.

$context.identity.user

El identificador principal del usuario que realiza la solicitud.

$context.identity.userAgent

El agente de usuario del intermediario de la API.

$context.identity.userArn

El Nombre de recurso de Amazon (ARN) del usuario identificado después de la autenticación.

$context.requestTime Hora de la solicitud en formato CLF-(dd/MMM/yyyy:HH:mm:ss +-hhmm).
$context.requestTimeEpoch Hora de la solicitud en formato Epoch en milisegundos.
$context.stage

La etapa de implementación de la llamada a la API (por ejemplo, Beta o Prod).

$context.status

Estado de la respuesta.

$input.body

Devuelve la carga bruta como una cadena.

$input.json(x)

Esta función evalúa una expresión JSONPath y devuelve los resultados como una cadena JSON.

Por ejemplo, $input.json('$.pets') devolverá una cadena JSON que representa la estructura de "pets" (mascotas).

Para obtener más información acerca de JSONPath, consulte JSONPath o JSONPath for Java.

$input.path(x)

Toma una cadena de expresión JSONPath (x) y devuelve una representación del resultado en forma de objeto JSON. Esto le permite tener acceso y manipular los elementos de la carga de forma nativa en Apache Velocity Template Language (VTL).

Por ejemplo, si la expresión $input.path('$.pets') devuelve un objeto como este:

[ { "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() devolvería "3".

Para obtener más información acerca de JSONPath, consulte JSONPath o JSONPath for Java.

$stageVariables.<variable_name>

<variable_name> representa un nombre de variable de etapa.

$stageVariables['<variable_name>']

<variable_name> representa cualquier nombre de variable de etapa.

${stageVariables['<variable_name>']}

<variable_name> representa cualquier nombre de variable de etapa.

$util.escapeJavaScript()

Aplica caracteres de escape a los caracteres de una cadena usando reglas de cadena de JavaScript.

nota

Esta función convertirá todas las comillas simples (') en caracteres de escape (\'). Sin embargo, JSON no admite comillas simples con caracteres de escape. Por lo tanto, cuando la salida de esta función se utiliza en una propiedad de JSON, debe convertir todas las comillas simples con caracteres de escape (\') en comillas simples normales ('). Esto se muestra en el siguiente ejemplo:

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

Toma un elemento JSON en forma de cadena y devuelve una representación del resultado en forma de objeto. Puede utilizar el resultado de esta función para tener acceso y manipular los elementos de la carga de forma nativa en Apache Velocity Template Language (VTL). Por ejemplo, si tiene la siguiente carga:

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

y usa la siguiente plantilla de asignación

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

Obtendrá el siguiente resultado:

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

Convierte una cadena en formato "application/x-www-form-urlencoded".

$util.urlDecode()

Descodifica una cadena "application/x-www-form-urlencoded".

$util.base64Encode()

Codifica los datos en una cadena codificada en base64.

$util.base64Decode()

Descodifica los datos de una cadena codificada en base64.