

• O AWS Systems Manager CloudWatch Dashboard não estará mais disponível a partir de 30 de abril de 2026. Os clientes podem continuar usando o console do Amazon CloudWatch para visualizar, criar e gerenciar os painéis do Amazon CloudWatch exatamente como fazem hoje. Para obter mais informações, consulte a [documentação do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Tutorial: Atualizar dependências de aplicações, corrigir um nó gerenciado e executar uma verificação de integridade específica da aplicação usando o console
<a name="aws-runpatchbaselinewithhooks-tutorial"></a>

Em muitos casos, um nó gerenciado deve ser reinicializado depois de ter sido corrigido com a atualização de software mais recente. No entanto, a reinicialização de um nó gerenciado em produção sem proteções implementadas pode causar vários problemas, como invocação de alarmes, registro incorreto de dados de métrica e interrupção de sincronizações de dados.

Esse tutorial demonstra como evitar problemas como esses usando o documento do AWS Systems Manager (documento do SSM) `AWS-RunPatchBaselineWithHooks` para obter uma operação de aplicação de patches complexa e de várias etapas que realize o seguinte:

1. Impedir novas conexões com a aplicação

1. Instale as atualizações para o sistema operacional.

1. Atualizar as dependências do pacote da aplicação

1. Reinicie o daemon ().

1. Executar uma verificação de integridade específica da aplicação

Para este exemplo, configuramos nossa infraestrutura desta forma:
+ As máquinas virtuais de destino são registradas como nós gerenciados com o Systems Manager.
+ `Iptables` é usado como um firewall local.
+ A aplicação hospedada em seus nós gerenciados está sendo executada na porta 443.
+ A aplicação hospedada em seus nós gerenciados é uma aplicação `nodeJS`.
+ A aplicação hospedada em seus nós gerenciados pelo gerenciador de processos pm2.
+ A aplicação já possui um endpoint de verificação de integridade especificado.
+ O endpoint da verificação de integridade da aplicação não requer autenticação do usuário final. O endpoint permite uma verificação de integridade que atenda aos requisitos da organização para estabelecer a disponibilidade. (Em seus ambientes, pode ser suficiente simplesmente verificar se a aplicação `nodeJS` está em execução e é capaz de receber solicitações. Em outros casos, também é possível verificar se uma conexão com a camada de armazenamento em cache ou com a camada de banco de dados já foi estabelecida.)

Os exemplos deste tutorial são apenas para fins de demonstração e não devem ser implementados inalterados em ambientes de produção. Além disso, tenha em mente que o recurso de ganchos de ciclo de vida do Patch Manager, uma ferramenta do Systems Manager, com o documento `AWS-RunPatchBaselineWithHooks` pode oferecer suporte a vários outros cenários. Aqui estão alguns exemplos:
+ Interrompa um agente de relatório de métricas antes de aplicar patches e reiniciá-lo após a reinicialização do nó gerenciado.
+ Desconecte o nó gerenciado de um cluster CRM ou PCS antes de aplicar patches e reconecte após a reinicialização do nó.
+ Atualize software de terceiros (por exemplo, aplicações Java, Tomcat, Adobe e outras) em máquinas do Windows Server depois que as atualizações do sistema operacional (SO) forem aplicadas, mas antes da reinicialização do nó gerenciado.

**Para atualizar dependências de aplicações, corrigir um nó gerenciado e executar uma verificação de integridade específica da aplicação**

1. Crie um documento do SSM para o script de pré-instalação com o conteúdo a seguir e nomeie-o como `NodeJSAppPrePatch`. Substituir *your\$1application* pelo nome da sua aplicação.

   Este script bloqueia imediatamente novas solicitações de entrada e fornece cinco segundos para que as já ativas sejam concluídas antes de iniciar a operação de patch. Para a opção `sleep`, especifique um número de segundos maior do que normalmente leva para que as solicitações recebidas sejam concluídas.

   ```
   # exit on error
   set -e
   # set up rule to block incoming traffic
   iptables -I INPUT -j DROP -p tcp --syn --destination-port 443 || exit 1
   # wait for current connections to end. Set timeout appropriate to your application's latency
   sleep 5 
   # Stop your application
   pm2 stop your_application
   ```

   Para obter informações sobre como criar um documento do SSM, consulte [Criar conteúdo de documento do SSM](documents-creating-content.md).

1. Crie outro documento SSM com o conteúdo a seguir para o script após a instalação, para atualizar as dependências da aplicação e dê a ele o nome `NodeJSAppPostPatch`. Substituir */your/application/path* pelo caminho para a sua aplicação.

   ```
   cd /your/application/path
   npm update 
   # you can use npm-check-updates if you want to upgrade major versions
   ```

1. Crie outro documento SSM com o seguinte conteúdo para o scipt do `onExit` para fazer backup da aplicação e executar uma verificação de integridade. Nomeie este documento do SSM `NodeJSAppOnExitPatch`. Substituir *your\$1application* pelo nome da sua aplicação.

   ```
   # exit on error
   set -e
   # restart nodeJs application
   pm2 start your_application
   # sleep while your application starts and to allow for a crash
   sleep 10
   # check with pm2 to see if your application is running
   pm2 pid your_application
   # re-enable incoming connections
   iptables -D INPUT -j DROP -p tcp --syn --destination-port 
   # perform health check
   /usr/bin/curl -m 10 -vk -A "" http://localhost:443/health-check || exit 1
   ```

1. Criar uma associação no State Manager, uma ferramenta do AWS Systems Manager para emitir a operação executando as seguintes etapas:

   1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

   1. No painel de navegação, escolha **State Manager** e selecione **Create association**.

   1. Para **Name** (Nome), forneça um nome para ajudar a identificar a finalidade da associação.

   1. Na lista **Document (Documento)**, escolha `AWS-RunPatchBaselineWithHooks`.

   1. Em **Action** (Ação), selecione **Install** (Instalar).

   1. (Opcional) Em **Snapshot Id** (ID do snapshot), forneça um GUID que você gera para ajudar a acelerar a operação e garantir a consistência. O valor GUID pode ser tão simples quanto `00000000-0000-0000-0000-111122223333`.

   1. Para **Pre Install Hook Doc Name** (Nome do Doc do Hook antes da instalação), insira `NodeJSAppPrePatch`. 

   1. Para **Post Install Hook Doc Name** (Nome do Doc do Hook após instalação), insira `NodeJSAppPostPatch`. 

   1. Para **On ExitHook Doc Name** (No nome do documento ExitHook), insira `NodeJSAppOnExitPatch`. 

1. Para **Targets** (Destinos), identifique os nós gerenciados especificando etiquetas, escolhendo os nós manualmente, escolhendo um grupo de recursos ou escolhendo todos os nós gerenciados.

1. Para **Specify schedule** (Especificar programação), especifique a frequência com que a associação deve ser executada. Por exemplo, a aplicação de patches em nós gerenciados uma vez por semana é uma cadência comum.

1. Na seção **Rate control** (Controle de taxa), escolha opções para controlar como a associação é executada em vários nós gerenciados. Verifique se apenas uma parte dos nós gerenciados é atualizada de cada vez. Caso contrário, toda ou a maior parte da sua frota poderá ficar offline de uma só vez. Para obter mais informações sobre como usar controles de taxa, consulte [Sobre destinos e controles de taxa em associações do State Manager](systems-manager-state-manager-targets-and-rate-controls.md).

1. (Opcional) Em **Opções de saída**, para salvar a saída de comando em um arquivo, selecione a caixa **Habilitar a gravação da saída no S3**. Digite os nomes de bucket e prefixo (pastas) nas caixas de texto.
**nota**  
As permissões do S3 que concedem a possibilidade de gravar os dados em um bucket do S3 são as do perfil da instância atribuído ao nó gerenciado, e não as do usuário do IAM que realiza essa tarefa. Para obter mais informações, consulte [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md) ou [Criar um perfil de serviço do IAM para um ambiente híbrido](hybrid-multicloud-service-role.md). Além disso, se o bucket do S3 especificado estiver em uma conta da Conta da AWS diferente, verifique se o perfil da instância ou a função de serviço IAM associada ao nó gerenciado tenha as permissões necessárias para gravar nesse bucket.

1. Escolha **Create Association (Criar associação)**.