Como soluciono problemas de invocação síncrona do Lambda?

Data da última atualização: 14/10/2022

Configurei uma função do AWS Lambda para invocar de forma síncrona, mas o destino não está iniciando. Como faço para corrigir esse problema?

Quando invoco uma função do Lambda por meio do console do Lambda, ela é invocada de forma síncrona ou assíncrona?

-ou-

Por que minha função Lambda não está tentando novamente depois de configurá-la para repetir uma ou duas vezes?

Resolução

Quando você invoca de forma síncrona uma função do Lambda e ela falha, as possíveis causas são:

  • O Lambda não tem permissão para realizar as ações incluídas no código.
  • O serviço da AWS que invoca a função Lambda não tem permissões suficientes.
  • O Lambda é invocado de forma assíncrona.
  • O Lambda oferece suporte a destinos somente para invocações assíncronas e invocações de fluxo, e não para invocações síncronas.

Siga estas etapas para solucionar problemas de invocação síncrona:

1.    Determine como a função Lambda é invocada. A função é invocada usando a AWS CLI? A função é invocada por meio de um serviço da AWS?

2.    Verifique se o serviço da AWS invoca a função Lambda de forma síncrona ou assíncrona.

3.    Invoque a função Lambda de forma síncrona usando o seguinte comando:

aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json

Veja se um código de status 200 foi informado ou se o comando retorna um erro.

4.    Lembre-se de que o comportamento de repetição da função Lambda é controlado pelo cliente em invocações síncronas. A configuração de Retry attempts (Tentativas de repetição) no console do AWS Lambda é limitada a invocações assíncronas. Certifique-se de que o cliente repita as solicitações em vez de verificar os logs do Lambda.

5.    Lembre-se de que uma função do Lambda invocada no console do Lambda é sempre uma invocação síncrona.

6.    O comportamento de repetição de invocação síncrona varia entre os serviços da AWS, com base no mapeamento da fonte de eventos de cada serviço.

Para obter mais informações, consulte Invocação orientada por eventos.

7.    Certifique-se de que o código da função Lambda seja idempotente e possa lidar com as mesmas mensagens várias vezes.

8.    Identifique e solucione erros retornados pela função Lambda.

Para obter mais informações, consulte Como soluciono falhas de funções do Lambda?

9.    Se você ainda não conseguir resolver o problema, abra um caso com o AWS Support. Forneça as seguintes informações no caso:

  • A função Lambda ARN.
  • O fluxo de trabalho na configuração da função Lambda com todos os serviços incluídos.
  • Detalhes se o problema é intermitente ou contínuo.
  • Complete os registros do CloudWatch no formato .txt a partir do momento em que o problema ocorreu. Esses registros do CloudWatch são usados para identificar erros de função do Lambda que incluem problemas de tempo limite, durações de inicialização e problemas de permissões.
  • A data exata do problema com o fuso horário ou a data e hora em UTC.

Observação: os representantes do AWS Support não têm acesso aos registros do CloudWatch do cliente por motivos de segurança e privacidade.