Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Solução de problemas com integrações do Lambda para APIs HTTP

Modo de foco
Solução de problemas com integrações do Lambda para APIs HTTP - Amazon API Gateway

O tópico a seguir fornece orientações para a solução de erros e problemas que podem ser encontrados durante o uso de AWS LambdaIntegrações do com APIs HTTP.

Problema: minha API com uma integração do Lambda retorna {"message":"Internal Server Error"}

Para solucionar o erro interno do servidor, adicione a $context.integrationErrorMessage variável de registro em log ao formato de log e visualize os logs da API HTTP. Para conseguir isso, faça o seguinte:

Como criar um grupo de logs usando o AWS Management Console
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. Escolha Grupos de logs.

  3. Escolha Criar grupo de logs.

  4. Insira um nome para o grupo de logs e escolha Criar.

  5. Anote o nome de recurso da Amazon (ARN) do grupo de logs. O formato do ARN é arn:aws:logs:region: account-id:log-group:log-group-name. O ARN do grupo de logs é necessário para habilitar o registro de acesso em logs para a API HTTP.

Como adicionar a variável de registro em log $context.integrationErrorMessage
  1. Inicie uma sessão no console do API Gateway em https://console.aws.amazon.com/apigateway.

  2. Escolha sua API HTTP.

  3. Em Monitor, escolha Registro em log.

  4. Selecione um estágio da API.

  5. Escolha Editar e habilite o registro de acesso em logs.

  6. Para o destino do log, insira o ARN do grupo de log que você criou na etapa anterior.

  7. Em Formato de log, escolha CLF. O API Gateway cria um exemplo de formato de log.

  8. Adicione $context.integrationErrorMessage ao final do formato de log.

  9. Escolha Save (Salvar).

Como visualizar os logs da API
  1. Gere os logs. Use um navegador ou curl para invocar a API.

    $curl https://api-id.execute-api.us-west-2.amazonaws.com/route
  2. Inicie uma sessão no console do API Gateway em https://console.aws.amazon.com/apigateway.

  3. Escolha sua API HTTP.

  4. Em Monitor, escolha Registro em log.

  5. Selecione o estágio da API para o qual você habilitou o registro em log.

  6. Escolha View logs in CloudWatch (Exibir logs no CloudWatch).

  7. Escolha o stream de logs mais recente para visualizar os logs da API HTTP.

  8. A entrada de log deve ser semelhante à seguinte:

    Entrada de log do CloudWatch Logs mostrando a mensagem de erro de integração do Lambda.

Como adicionamos $context.integrationErrorMessage ao formato de log, vemos uma mensagem de erro nos logs que resume o problema.

Os logs podem incluir uma mensagem de erro diferente que indica que há um problema com o código de função do Lambda. Nesse caso, confira o código de função do Lambda e verifique se a função do Lambda retorna uma resposta no formato necessário. Se os logs não incluírem uma mensagem de erro, adicione $context.error.message e $context.error.responseType ao seu formato de log para obter mais informações para ajudar a solucionar problemas.

Nesse caso, os logs mostram que o API Gateway não tinham as permissões necessárias para invocar a função do Lambda.

Quando você cria uma integração do Lambda no console do API Gateway, este configura automaticamente as permissões para invocar a função do Lambda. Ao criar uma integração do Lambda usando a AWS CLI, AWS CloudFormation ou um SDK, você deve conceder permissões para o API Gateway invocar a função. Os comandos de exemplo da AWS CLI a seguir concedem permissões para diferentes rotas da API HTTP invocarem uma função do Lambda.

exemplo Exemplo: para o estágio $default e a rota $default de uma API HTTP
aws lambda add-permission \ --function-name my-function \ --statement-id apigateway-invoke-permissions \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn "arn:aws:execute-api:us-west-2:123456789012:api-id/\$default/\$default"
exemplo Exemplo: para o estágio prod e a rota test de uma API HTTP
aws lambda add-permission \ --function-name my-function \ --statement-id apigateway-invoke-permissions \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn "arn:aws:execute-api:us-west-2:123456789012:api-id/prod/*/test"

Confirme a política de função na guia Permissions (Permissões) do console do Lambda.

Tente invocar a API novamente. Você deverá ver a resposta da função do Lambda.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.