Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] A cache é compartilhada entre instâncias AWS Lambda?

Por exemplo, tenho um webhook publicado no AWS Lambda que recebe uma mensagem por um método post, verifica em qual etapa da conversa o usuário está e responde de acordo. Cada post que o webhook recebe é uma mensagem que precisa ser respondida. Para saber em qual etapa da conversa o usuário está, precisamos recuperar de memória. Como as conversas são dinâmicas, a ideia que vem é implementar um cache simples chave e valor (usuario, etapa).

Pelo que entendi, cada requisição POST que o webhook recebe é tratada como uma instância lambda. A cache pode ser recuperada em qualquer instância/requisição de usuário ou assim que a chamada de webhook completa seu ciclo de vida a cache vai embora com ele?

Pensei nisso porquê no curso essa ideia de estado é gerenciada pelo mongodb, imaginei que cache seria interessante em uma situação dinâmica dessas.

1 resposta
solução!

Olá Breno! Tudo bem com você?

A cache em uma função AWS Lambda não é compartilhada entre instâncias. Cada instância da função é isolada e independente uma da outra. Isso significa que a cache que você implementar em uma instância não estará disponível para outras instâncias.

No seu caso, se você precisa armazenar o estado da conversa do usuário, uma opção seria utilizar um banco de dados como o MongoDB, como você mencionou. Dessa forma, você poderia armazenar as informações da conversa em um documento no banco de dados e acessá-las de qualquer instância da função Lambda.

De forma geral, a cache não é compartilhada entre instâncias AWS Lambda, mas existem alternativas como o uso de um banco de dados ou um serviço de cache gerenciado para armazenar e acessar o estado da conversa do usuário.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.