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 o registro em log para uma API HTTP.

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 Como trabalhar com mapeamentos de API 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 obter mais informações, consulte Monitorar a execução de APIs 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 dos 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

Para obter informações, consulte Usar identidades federadas 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.