

• 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). 

# Demonstração: Usar a AWS CLI com o Run Command
<a name="walkthrough-cli"></a>

A demonstração de exemplo a seguir mostra como usar a AWS Command Line Interface (AWS CLI) para ver informações sobre comandos e parâmetros de comando, como executar comandos e como visualizar o status desses comandos. 

**Importante**  
Apenas administradores confiáveis devem ter permissão para usar os documentos pré-configurados do AWS Systems Manager mostrados neste tópico. Os comandos ou scripts especificados em documentos do Systems Manager são executados com permissões administrativas em seus nós. Se um usuário tiver permissão para executar qualquer um dos documentos do Systems Manager predefinidos (qualquer documento que comece com `AWS-`), ele também terá acesso de administrador ao nó. Para todos os outros usuários, você deve criar documentos restritivos e compartilhá-los com usuários específicos.

**Topics**
+ [Etapa 1: Conceitos básicos](#walkthrough-cli-settings)
+ [Etapa 2: Executar scripts de shell para exibir detalhes de recursos](#walkthrough-cli-run-scripts)
+ [Etapa 3: Enviar comandos simples usando o documento `AWS-RunShellScript`](#walkthrough-cli-example-1)
+ [Etapa 4: Executar um script Python simples usando o Run Command](#walkthrough-cli-example-2)
+ [Etapa 5: Rodar um script Bash usando Run Command](#walkthrough-cli-example-3)

## Etapa 1: Conceitos básicos
<a name="walkthrough-cli-settings"></a>

Você deve ter permissões de administrador sobre o nó gerenciado que deseja configurar ou deve ter recebido a permissão apropriada no AWS Identity and Access Management (IAM). Veja também que o exemplo usa região Leste dos EUA (Ohio) (us-east-2). O Run Command está disponível nas Regiões da AWS listadas em [Systems Manager service endpoints](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) no *Referência geral da Amazon Web Services*. Para obter mais informações, consulte [Configurar nós gerenciados para o AWS Systems Manager](systems-manager-setting-up-nodes.md).

**Para executar comandos usando a AWS CLI**

1. Instale e configure a AWS Command Line Interface (AWS CLI), caso ainda não o tenha feito.

   Para obter informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Liste todos os documentos disponíveis.

   Esse comando lista todos os documentos disponíveis para sua conta com base em permissões do IAM. 

   ```
   aws ssm list-documents
   ```

1. Verifique se um nó está pronto para receber comandos.

   A saída do comando a seguir mostra se os nós gerenciados estão online.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-instance-information \
       --output text --query "InstanceInformationList[*]"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-instance-information ^
       --output text --query "InstanceInformationList[*]"
   ```

------

1. Execute o comando a seguir para ver detalhes sobre um nó gerenciado específico.
**nota**  
Para executar os comandos nessa demonstração, substitua os IDs de instância e comando. Para os dispositivos gerenciados principais do AWS IoT Greengrass, use o mi-*ID\$1number* para o ID da instância. O ID do comando é retornado como uma resposta ao **send-command**. Os IDs de instância estão disponíveis no Fleet Manager, uma ferramenta do AWS Systems Manager.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-instance-information \
       --instance-information-filter-list key=InstanceIds,valueSet=instance-ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-instance-information ^
       --instance-information-filter-list key=InstanceIds,valueSet=instance-ID
   ```

------

## Etapa 2: Executar scripts de shell para exibir detalhes de recursos
<a name="walkthrough-cli-run-scripts"></a>

Por meio do Run Command e do documento `AWS-RunShellScript`, você pode executar qualquer comando ou script em um nó gerenciado, como se estivesse conectado localmente.

**Veja a descrição e os parâmetros disponíveis**

Use o seguinte comando para visualizar uma descrição do documento JSON do Systems Manager.

------
#### [ Linux & macOS ]

```
aws ssm describe-document \
    --name "AWS-RunShellScript" \
    --query "[Document.Name,Document.Description]"
```

------
#### [ Windows ]

```
aws ssm describe-document ^
    --name "AWS-RunShellScript" ^
    --query "[Document.Name,Document.Description]"
```

------

Use o comando a seguir para visualizar os parâmetros e detalhes disponíveis sobre esses parâmetros.

------
#### [ Linux & macOS ]

```
aws ssm describe-document \
    --name "AWS-RunShellScript" \
    --query "Document.Parameters[*]"
```

------
#### [ Windows ]

```
aws ssm describe-document ^
    --name "AWS-RunShellScript" ^
    --query "Document.Parameters[*]"
```

------

## Etapa 3: Enviar comandos simples usando o documento `AWS-RunShellScript`
<a name="walkthrough-cli-example-1"></a>

Execute o comando a seguir para obter informações de IP para um nó do Linux.

Se você estiver segmentando um nó gerenciado do Windows Server, altere o `document-name` para `AWS-RunPowerShellScript` e altere o `command` de `ifconfig` para `ipconfig`.

------
#### [ Linux & macOS ]

```
aws ssm send-command \
    --instance-ids "instance-ID" \
    --document-name "AWS-RunShellScript" \
    --comment "IP config" \
    --parameters commands=ifconfig \
    --output text
```

------
#### [ Windows ]

```
aws ssm send-command ^
    --instance-ids "instance-ID" ^
    --document-name "AWS-RunShellScript" ^
    --comment "IP config" ^
    --parameters commands=ifconfig ^
    --output text
```

------

**Obter informações de comando com dados de resposta**  
O comando a seguir usa o ID de Comando que foi retornado do comando anterior para obter os detalhes e os dados de resposta da execução do comando. O sistema retorna os dados da resposta se o comando for concluído. Se a execução do comando mostrar `"Pending"` ou `"InProgress"`, execute esse comando novamente para ver os dados de resposta.

------
#### [ Linux & macOS ]

```
aws ssm list-command-invocations \
    --command-id $sh-command-id \
    --details
```

------
#### [ Windows ]

```
aws ssm list-command-invocations ^
    --command-id $sh-command-id ^
    --details
```

------

**Identificar usuário**

O comando a seguir exibe o usuário padrão que executa os comandos. 

------
#### [ Linux & macOS ]

```
sh_command_id=$(aws ssm send-command \
    --instance-ids "instance-ID" \
    --document-name "AWS-RunShellScript" \
    --comment "Demo run shell script on Linux managed node" \
    --parameters commands=whoami \
    --output text \
    --query "Command.CommandId")
```

------

**Obter status do comando**  
O comando a seguir usa o ID de Comando para obter o status da execução do comando em nós gerenciados. Este exemplo usa o ID de comando que foi retornado no comando anterior. 

------
#### [ Linux & macOS ]

```
aws ssm list-commands \
    --command-id "command-ID"
```

------
#### [ Windows ]

```
aws ssm list-commands ^
    --command-id "command-ID"
```

------

**Obter detalhes do comando**  
O comando a seguir usa o ID do comando anterior para obter o status da execução do comando por nó gerenciado.

------
#### [ Linux & macOS ]

```
aws ssm list-command-invocations \
    --command-id "command-ID" \
    --details
```

------
#### [ Windows ]

```
aws ssm list-command-invocations ^
    --command-id "command-ID" ^
    --details
```

------

**Obter informações de comando com dados de resposta para um nó gerenciado específico**  
O comando a seguir retorna a saída da solicitação `aws ssm send-command` original para um nó específico. 

------
#### [ Linux & macOS ]

```
aws ssm list-command-invocations \
    --instance-id instance-ID \
    --command-id "command-ID" \
    --details
```

------
#### [ Windows ]

```
aws ssm list-command-invocations ^
    --instance-id instance-ID ^
    --command-id "command-ID" ^
    --details
```

------

**Exibir versão do Python**

O comando a seguir retorna a versão do Python em execução em um nó.

------
#### [ Linux & macOS ]

```
sh_command_id=$(aws ssm send-command \
    --instance-ids "instance-ID" \
    --document-name "AWS-RunShellScript" \
    --comment "Demo run shell script on Linux Instances" \
    --parameters commands='python -V' \
    --output text --query "Command.CommandId") \
    sh -c 'aws ssm list-command-invocations \
    --command-id "$sh_command_id" \
    --details \
    --query "CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}"'
```

------

## Etapa 4: Executar um script Python simples usando o Run Command
<a name="walkthrough-cli-example-2"></a>

O comando a seguir executa um script simples Python “Hello World” usando o Run Command.

------
#### [ Linux & macOS ]

```
sh_command_id=$(aws ssm send-command \
    --instance-ids "instance-ID" \
    --document-name "AWS-RunShellScript" \
    --comment "Demo run shell script on Linux Instances" \
    --parameters '{"commands":["#!/usr/bin/python","print \"Hello World from python\""]}' \
    --output text \
    --query "Command.CommandId") \
    sh -c 'aws ssm list-command-invocations \
    --command-id "$sh_command_id" \
    --details \
    --query "CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}"'
```

------

## Etapa 5: Rodar um script Bash usando Run Command
<a name="walkthrough-cli-example-3"></a>

Os exemplos nesta seção demonstram como executar o seguinte script bash usando Run Command.

Para obter exemplos de uso do Run Command para executar scripts armazenados em locais remotos, consulte [Executar scripts no Amazon S3](integration-s3.md) e [Executar scripts do GitHub](integration-remote-scripts.md).

```
#!/bin/bash
yum -y update
yum install -y ruby
cd /home/ec2-user
curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install
chmod +x ./install
./install auto
```

Este script instala o agente do AWS CodeDeploy no Amazon Linux e no Red Hat Enterprise Linux (RHEL), como descrito em [Criar uma instância do Amazon EC2 para CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-ec2-create.html) no *Guia do usuário do AWS CodeDeploy*.

O script instala o agente CodeDeploy de um bucket do S3 gerenciado pela AWS na região Leste dos EUA (Ohio) (us-east-2), `aws-codedeploy-us-east-2`.

**Execute um script bash em umAWS CLIComando da**

O exemplo a seguir demonstra como incluir o script bash em um comando da CLI usando o comando`--parameters`opção.

------
#### [ Linux & macOS ]

```
aws ssm send-command \
    --document-name "AWS-RunShellScript" \
    --targets '[{"Key":"InstanceIds","Values":["instance-id"]}]' \
    --parameters '{"commands":["#!/bin/bash","yum -y update","yum install -y ruby","cd /home/ec2-user","curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install","chmod +x ./install","./install auto"]}'
```

------

**Executar um script bash em um arquivo JSON**

No exemplo a seguir, o conteúdo do script bash é armazenado em um arquivo JSON e o arquivo é incluído no comando usando o`--cli-input-json`opção.

------
#### [ Linux & macOS ]

```
aws ssm send-command \
    --document-name "AWS-RunShellScript" \
    --targets "Key=InstanceIds,Values=instance-id" \
    --cli-input-json file://installCodeDeployAgent.json
```

------
#### [ Windows ]

```
aws ssm send-command ^
    --document-name "AWS-RunShellScript" ^
    --targets "Key=InstanceIds,Values=instance-id" ^
    --cli-input-json file://installCodeDeployAgent.json
```

------

O conteúdo do arquivo `installCodeDeployAgent.json` mencionado é mostrado no exemplo a seguir.

```
{
    "Parameters": {
        "commands": [
            "#!/bin/bash",
            "yum -y update",
            "yum install -y ruby",
            "cd /home/ec2-user",
            "curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install",
            "chmod +x ./install",
            "./install auto"
        ]
    }
}
```