Como faço para ativar o CloudWatch Logs para solucionar problemas com minha API REST do API Gateway ou API de WebSocket?

4 minuto de leitura
0

Quero depurar erros com uma API REST do Amazon API Gateway ou API de WebSocket que estou criando.

Breve descrição

Para solucionar problemas de uma API Gateway, API REST ou API de WebSocket, use o Amazon CloudWatch Logs. Para obter informações sobre os tipos de formatos de log, consulte Formatos de log do CloudWatch para API Gateway.

Observação: As APIs HTTP suportam somente o registro de acesso. Para obter mais informações, consulte Configurar o registro para APIs HTTP no API Gateway.

É possível encontrar as seguintes informações nos logs:

Resolução

Crie um perfil do IAM para enviar logs para o CloudWatch

Conclua as seguintes etapas:

  1. Abra o console do AWS Identity and Access Management (AWS IAM).
  2. No painel de navegação, escolha Perfis.
  3. No painel Perfis, selecione Criar perfil.
  4. Na página Criar perfil, insira as seguintes informações:
    Em Entidade confiável, escolha Serviço da AWS.
    Para o caso de uso, escolha API Gateway e, em seguida, escolha o botão de opção API Gateway.
    Escolha Avançar.
  5. Em Políticas de permissões, use a política padrão gerenciada pela AWS AmazonAPIGatewayPushToCloudWatchLogs que tem todas as permissões necessárias.
  6. Escolha Avançar.
  7. Em Nomear, revisar e criar, insira as seguintes informações:
    Em Nome da função, insira um nome para a função.
    (Opcional) Em Descrição da função, edite a descrição de acordo com suas preferências.
    (Opcional) Adicionar etiquetas.
    Selecione Criar perfil.
  8. No painel Perfis, escolha o perfil que você criou.
  9. No painel Resumo, observe o ARN do perfil a ser usado na próxima seção.

Para obter informações sobre permissões, consulte Permissões para registro em log do CloudWatch.

Adicione o perfil do IAM no console do API Gateway

Conclua as seguintes etapas:

  1. Abra o console do API Gateway.
  2. No painel APIs, escolha o nome da API REST ou da API de WebSocket, não da API HTTP.
  3. No painel de navegação, escolha Configurações.
  4. Em Configurações, para ARN do perfil do log do CloudWatch, insira o ARN do perfil do IAM.
    Observação: O perfil do CloudWatch Logs é uma configuração em nível de região AWS que você usa com todas as APIs na região.
  5. Escolha Salvar.

Observação: Se você criar várias APIs em diferentes regiões, conclua as etapas anteriores em cada região.

Ative o registro da API e prepare a API

Conclua as seguintes etapas:

  1. Abra o console do API Gateway.
  2. No painel de navegação, escolha APIs e selecione sua API.
  3. No painel de navegação, escolha Estágios e selecione seu estágio.
  4. Em Logs e rastreamento, escolha Editar.
  5. Em CloudWatch Logs, selecione um nível no menu suspenso.
    Observação: Para logs completos de solicitações e respostas, selecione a opção Rastreamento de dados com o nível de registro definido como logs de erros e informações. É uma prática recomendada não ativar o rastreamento de dados para APIs de produção, pois o rastreamento de dados pode registrar dados sigilosos.
  6. Escolha Métricas detalhadas.
  7. Em Registro de acesso personalizado, conclua as seguintes etapas:
    Selecione Ativar registro de acesso.
    Em ARN de destino de logs de acesso, insira o ARN de um Amazon Data Firehose ou um Grupo de logs do CloudWatch.
    Observação: Somente as APIs REST oferecem suporte ao Firehose ARN.
  8. Insira um formato de log.
  9. Escolha Salvar alterações.

Testar sua configuração de log

Observação: Para enviar uma nova solicitação à sua API, use sua aplicação cliente ou ferramentas como o app Postman ou o wscat para APIs de WebSocket.

Conclua as seguintes etapas:

  1. Abra o console do CloudWatch.
  2. No painel de navegação, em Logs, escolha Grupos de logs.
  3. Em Grupos de logs, selecione o grupo de logs da API que você deseja depurar:
    Para APIs REST, o nome do grupo de logs está no formato API-Gateway-Execution-Logs_apiId/stageName.
    Para APIs de WebSocket, o nome do grupo de logs está no formato /aws/apigateway/apiid/stageName.
    Observação: os logs de acesso estão localizados no grupo de logs especificado quando você ativou o logs de acesso.
  4. Na lista de fluxos de logs, selecione o fluxo de logs com a última hora do último evento para ver as mensagens com os detalhes da sua solicitação.

Informações relacionadas

Modelo de mapeamento do API Gateway e referência da variável de log de acesso

Monitoramento da execução da API REST com métricas do Amazon CloudWatch

Monitorar a execução da API de WebSocket com métricas do CloudWatch