Como posso solucionar problemas de logs ausentes do CloudWatch para APIs REST do API Gateway?
Eu ativei o registro em log do Amazon CloudWatch para o Amazon API Gateway, mas não consegui encontrar nenhum log.
Breve descrição
É possível usar o registro em log do CloudWatch para ajudar a depurar problemas relacionados à execução de solicitações ou ao acesso do cliente à sua API. O registro em log do CloudWatch inclui o registro em log de execução e o registro em log de acesso.
Para o registro em log de execução, o API Gateway gerencia os logs do CloudWatch, incluindo a criação de grupos de logs e fluxos de logs. Para acessar o registro em log, é possível criar seus próprios grupos de logs ou escolher grupos de logs existentes.
Nem todos os erros do lado do cliente rejeitados pelo API Gateway são registrados nos registros em log de execução. Por exemplo, um cliente fazendo uma solicitação de API para um caminho de recurso incorreto da sua API REST retorna uma resposta 403 “Token de autenticação ausente”. Esse tipo de resposta não está registrado nos registros em log de execução. Use o registro em log de acesso do CloudWatch para solucionar erros do lado do cliente.
Para mais informações, consulte Formatos de log do CloudWatch para API Gateway{.
O API Gateway pode não gerar logs para:
- Erros 413 Entidade de solicitação muito grande.
- Erros excessivos 429 Solicitações demais.
- Erros da série 400 de solicitações enviadas para um domínio personalizado que não tem mapeamento de API.
- Erros da série 500 causados por falhas internas.
Para obter mais informações, consulte Monitoramento de APIs REST.
Resolução
Verifique as permissões do API Gateway para o registro em log do CloudWatch
Para ativar o CloudWatch Logs, você deve conceder permissão ao API Gateway para ler e gravar logs no CloudWatch para sua conta. A política gerenciada AmazonAPIGatewayPushToCloudWatchLogs tem as permissões necessárias.
Crie um perfil do AWS Identity and Access Management (AWS IAM) com apigateway.amazonaws.com como sua entidade confiável. Em seguida, anexe a seguinte política ao perfil do IAM e defina o ARN do perfil do IAM na propriedade cloudWatchRoleArn da sua conta da AWS:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": "*" } ] }
Certifique-se de que:
- O AWS Security Token Service (AWS STS) esteja ativado para sua região da AWS. Para mais informações, consulte Gerenciar o AWS STS em uma região da AWS.
- O perfil do IAM é ativado para todas as regiões AWS nas quais você deseja ativar os logs do CloudWatch.
Para obter mais informações, consulte Permissões para registro em log do CloudWatch.
Verifique as configurações de registro em log do API Gateway
Verifique se as configurações de registro em log de execução ou de acesso do CloudWatch estão ativadas 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.
- Abra o console do API Gateway.
- No painel de navegação, escolha APIs.
- Escolha sua API e, em seguida, escolha Estágios.
- Em Estágios, escolha seu estágio e, em seguida, escolha a guia Logs/Rastreamento.
- Nas configurações do CloudWatch, verifique o seguinte:
A opção Ativar CloudWatch Logs está selecionada.
O nível de logs está definido como INFO. Observação: Se o nível de logs estiver definido como ERROR, somente as solicitações de erros no API Gateway serão registradas. Solicitações de API bem-sucedidas não são registradas.
Registrar dados completos de solicitações/respostas e Ativar métricas detalhadas do CloudWatch são selecionados para dados de log adicionais.
Observação: É uma prática recomendada não ativar Registrar dados completos de solicitações/respostas para APIs de produção, o que pode resultar no registro em log de dados sigilosos. - Em Registro em log de acesso personalizado, verifique se a opção Ativar registro em log de acesso está selecionada.
Verifique o método de registro em log e substitua, se necessário
Por padrão, todos os recursos da API usam as mesmas configurações de seu estágio. Essa configuração pode ser substituída para ter configurações diferentes para cada método se você não quiser herdar do estágio.
- Abra o console do API Gateway.
- No painel de navegação, escolha APIs.
- Escolha 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.
- Nas configurações do CloudWatch, faça quaisquer alterações adicionais de logs para seu caso de uso, se necessário, e escolha Salvar alterações.
Para obter mais informações, consulte Configurando o registro em log do CloudWatch para uma API REST no API Gateway.
Informações relacionadas
Como encontro erros da API REST do API Gateway em meus logs do CloudWatch?
Conteúdo relevante
- feita há 12 horaslg...
- Resposta aceitafeita há 14 diaslg...
- feita há 17 diaslg...
- feita há um mêslg...
- feita há 17 diaslg...
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 4 meses
- AWS OFICIALAtualizada há um mês
- AWS OFICIALAtualizada há 2 anos