Personalizar logs de acesso à API HTTP - Amazon API Gateway

Personalizar logs de acesso à API HTTP

É possível usar as variáveis a seguir para personalizar logs de acesso para APIs HTTP. Para saber mais sobre logs de acesso para APIs HTTP, consulte Configurar registro em log para APIs HTTP no API Gateway.

Parâmetro Descrição
$context.accountId

O ID da conta da AWS do proprietário da API

$context.apiId

O identificador que o API Gateway atribui à sua API.

$context.authorizer.claims.property

Uma propriedade das declarações retornadas do JSON Web Token (JWT) depois que o chamador do método é autenticado com êxito, como $context.authorizer.claims.username. Para ter mais informações, consulte Controlar o acesso a APIs HTTP com autorizadores JWT.

nota

Chamar $context.authorizer.claims retorna um valor nulo.

$context.authorizer.error A mensagem de erro retornada de um autorizador.
$context.authorizer.principalId

A identificação do usuário principal retornada por um autorizador do Lambda.

$context.authorizer.property

O valor do par de chave/valor especificado do mapa context retornado por 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 retorna a string "value", chamar $context.authorizer.numKey retorna 1 e chamar $context.authorizer.boolKey retorna true.

$context.awsEndpointRequestId

O ID da solicitação do endpoint da AWS do cabeçalho x-amz-request-id ou x-amzn-requestId.

$context.awsEndpointRequestId2

O ID da solicitação do endpoint da AWS do cabeçalho x-amz-id-2.

$context.customDomain.basePathMatched

O caminho para um mapeamento da API correspondente a uma solicitação de entrada. Aplicável quando um cliente usa um nome de domínio personalizado para acessar uma API. Por exemplo, se um cliente enviar uma solicitação para https://api.example.com/v1/orders/1234 e a solicitação corresponder ao mapeamento da API com o caminho v1/orders, o valor será v1/orders. Para saber mais, consulte Mapear estágios de API para um nome de domínio personalizado para APIs HTTP.

$context.dataProcessed A quantidade de dados processados em bytes.
$context.domainName

O nome de domínio completo usado para invocar a API. Ele deve ser o mesmo que o cabeçalho Host de entrada.

$context.domainPrefix

O primeiro rótulo do $context.domainName.

$context.error.message

Uma string que contém uma mensagem de erro do API Gateway.

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

Um tipo de GatewayResponse. Para ter mais informações, consulte Monitorar a execução de APIs de WebSocket com métricas do CloudWatch e Configurar respostas do gateway para personalizar respostas de erro.

$context.extendedRequestId Equivale a $context.requestId.
$context.httpMethod

O método HTTP utilizado. Os valores válidos incluem: DELETE, GET, HEAD, OPTIONS, PATCH, POST e PUT.

$context.identity.accountId

O ID da conta da AWS associado à solicitação. Compatível com rotas que usam a autorização do IAM.

$context.identity.caller

O identificador da entidade do autor da chamada que assinou a solicitação. Compatível com rotas que usam a autorização do IAM.

$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.principalOrgId

O ID da organização da AWS. Compatível com rotas que usam a autorização do IAM.

$context.identity.clientCert.clientCertPem

O certificado de cliente codificado por PEM que o cliente apresentou durante a autenticação TLS mútua. Presente quando um cliente acessa uma API usando um nome de domínio personalizado que tenha TLS mútuo habilitado.

$context.identity.clientCert.subjectDN

O nome distinto do assunto do certificado apresentado por um cliente. Presente quando um cliente acessa uma API usando um nome de domínio personalizado que tenha TLS mútuo habilitado.

$context.identity.clientCert.issuerDN

O nome distinto do emissor do certificado apresentado por um cliente. Presente quando um cliente acessa uma API usando um nome de domínio personalizado que tenha TLS mútuo habilitado.

$context.identity.clientCert.serialNumber

O número de série do certificado. Presente quando um cliente acessa uma API usando um nome de domínio personalizado que tenha TLS mútuo habilitado.

$context.identity.clientCert.validity.notBefore

A data antes da qual o certificado é inválido. Presente quando um cliente acessa uma API usando um nome de domínio personalizado que tenha TLS mútuo habilitado.

$context.identity.clientCert.validity.notAfter

A data após a qual o certificado é inválido. Presente quando um cliente acessa uma API usando um nome de domínio personalizado que tenha TLS mútuo habilitado.

$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 da entidade do usuário que será autorizado contra o acesso a recursos. Compatível com rotas que usam a autorização do IAM.

$context.identity.userAgent

O cabeçalho User-Agent 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. Compatível com rotas que usam a autorização do IAM. Para obter mais informações, consulte https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html.

$context.integration.error A mensagem de erro retornada de uma integração. Equivale a $context.integrationErrorMessage.
$context.integration.integrationStatus Para a integração de proxy do Lambda, o código de status retornado do AWS Lambda, não do código de função do Lambda de back-end.
$context.integration.latency A latência de integração em ms. Equivale a $context.integrationLatency.
$context.integration.requestId O ID da solicitação do endpoint da AWS. Equivale a $context.awsEndpointRequestId.
$context.integration.status O código de status retornado de uma integração. Para integrações de proxy do Lambda, esse é o código de status que seu código de função do Lambda retorna.
$context.integrationErrorMessage

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

$context.integrationLatency A latência de integração em ms.
$context.integrationStatus Para a integração de proxy do Lambda, esse parâmetro representa o código de status retornado pelo AWS Lambda, e não pela função do Lambda de backend.
$context.path O caminho da solicitação. Por exemplo, /{stage}/root/child.
$context.protocol O protocolo de solicitação, por exemplo, , HTTP/1.1.
nota

As APIs do API Gateway podem aceitar solicitações HTTP/2, mas o API Gateway envia solicitações para integrações de back-end usando HTTP/1.1. Como resultado, o protocolo de solicitação é registrado como HTTP/1.1 mesmo se um cliente enviar uma solicitação que usa HTTP/2.

$context.requestId

O ID que o API Gateway atribui à solicitação de API.

$context.requestTime O horário da solicitação CLF formatado (dd/MMM/yyyy:HH:mm:ss +-hhmm).
$context.requestTimeEpoch O horário da solicitação Epoch formatado.
$context.responseLatency A latência da resposta em ms.
$context.responseLength O tamanho da carga de resposta em bytes.
$context.routeKey

A chave de rota da solicitação da API, por exemplo, /pets.

$context.stage

O estágio de implantação da solicitação de API (por exemplo, beta ou prod).

$context.status O status de resposta do método.