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

4 minuto de leitura
0

Configurei uma função do AWS Lambda para invocar de forma assí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- Como faço para corrigir invocações duplicadas de funções do Lambda?

Resolução

Quando você invoca de forma assí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.
  • A função Lambda é invocada de forma síncrona.
  • As tentativas de repetição foram definidas como 0 na configuração de invocação assíncrona para uma função Lambda.

Siga estas etapas para solucionar problemas de invocação assí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 assíncrona usando o seguinte comando:

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

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

4.    Analise os Amazon CloudWatch Logs da função Lambda para ver se as invocações duplicadas:

  • Têm o mesmo ID de solicitação ou não.
  • Retornaram erros ou expiraram.

Para obter mais informações, consulte Como faço para evitar invocações duplicadas de funções do Lambda?

5.    Se as invocações duplicadas tiverem o mesmo ID de solicitação e retornarem erros ou expirarem, configure o tratamento de erros para invocações assíncronas. Usando essa configuração, você pode controlar o número de novas tentativas que o serviço Lambda pode realizar em caso de falha.

Para obter mais informações, consulte Tratar erros e novas tentativas automáticas no AWS Lambda.

Observação: invocações duplicadas com o mesmo ID de solicitação que retornam erros ou expiram indicam que o Lambda tentou a função novamente.

6.    Se as invocações duplicadas não tiverem retornado erros nem expirado, faça o seguinte:

  • Certifique-se de que o código da função Lambda seja idempotente e possa lidar com as mesmas mensagens várias vezes.
  • Certifique-se de que a função Lambda tenha um limite de simultaneidade definido alto o suficiente para lidar com o número de solicitações de invocações recebidas.
  • Identifique e solucione erros retornados pela função Lambda.

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

Observação: se as invocações duplicadas forem do lado do cliente, os IDs de solicitação serão diferentes.

7.    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 nome do recurso da Amazon (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 logs 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 logs do CloudWatch do cliente por motivos de segurança e privacidade.


Informações relacionadas

Como comparar os modos de invocação do Lambda

Como invocar funções do Lambda

Apresentação dos destinos do AWS Lambda

AWS OFICIAL
AWS OFICIALAtualizada há um ano