Quero solucionar o motivo pelo qual não consigo encontrar nenhum log quando ativo o Amazon CloudWatch Logs para Amazon API Gateway.
Breve descrição
Ao configurar o registro em log do CloudWatch para APIs REST no API Gateway, você pode usar os registros em log de execução e de acesso. O API Gateway não registra todos os erros do lado do cliente que ele rejeita nos logs de execução. Por exemplo, se um cliente fizer uma solicitação de API para um caminho de recurso incorreto da API REST, o cliente receberá a seguinte resposta: "403 Missing Authentication Token". O API Gateway não registra esse tipo de resposta nos logs de execução. Para solucionar erros do lado do cliente, use o registro em log de acesso do CloudWatch.
O API Gateway pode não gerar logs para os seguintes erros:
- Erros "413 Request Entity Too Large"
- Erros "431 Request Header Fields Too Large"
- Erros "Excessive 429 Too Many Requests"
- Erros de série 400 que ocorrem porque o cliente enviou solicitações para um domínio personalizado sem mapeamento de API
- Erros de série 500 que ocorrem devido a falhas internas
Para mais informações, consulte Monitorar APIs REST no API Gateway.
Resolução
Verificar as permissões do API Gateway para CloudWatch Logs
Para ativar o CloudWatch Logs, você deve conceder permissão ao API Gateway para ler e gravar logs no CloudWatch para sua conta da AWS.
Primeiro, crie um perfil do AWS Identity and Access Management (AWS IAM) com apigateway.amazonaws.com como a entidade confiável. Em seguida, anexe a política gerenciada pela AWS AmazonAPIGatewayPushToCloudWatchLogs ao perfil. Defina o nome do recurso da Amazon (ARN) do perfil para o cloudwatchRoleArn da sua conta.
Exemplo de política:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:PutLogEvents",
"logs:GetLogEvents",
"logs:FilterLogEvents"
],
"Resource": "*"
}
]
}
Observação: certifique-se de ativar o AWS Security Token Service (AWS STS) para sua região da AWS. Além disso, confirme se você ativou o perfil do IAM para todas as regiões em que deseja ativar o CloudWatch Logs.
Para mais informações, consulte Ativar e desativar o AWS STS em uma Região da AWS e Permissões para registro em log do CloudWatch.
Verifique as configurações de registro em log do API Gateway
Verifique se você configurou corretamente as configurações de registro em log de execução e de acesso do CloudWatch para o API Gateway.
Observação: é possível ativar o registro em log de execução e o registro em log de acesso independentemente um do outro.
Conclua as etapas a seguir:
- Abra o console do API Gateway.
- No painel de navegação, escolha APIs.
- Selecione sua API e, em seguida, escolha Estágios.
- Escolha seu estágio e, em seguida, escolha a guia Logs/Rastreamento.
- Em Configurações do CloudWatch, selecione Ativar o CloudWatch Logs.
- Defina o Nível de log como ERROR e INFO.
Observação: se você definir o Nível de log como ERROR, o API Gateway registrará somente os erros de solicitação e não registrará as solicitações de API bem-sucedidas.
- Selecione Rastreamento de dados para ativar o registro em log de rastreamento de dados para seu estágio.
Observação: é uma prática recomendada não ativar o Rastreamento de dados para APIs de produção, pois o API Gateway pode registrar dados sensíveis.
- Em Registro em log de acesso personalizado, escolha Ativar registro em log de acesso.
Verificar o método de registro
Por padrão, todos os recursos da API usam a mesma configuração do estágio de recursos da API. Se você não quiser herdar o estágio, substitua a configuração e defina configurações diferentes.
Para verificar seu método de registro em log, conclua as seguintes etapas:
- Abra o console do API Gateway.
- No painel de navegação, escolha APIs.
- Selecione sua API e, em seguida, escolha Estágios.
- Em Estágios, expanda o nome do seu estágio. Em seguida, escolha seu método HTTP, por exemplo, GET.
- Em Configurações, escolha Substituir por este método.
Observação: para fazer alterações adicionais no log, atualize as configurações necessárias na seção Configurações do CloudWatch.
- Escolha Salvar alterações.
Informações relacionadas
Como encontro erros da API REST do API Gateway em meus logs do CloudWatch?
Como posso configurar o log de acesso para o API Gateway?
Como faço para ativar o CloudWatch Logs para solucionar problemas com minha API REST do API Gateway ou API de WebSocket?