

• El panel de AWS Systems Manager CloudWatch dejará de estar disponible después del 30 de abril de 2026. Los clientes pueden seguir utilizando la consola de Amazon CloudWatch para ver, crear y administrar sus paneles de Amazon CloudWatch, tal y como lo hacen actualmente. Para obtener más información, consulte la [documentación del panel de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Trabajo con jerarquías de parámetros en Parameter Store
<a name="sysman-paramstore-hierarchies"></a>

Administrar docenas o centenares de parámetros como una lista sin formato requiere mucho tiempo y es una labor propensa a errores. También puede ser difícil identificar el parámetro correcto para una tarea. Esto significa que puede utilizar accidentalmente el parámetro equivocado o puede crear varios parámetros que utilizan los mismos datos de configuración. 

Puede utilizar las jerarquías de parámetros como ayuda para organizar y administrar los parámetros. Una jerarquía es un nombre de parámetro que incluye una ruta definida mediante barras inclinadas (/).

**Topics**
+ [Conozca la jerarquía de los parámetros a través de ejemplos](#ps-hierarchy-examples)
+ [Realización de consultas de parámetros en una jerarquía](#ps-hierarchy-queries)
+ [Utilizar la AWS CLI para administrar las jerarquías de los parámetros](#sysman-paramstore-walk-hierarchy)

## Conozca la jerarquía de los parámetros a través de ejemplos
<a name="ps-hierarchy-examples"></a>

El ejemplo siguiente utiliza tres niveles de jerarquía en el nombre para identificar lo siguiente:

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

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

Puede crear una jerarquía con un máximo de 15 niveles. Le recomendamos crear jerarquías que reflejen una estructura jerárquica existente en su entorno, tal y como se muestra en los siguientes ejemplos:
+ El entorno de [integración continua (CI)](https://aws.amazon.com/devops/continuous-integration/) y [entrega continua (CD)](https://aws.amazon.com/devops/continuous-delivery/) (flujos de trabajo de CI/CD)

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

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

  `/Prod/DBServer/MySQL/db-string`
+ Las aplicaciones que utilizan contenedores

  ```
  /MyApp/.NET/Libraries/my-password
  ```
+ La organización empresarial

  `/Finance/Accountants/UserList`

  `/Finance/Analysts/UserList`

  `/HR/Employees/EU/UserList`

Las jerarquías de parámetros normalizan la forma de crear parámetros y hacen que sea más sencillo administrar los parámetros a lo largo del tiempo. Una jerarquía de parámetros también puede ayudarle a identificar el parámetro correcto para una tarea de configuración. Esto le ayuda a evitar la creación de varios parámetros con los mismos datos de configuración. 

Puede crear una jerarquía que le permita compartir parámetros en diferentes entornos, tal y como se muestra en los siguientes ejemplos, que utilizan contraseñas en el entorno de desarrollo y pruebas.

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

A continuación, puede crear una contraseña única para el entorno de producción, tal y como se muestra en el ejemplo siguiente:

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

No es necesario especificar una jerarquía de parámetros. Puede crear parámetros en el nivel uno. Estos se denominan parámetros *raíz*. En lo que se refiere a la compatibilidad con versiones anteriores, todos los parámetros creados en Parameter Store antes de publicarse las jerarquías son parámetros raíz. El sistema trata los dos parámetros siguientes como parámetros raíz.

`/parameter-name`

`parameter-name`

## Realización de consultas de parámetros en una jerarquía
<a name="ps-hierarchy-queries"></a>

Otro beneficio del uso de jerarquías es la capacidad de consultar todos los parámetros *de* un nivel determinado de una jerarquía con la operación [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) de la API. Por ejemplo, si ejecuta el siguiente comando en la AWS Command Line Interface (AWS CLI), el sistema devuelve todos los parámetros del nivel `Oncall`:

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

Código de salida de ejemplo:

```
{
    "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 ver los parámetros `SecureString` descifrados en una jerarquía, debe especificar la ruta y el parámetro `--with-decryption`, tal y como se muestra en el siguiente ejemplo.

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

## Utilizar la AWS CLI para administrar las jerarquías de los parámetros
<a name="sysman-paramstore-walk-hierarchy"></a>

Este procedimiento le muestra cómo trabajar con parámetros y jerarquías de parámetros con la AWS CLI.

**Para administrar parámetros mediante jerarquías**

1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

   Para obtener más información, consulte [Instalación o actualización de la última versión de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Ejecute el siguiente comando para crear un parámetro que use el parámetro `allowedPattern` y el tipo de parámetro `String`. El patrón permitido en este ejemplo significa que el valor del parámetro debe tener entre 1 y 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
   ```

------

   El comando devuelve el número de la versión del parámetro.

1. Ejecute el siguiente comando para *intentar* sobrescribir el parámetro que acaba de crear con un nuevo 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
   ```

------

   El sistema devuelve el siguiente error porque el valor nuevo no cumple los requisitos del patrón permitido que especificó en el paso anterior.

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

1. Ejecute uno de los siguientes comandos para crear un parámetro `SecureString` que utilice una Clave administrada de AWS. El patrón permitido en este ejemplo significa que el usuario puede especificar cualquier carácter y que el valor debe tener entre 8 y 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. Ejecute los siguientes comandos para crear más parámetros que utilicen la estructura jerárquica del paso 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. Ejecute el siguiente comando para obtener el valor de dos 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. Ejecute el siguiente comando para consultar todos los parámetros de un mismo nivel. 

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

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

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

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

------

1. Ejecute el siguiente comando para eliminar dos 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"
   ```

------