

Aviso de fim do suporte: em 7 de outubro de 2026, AWS o suporte para o. AWS IoT Greengrass Version 1 Depois de 7 de outubro de 2026, você não poderá mais acessar os AWS IoT Greengrass V1 recursos. Para obter mais informações, visite [Migrar de AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Testar funções de longa duração do Lambda
<a name="long-testing"></a>

Uma função Lambda de *[longa duração](lambda-functions.md#lambda-lifecycle)* é iniciada automaticamente quando AWS IoT Greengrass o núcleo é iniciado e executado em um único contêiner (ou sandbox). Todas as variáveis e lógica de pré-processamento definidas fora do manipulador de funções são mantidas para cada invocação do manipulador de funções. As várias invocações do manipulador de funções são colocadas em fila até que a execução das invocações anteriores tenha sido executada.

 O código `greengrassHelloWorldCounter.py` usado neste módulo define uma variável `my_counter` fora do manipulador de funções.

**nota**  
Você pode ver o código no AWS Lambda console ou no [SDK AWS IoT Greengrass principal para GitHub Python](https://github.com/aws/aws-greengrass-core-sdk-python/blob/master/examples/HelloWorldCounter/greengrassHelloWorldCounter.py) em.

Nesta etapa, você cria assinaturas que permitem a função Lambda e AWS IoT a troca de mensagens MQTT. Em seguida, você implanta o grupo e testa a função.

1. Na página de configuração do grupo, selecione **Inscrições** e, então, selecione **Adicionar**.

1. Em **Tipo de fonte**, escolha **Função Lambda** e, em seguida, escolha **HelloWorldGreengrass\$1** \$1Counter.

1. Em **Tipo de destino**, selecione **Serviço**, selecione **IoT Cloud**.

1. Para **Topic filter**, insira **hello/world/counter**.

1. Selecione **Create subscription**.

   Essa assinatura única vai em apenas uma direção: da função `Greengrass_HelloWorld_Counter` Lambda para. AWS IoT Para invocar (ou trigger) essa função do Lambda na nuvem, é necessário criar uma assinatura na direção oposta.

1. Siga as etapas de 1 a 5 para adicionar outra assinatura que use o valores a seguir. Essa assinatura permite que a função do Lambda receba mensagens da AWS IoT. Você usa essa assinatura ao enviar uma mensagem do AWS IoT console que invoca a função.
   + Para a origem, selecione **Serviço** e, em seguida, selecione **IoT Cloud**.
   + Para o destino, escolha a **função Lambda** e, em seguida, escolha **HelloWorldGreengrass\$1** \$1Counter.
   + Para o filtro de tópico, insira **hello/world/counter/trigger**.

   A extensão `/trigger` é usada neste filtro de tópicos porque você criou duas assinaturas e não deseja que uma interfira na outra.

1. Verifique se o daemon do Greengrass está em execução, como descrito em [Implantar configurações de nuvem em um dispositivo de núcleo](configs-core.md).

1. <a name="console-actions-deploy"></a>Na página de configuração do grupo, selecione **Implantar**.

1. <a name="console-test-after-deploy"></a>Após a conclusão da implantação, retorne à página inicial do AWS IoT console e escolha **Testar**.

1. Configure os campos a seguir.
   + Em **Subscription topic (Tópico de assinatura)**, insira **hello/world/counter**.
   + Para **Quality of Service (Qualidade de Serviço)**, selecione **0**.
   + Em **MQTT payload display (Exibição de carga MQTT)**, selecione **Display payloads as strings (Exibir cargas como strings)**.

1. Selecione **Subscribe**.

   Ao contrário da [Parte 1](module3-I.md) deste módulo, você deverá ver nenhuma mensagem depois de assinar `hello/world/counter`. Isso ocorre porque o código `greengrassHelloWorldCounter.py` que publica para o tópico `hello/world/counter` está dentro do manipulador de funções, que é executado somente quando a função é invocada.

   Neste módulo, você configurou a função `Greengrass_HelloWorld_Counter` do Lambda para ser invocada quando ela recebe uma mensagem MQTT no tópico `hello/world/counter/trigger`.

   A assinatura **Greengrass\$1 HelloWorld \$1Counter** to **IoT** Cloud permite que a função envie mensagens sobre o tópico. AWS IoT `hello/world/counter` A assinatura **IoT Cloud** to **Greengrass\$1 HelloWorld \$1Counter** permite enviar mensagens AWS IoT para a função sobre o tópico. `hello/world/counter/trigger`

1. Para testar o ciclo de vida de longa duração, invoque a função do Lambda publicando uma mensagem no tópico `hello/world/counter/trigger`. Você pode usar a mensagem padrão.  
![\[Mensagem padrão de Olá do AWS IoT console enviada hello/world/counter/trigger com o botão Publicar no tópico destacado.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/gg-get-started-057.png)
**nota**  
 A função `Greengrass_HelloWorld_Counter` ignora o conteúdo das mensagens recebidas. Ela só executa o código no `function_handler`, que envia uma mensagem ao tópico `hello/world/counter`. Você pode revisar esse código no [SDK AWS IoT Greengrass principal para GitHub Python](https://github.com/aws/aws-greengrass-core-sdk-python/blob/master/examples/HelloWorldCounter/greengrassHelloWorldCounter.py) em.

Sempre que uma mensagem é publicada no tópico `hello/world/counter/trigger`, a variável `my_counter` é incrementada. Essa contagem de invocação é mostrada nas mensagens enviadas da função do Lambda. Como o manipulador de funções inclui um ciclo de sono de 20 segundos (`time.sleep(20)`), acionar repetidamente o manipulador enfileira as respostas do núcleo. AWS IoT Greengrass 

![\[Captura de tela mostrando o incremento de Invocation Count (Contagem de invocação) de 1, 2 e 3.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/gg-get-started-058.png)
