Desejo integrar um endpoint da Amazon API Gateway com o AWS Lambda, mas estou enfrentando problemas.
Breve descrição
Os motivos a seguir podem causar problemas para seu endpoint da API Gateway que se integra ao Lambda:
- O API Gateway não tem permissões de função do Lambda.
- Ocorre o controle de utilização.
- Mapeamento do código de status HTTP incorreto ou ausente.
- As exceções do serviço Lambda não são gerenciadas.
Resolução
Observação: a resolução a seguir usa o REST API Gateway para solucionar problemas.
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 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 “Permissões inválidas na função do Lambda” 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, tente 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.
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 de funções do Lambda com erros de “Taxa excedida” e 429 “TooManyRequestsException”?
Solicite um aumento de cota para a simultaneidade da função do Lambda para que a função não seja limitada.
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:
“Falha na execução devido a um erro de configuração: O mapeamento de saída se refere a uma resposta de método inválida: 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 Amazon API Gateway e no AWS Lambda.
Informações relacionadas
Como soluciono erros 5xx da API REST da API Gateway?