

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

# Trabalhar com hierarquias de parâmetros no Parameter Store
<a name="sysman-paramstore-hierarchies"></a>

Gerenciar dezenas ou centenas de parâmetros como uma lista simples é um processo demorado e propenso a erros. Também pode ser difícil identificar o parâmetro correto para uma tarefa. Isso significa que você pode usar acidentalmente o parâmetro errado ou pode criar vários parâmetros que usam os mesmos dados de configuração. 

Você pode usar hierarquias de parâmetros para ajudar você a organizar e gerenciar parâmetros. Uma hierarquia é um nome de parâmetro que inclui um caminho definido usando barras (/).

**Topics**
+ [Entender a hierarquia de parâmetros por meio de exemplos](#ps-hierarchy-examples)
+ [Consultar parâmetros em uma hierarquia](#ps-hierarchy-queries)
+ [Gerenciar parâmetros com hierarquias usando a AWS CLI](#sysman-paramstore-walk-hierarchy)

## Entender a hierarquia de parâmetros por meio de exemplos
<a name="ps-hierarchy-examples"></a>

O exemplo a seguir usa três níveis de hierarquia no nome para identificar o seguinte:

`/Environment/Type of computer/Application/Data`

`/Dev/DBServer/MySQL/db-string13`

É possível criar uma hierarquia com um máximo de 15 níveis. Sugerimos que você crie hierarquias que reflitam uma estrutura hierárquica existente no seu ambiente, conforme indicado nos exemplos a seguir:
+ Seu ambiente de [integração contínua](https://aws.amazon.com/devops/continuous-integration/) e [entrega contínua](https://aws.amazon.com/devops/continuous-delivery/) (fluxos de trabalho de CI/CD)

  `/Dev/DBServer/MySQL/db-string`

  `/Staging/DBServer/MySQL/db-string`

  `/Prod/DBServer/MySQL/db-string`
+ Seus aplicativos que utilizam contêineres

  ```
  /MyApp/.NET/Libraries/my-password
  ```
+ Sua organização empresarial

  `/Finance/Accountants/UserList`

  `/Finance/Analysts/UserList`

  `/HR/Employees/EU/UserList`

As hierarquias de parâmetros padronizam a maneira de criar parâmetros e facilitam o gerenciamento de parâmetros ao longo do tempo. Uma hierarquia de parâmetros também pode ajudar você a identificar o parâmetro correto para uma tarefa de configuração. Isso ajuda você a evitar a criação de vários parâmetros com os mesmos dados de configuração. 

Você pode criar uma hierarquia que permite compartilhar parâmetros em diferentes ambientes, como mostram os exemplos a seguir, que usam senhas em ambientes de desenvolvimento e teste.

`/DevTest/MyApp/database/my-password`

Você poderia então criar uma senha exclusiva para o seu ambiente de produção, conforme mostrado no exemplo a seguir:

`/prod/MyApp/database/my-password`

Não é necessário especificar uma hierarquia de parâmetros. Você pode criar parâmetros no nível um. Estes são chamados de parâmetros *raiz*. Por motivo de compatibilidade com versões anteriores, todos os parâmetros criados no Parameter Store antes do lançamento de hierarquias são parâmetros raiz. Os sistemas tratam ambos os parâmetros a seguir como parâmetros raiz.

`/parameter-name`

`parameter-name`

## Consultar parâmetros em uma hierarquia
<a name="ps-hierarchy-queries"></a>

Outro benefício de usar hierarquias é a capacidade de consultar todos os parâmetros *sob* um determinado nível em uma hierarquia usando a operação da API [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html). Por exemplo, se você executar o seguinte comando na AWS Command Line Interface (AWS CLI), o sistema retornará todos os parâmetros no nível do `Oncall`.

```
aws ssm get-parameters-by-path --path /Dev/Web/Oncall
```

Exemplo de resultado:

```
{
    "Parameters": [
        {
            "Name": "/Dev/Web/Oncall/Week1",
            "Type": "String",
            "Value": "John Doe",
            "Version": 1,
            "LastModifiedDate": "2024-11-22T07:18:53.510000-08:00",
            "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Dev/Web/Oncall/Week1",
            "DataType": "text"
        },
        {
            "Name": "/Dev/Web/Oncall/Week2",
            "Type": "String",
            "Value": "Mary Major",
            "Version": 1,
            "LastModifiedDate": "2024-11-22T07:21:25.325000-08:00",
            "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Dev/Web/Oncall/Week2",
            "DataType": "text"
        }
    ]
}
```

Para visualizar os parâmetros de `SecureString` descriptografados em uma hierarquia, você especifica o caminho e o parâmetro `--with-decryption`, como mostra o exemplo a seguir.

```
aws ssm get-parameters-by-path --path /Prod/ERP/SAP --with-decryption
```

## Gerenciar parâmetros com hierarquias usando a AWS CLI
<a name="sysman-paramstore-walk-hierarchy"></a>

Esta demonstração explica como trabalhar com parâmetros e hierarquias de parâmetros usando a AWS CLI.

**Para gerenciar parâmetros usando hierarquias**

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. Execute o seguinte comando para criar um parâmetro que usa o parâmetro `allowedPattern` e o tipo de parâmetro `String`. O padrão permitido neste exemplo significa que o valor para o parâmetro deve ter entre 1 e 4 dígitos.

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

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/MaxConnections" \
       --value 100 --allowed-pattern "\d{1,4}" \
       --type String
   ```

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

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/MaxConnections" ^
       --value 100 --allowed-pattern "\d{1,4}" ^
       --type String
   ```

------

   O comando retornará o número da versão do parâmetro.

1. Execute o seguinte comando para *tentar* substituir o parâmetro que você acabou de criar por um novo valor.

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

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/MaxConnections" \
       --value 10,000 \
       --type String \
       --overwrite
   ```

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

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/MaxConnections" ^
       --value 10,000 ^
       --type String ^
       --overwrite
   ```

------

   O sistema lança o seguinte erro porque o novo valor não atende aos requisitos do padrão permitido que você especificou na etapa anterior.

   ```
   An error occurred (ParameterPatternMismatchException) when calling the PutParameter operation: Parameter value, cannot be validated against allowedPattern: \d{1,4}
   ```

1. Execute o comando a seguir para criar um parâmetro `SecureString` que usa uma Chave gerenciada pela AWS. O padrão permitido neste exemplo significa que o usuário pode especificar qualquer caractere, e o valor deve estar entre 8 e 20 caracteres.

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

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/my-password" \
       --value "p#sW*rd33" \
       --allowed-pattern ".{8,20}" \
       --type SecureString
   ```

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

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/my-password" ^
       --value "p#sW*rd33" ^
       --allowed-pattern ".{8,20}" ^
       --type SecureString
   ```

------

1. Execute os seguintes comandos para criar mais parâmetros que usam a estrutura hierárquica da etapa anterior.

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

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/DBname" \
       --value "SQLDevDb" \
       --type String
   ```

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/user" \
       --value "SA" \
       --type String
   ```

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/userType" \
       --value "SQLuser" \
       --type String
   ```

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

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/DBname" ^
       --value "SQLDevDb" ^
       --type String
   ```

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/user" ^
       --value "SA" ^
       --type String
   ```

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/userType" ^
       --value "SQLuser" ^
       --type String
   ```

------

1. Execute o seguinte comando para obter o valor de dois parâmetros.

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

   ```
   aws ssm get-parameters \
       --names "/MyService/Test/user" "/MyService/Test/userType"
   ```

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

   ```
   aws ssm get-parameters ^
       --names "/MyService/Test/user" "/MyService/Test/userType"
   ```

------

1. Execute o comando a seguir para consultar todos os parâmetros sob um único nível. 

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

   ```
   aws ssm get-parameters-by-path \
       --path "/MyService/Test"
   ```

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

   ```
   aws ssm get-parameters-by-path ^
       --path "/MyService/Test"
   ```

------

1. Execute o seguinte comando para excluir dois parâmetros

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

   ```
   aws ssm delete-parameters \
       --names "/IADRegion/Dev/user" "/IADRegion/Dev/userType"
   ```

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

   ```
   aws ssm delete-parameters ^
       --names "/IADRegion/Dev/user" "/IADRegion/Dev/userType"
   ```

------