Como posso usar os logs do Amazon API Gateway para a solução de problemas?

4 minuto de leitura
0

Quero usar os logs do Amazon API Gateway para solucionar problemas da API.

Breve descrição

Para solucionar problemas de uma API REST ou API de WebSocket no API Gateway, ative o registro em log de execução e o registro em log de acesso usando o Amazon CloudWatch Logs. Certifique-se de ter anexado todas as permissões necessárias ao perfil do API Gateway AWS Identity and Access Management (IAM). Para obter instruções, consulte How do I turn on CloudWatch Logs for troubleshooting my API Gateway REST API or WebSocket API? (Como habilito o CloudWatch Logs para resolver meus problemas com a API REST ou com a API de WebSocket no API Gateway?)

Observação: atualmente, as APIs HTTP suportam somente o registro em log de acesso, e a configuração do registro em log é diferente para essas APIs. Para obter mais informações, consulte Configuring logging for an HTTP API (Como configurar o registro em log para uma API HTTP).

Resolução

Depois de ativar o registro em log, o API Gateway cria automaticamente um grupo de logs do CloudWatch chamado API-Gateway-Execution-logs/{rest-api-id}/{stage-name}. Para obter mais informações, consulte CloudWatch log formats for API Gateway (Formatos de log do CloudWatch para o API Gateway).

Autorizadores do AWS Lambda

Se houver autorizadores Lambda ativados para sua API, os logs indicarão se a solicitação está autorizada e incluirão o autorizador e os IDs da solicitação.

Exemplos de logs autorizados:

Starting authorizer: 62mgrc for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0
Successfully completed authorizer execution

Exemplos de logs não autorizados:

Starting authorizer: 62mgrc for request: fd443056-60d0-425f-874e-e93e5d61351e
Unauthorized request: fd443056-60d0-425f-874e-e93e5d61351e

Planos de uso

Depois que o autorizador do Lambda é registrado em log, o API Gateway verifica o plano de uso da solicitação da API. Se você não tiver configurado um plano de uso, as solicitações da API não serão levadas em conta nos limites do controle de utilização.

Exemplos de logs do plano de uso:

Verifying Usage Plan for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0. API Key: API Stage: <api_id>/<stage>
API Key authorized because method 'GET /' does not require API Key. Request will not contribute to throttle or quota limits
Usage Plan check succeeded for API Key and API Stage <api_id>/<stage>

Se você tiver configurado APIs com chaves de API, mas o cabeçalho X-API-Key estiver ausente, os logs retornarão um erro semelhante ao seguinte:

API Key not authorized because method 'GET /' requires API Key and API 
Key is not associated with a Usage Plan for API Stage 
<api_id>/<stage>: API Key was required but not present

Se você tiver adicionado a chave de API correta no cabeçalho, mas a solicitação for limitada, os logs retornarão um erro semelhante ao seguinte:

API Key **********************************FGQes7 exceeded throttle limit for API Stage <api_id>/<stage>: Key throttle limit exceeded for Usage Plan ID iwuzkt. Limit: 5.00 Burst: 0
Method completed with status: 429

Tipos de log de solicitações

Observação: todos os tipos de log de solicitações exigem a ativação da opção Log full requests/responses data (Registrar em log dados completos de solicitações/respostas) nos logs de execução.

Logs de solicitação de métodos

Os logs de solicitação de métodos incluem informações detalhadas recebidas por uma solicitação da API, incluindo o caminho da solicitação, o parâmetro da consulta, o cabeçalho da solicitação e o corpo da solicitação.

Logs de solicitação de endpoints

Os logs de solicitação de endpoints incluem informações detalhadas recebidas por uma solicitação de API, incluindo o URI, os cabeçalhos da solicitação e o corpo da solicitação.

Os dados incluídos nas solicitações de endpoint são enviados para sua integração de back-end para processamento posterior.

Logs de resposta de endpoints

Os logs de resposta de endpoints incluem os dados retornados pela integração de back-end, incluindo o código de status, o corpo dos cabeçalhos e a latência da integração.

Logs de resposta de métodos

Os logs de resposta de métodos incluem os cabeçalhos e o corpo enviados ao cliente após a transformação.

Importante: o API Gateway limita os eventos de logs a 1.024 bytes. Eventos de logs maiores que 1.024 bytes, como corpos de solicitação e resposta, são truncados pelo API Gateway antes do envio aos logs do CloudWatch.


Informações relacionadas

How can I troubleshoot missing CloudWatch logs for API Gateway REST APIs? (Como posso solucionar problemas de logs do CloudWatch ausentes para APIs REST do API Gateway?)

Setting up CloudWatch logging for a REST API in API Gateway (Como configurar o registro em log do CloudWatch para uma API REST no API Gateway)

Monitoring REST API execution with Amazon CloudWatch metrics (Como monitorar a execução da API REST com métricas do Amazon CloudWatch)

Monitoring WebSocket API execution with CloudWatch metrics (Como monitorar a execução da API de WebSocket com métricas do CloudWatch)