Referência de modelos de mapeamento da API de WebSocket - Amazon API Gateway

Referência de modelos de mapeamento da API de WebSocket

Esta seção resume o conjunto de variáveis que são atualmente compatíveis com APIs WebSocket no API Gateway.

Parâmetro Descrição
$context.connectionId

Um ID exclusivo para a conexão que pode ser utilizado para fazer uma chamada ao cliente.

$context.connectedAt

O tempo de conexão formatado em Epoch.

$context.domainName

Um nome de domínio para a API WebSocket. É possível utilizá-lo para fazer uma chamada ao cliente (em vez de um valor codificado).

$context.eventType

O tipo de evento: CONNECT, MESSAGE ou DISCONNECT.

$context.messageId

Um ID exclusivo do servidor para uma mensagem. Disponível apenas quando o $context.eventType é MESSAGE.

$context.routeKey

A chave de roteamento selecionada.

$context.requestId

Igual a $context.extendedRequestId.

$context.extendedRequestId Um ID gerado automaticamente para a chamada de API, que contém mais informações úteis para depuração/solução de problemas.
$context.apiId

O identificador que o API Gateway atribui à sua API.

$context.authorizer.principalId

A identificação do usuário principal associada ao token enviado pelo cliente e retornada por uma função do Lambda do autorizador do Lambda do API Gateway (anteriormente conhecido como autorizador personalizado).

$context.authorizer.property

O valor transformado em string do par de chave/valor especificado do mapa context retornado de uma função de autorizador do Lambda do API Gateway. Por exemplo, se o autorizador retornar o seguinte mapa context:

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

chamar $context.authorizer.key retornará a string "value", chamar $context.authorizer.numKey retornará a string "1" e chamar $context.authorizer.boolKey retornará a string "true".

$context.error.messageString O valor citado de $context.error.message, ou seja, "$context.error.message".
$context.error.validationErrorString

Uma string que contém uma mensagem de erro de validação detalhada.

$context.identity.accountId

O ID da conta da AWS associado à solicitação.

$context.identity.apiKey

A chave do proprietário da API associada à solicitação de API habilitada por chave.

$context.identity.apiKeyId O ID da chave da API associada à solicitação de API habilitada por chave
$context.identity.caller

O identificador principal do agente de chamada que está fazendo a solicitação.

$context.identity.cognitoAuthenticationProvider

Uma lista separada por vírgulas de todos os provedores de autenticação do Amazon Cognito usados pelo autor da chamada que faz a solicitação. Disponível somente se a solicitação foi assinada com credenciais do Amazon Cognito.

Por exemplo, para uma identidade de um grupo de usuários do Amazon Cognito, cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim

Consulte informações sobre os provedores de autenticação do Amazon Cognito disponível em Using Federated Identities no Guia do desenvolvedor do Amazon Cognito.

$context.identity.cognitoAuthenticationType

O tipo de autenticação do Amazon Cognito do autor da chamada que faz a solicitação. Disponível somente se a solicitação foi assinada com credenciais do Amazon Cognito. Os valores possíveis incluem authenticated para identidades autenticadas e unauthenticated para identidades não autenticadas.

$context.identity.cognitoIdentityId

O ID de identidade do Amazon Cognito do autor da chamada que faz a solicitação. Disponível somente se a solicitação foi assinada com credenciais do Amazon Cognito.

$context.identity.cognitoIdentityPoolId

O ID do grupo de identidades do Amazon Cognito do autor da chamada que faz a solicitação. Disponível somente se a solicitação foi assinada com credenciais do Amazon Cognito.

$context.identity.sourceIp

O endereço IP de origem da conexão TCP mais próxima que está fazendo a solicitação para o endpoint do API Gateway.

$context.identity.user

O identificador principal do usuário que está fazendo a solicitação.

$context.identity.userAgent

O agente de usuário do autor da chamada da API.

$context.identity.userArn

O Nome do Recurso Amazon (ARN) do usuário efetivo identificado após a autenticação.

$context.requestTime O horário da solicitação CLF formatado (dd/MMM/yyyy:HH:mm:ss +-hhmm).
$context.requestTimeEpoch O tempo de solicitação formatado em Epoch, em milissegundos.
$context.stage

O estágio de implantação da chamada de API (por exemplo, Beta ou Prod).

$context.status

O status da resposta.

$input.body

Retorna a carga bruta como uma string.

$input.json(x)

Essa função avalia uma expressão JSONPath e retorna os resultados como uma string JSON.

Por exemplo, $input.json('$.pets') retornará uma string JSON que representa a estrutura de animais de estimação.

Para obter mais informações sobre o JSONPath, consulte JSONPath ou JSONPath para Java.

$input.path(x)

Usa uma string de expressão JSONPath (x) e retorna uma representação de objeto JSON do resultado. Isso permite que você acesse e manipule elementos da carga nativamente em Apache Velocity Template Language (VTL).

Por exemplo, se a expressão $input.path('$.pets') retorna um objeto da seguinte forma:

[ { "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() retornaria "3".

Para obter mais informações sobre o JSONPath, consulte JSONPath ou JSONPath para Java.

$stageVariables.<variable_name>

<variable_name> representa um nome de variável de estágio.

$stageVariables['<variable_name>']

<variable_name> representa qualquer nome de variável de estágio.

${stageVariables['<variable_name>']}

<variable_name> representa qualquer nome de variável de estágio.

$util.escapeJavaScript()

Escapa os caracteres em uma string usando regras de string JavaScript.

nota

Essa função transformará quaisquer aspas simples comuns (') em aspas com escape (\'). No entanto, as aspas simples com escape não são válidas no JSON. Portanto, quando a saída dessa função for usada em uma propriedade JSON, você deverá transformar todas aspas simples (\') com escape de volta para aspas simples comuns ('). Isso é mostrado no exemplo a seguir:

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

Usa um JSON "transformado em string" e retorna uma representação de objeto do resultado. Você pode usar o resultado dessa função para acessar e manipular elementos da carga nativamente em Apache VTL (Velocity Template Language). Por exemplo, se tiver a seguinte carga:

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

e usar o seguinte modelo de mapeamento

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

Você receberá a seguinte saída:

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

Converte uma string no formato "application/x-www-form-urlencoded".

$util.urlDecode()

Decodifica uma string "application/x-www-form-urlencoded".

$util.base64Encode()

Codifica os dados em uma string codificada em base64.

$util.base64Decode()

Decodifica os dados de uma string codificada em base64.