O Lambda Scheduling fica preso

1

Eu tenho um

  • Fila SQS com um tamanho de lote de 1
  • Função Lambda com uma simultaneidade reservada de um
  • O Lambda é configurado para escutar na fila e fazer algum trabalho quando as mensagens chegam. Esse trabalho normalmente leva cerca de 8 a 12 segundos, nunca mais de 15.
  • Ênfase em "ouvir", então não estou pesquisando com um Lambda, mas em vez disso o Lambda é acionado automaticamente pela fila do SQS.

Eu insiro 10 mensagens na fila e espero que o lambda passe por elas uma a uma em tempo razoável (linear), dado que a simultaneidade reservada é exatamente 1 em torno de 150 segundos no total.

O que acontece é que as primeiras mensagens são processadas em tempo razoável e, em seguida, alguma lentidão extrema entra em ação (15 minutos sem progresso visível). A fila do SQS afirma que todas as 10 mensagens estão "em vôo", basicamente colocando a culpa no Lambda ou no código em execução dentro dele.

Alguém experimentou um comportamento como este e, se sim, eles já descobriram o porquê?

Editar O mesmo problema se apresenta também em testes diferentes. Por exemplo, quando a simultaneidade reservada era 70, e então 700 mensagens eram bombeadas para a fila (todas de uma vez, por exemplo, na velocidade da máquina) e a 698ª mensagem levava cerca de 10-15 minutos para obter um Lambda para processá-la. Eu verifiquei através do log que a execução do código dentro do Lambda não leva não 10-15 minutos (apenas os usuais 8-12 segundos) então tudo parece estar apontando para funções Lambda não sendo alocadas como elas deveria, mas eu não tenho como provar / refutar isso no momento.

Editar 2

    
por Peter Metz 30.10.2018 / 22:27

1 resposta

1

O seu Lambda é acionado pelo SQS ou o Lambda está em execução o tempo todo e o pesquisa o SQS ?

  • Triggering geralmente é melhor - seu Lambda será chamado assim que algo chegar à fila com o event sendo a mensagem. Uma chamada Lambda por mensagem.

  • Se você usar Polling , deve certificar-se de que o Lambda seja reprogramado quando sair. Como você faz isso? São 15 minutos de inatividade relacionados ao agendamento?

por 30.10.2018 / 22:35