Desejo integrar um endpoint da Amazon API Gateway com o AWS Lambda, mas recebo um erro.
Resolução
Siga estas etapas de solução de problemas para o erro que você recebeu.
Antes de começar, ative o Amazon CloudWatch Logs para solucionar erros do API Gateway. Em Nível de log, selecione INFO para gerar logs de execução para todas as solicitações.
O API Gateway não tem permissões de função do Lambda
O erro Invalid permissions on Lambda function (Permissões inválidas na função do Lambda) ocorre quando a API Gateway não tem permissões para invocar a função do Lambda. Para resolver esse problema, consulte Como resolvo erros de “Invalid permissions on Lambda function” das APIs REST da API Gateway?
Observação: se você usar outro serviço para implantar seus recursos da API Gateway, como o AWS CloudFormation, conceda permissões ao recurso AWS::Lambda::Permission.
Ocorre o controle de utilização
Se o serviço de back-end for limitado devido a um grande número de solicitações, a API da API Gateway poderá retornar um Erro interno do servidor. Ative um mecanismo de recuo exponencial e repetição e, em seguida, envie a solicitação novamente. Se o problema persistir, verifique sua cota da API Gateway. Se você exceder a cota de serviço, solicite um aumento de cota para a simultaneidade da função do Lambda para que a função não seja limitada.
Você também pode receber erros de Taxa excedida e 429 TooManyRequestsException devido a problemas de controle de utilização da função do Lambda. Para obter mais informações, consulte Como soluciono problemas de controle de utilização “Rate exceeded” e ”TooManyRequestsException” da função do Lambda?
O mapeamento do código de status está incorreto ou ausente
Quando o mapeamento do código de status HTTP está incorreto ou ausente, é possível receber uma mensagem de erro 500 semelhante à seguinte:
“Execution failed due to configuration error: Output mapping refers to an invalid method response: 2xx/4xx/5xx”.
Para resolver esse erro, configure a solicitação e a resposta de integração da operação da API para retornar o código de status correto.
As exceções do serviço Lambda não são gerenciadas
Se você não gerenciar as exceções do serviço Lambda, como o tempo limite da função do Lambda, receberá um erro Lambda.Unknown. Para evitar o tempo limite de uma função do Lambda, torne o código da função do Lambda idempotente.
Para obter mais informações, consulte Padrões de tratamento de erros no API Gateway e no Lambda.
Problemas de tempo limite do endpoint de integração com o Lambda
O limite de cota padrão de tempo limite de integração do API Gateway é de 29 segundos para todos os tipos de integração. Se sua função do Lambda levar mais de 29 segundos para retornar a resposta, a solicitação falhará com um erro de tempo limite da solicitação 504 do endpoint.
Certifique-se de que sua função do Lambda retorne a resposta em 29 segundos. Se sua função do Lambda não conseguir retornar a resposta em 29 segundos, envie um aumento de cota para o limite de tempo limite de integração.
Observação: é possível aumentar o tempo limite de integração para mais de 29 segundos para APIs regionais e APIs privadas. No entanto, esse aumento pode exigir uma limitação na cota de aceleração a nível regional na sua conta da AWS.
Formato JSON de saída da função do Lambda incorreto
Se a saída da sua função do Lambda integrada não estiver em conformidade com o formato JSON especificado para as APIs REST, você receberá um erro de malformed proxy. Certifique-se de usar o formato JSON correto para a saída das funções do Lambda para integrações de proxy e dos autorizadores do Lambda.
Exemplo de função do Lambda para integração de proxy:
{
"isBase64Encoded": true|false,
"statusCode": httpStatusCode,
"headers": { "headerName": "headerValue", ... },
"multiValueHeaders": { "headerName": ["headerValue", "headerValue2", ...], ... },
"body": "..."
}
Informações relacionadas
Como posso solucionar erros de invocação HTTP do Gateway de API?