

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

# Solución de problemas de gestión de parámetros
<a name="parameter-troubleshooting"></a>

## Problemas comunes de gestión de parámetros
<a name="common-parameter-issues"></a>

**Las variables de entorno no están disponibles durante la ejecución**  
**Problema:** los comandos fallan porque no se encuentran las variables de entorno (`SSM_parameter-name`).  
**Causas posibles:**  
+ La versión de SSM Agent no admite la interpolación de variables de entorno
+ `interpolationType` no está configurado como `ENV_VAR`
+ El nombre del parámetro no coincide con el nombre de la variable de entorno esperada
**Solución:**  
+ Compruebe que la versión de SSM Agent sea 3.3.2746.0 o posterior
+ Agregue una lógica alternativa para las versiones anteriores del agente:

  ```
  if [ -z "${SSM_parameterName+x}" ]; then
      export SSM_parameterName="{{parameterName}}"
  fi
  ```

**Valores de parámetro que contienen caracteres especiales**  
**Problema:** los comandos fallan cuando los valores de los parámetros contienen espacios, comillas u otros caracteres especiales.  
**Solución:**  
+ Utilice las comillas adecuadas al hacer referencia a las variables de entorno:

  ```
  # Correct
  echo "$SSM_parameter-name"
  
  # Incorrect
  echo $SSM_parameter-name
  ```
+ Agregue la validación de entrada mediante `allowedPattern` para restringir los caracteres especiales

**Comportamiento incoherente en todas las plataformas**  
**Problema:** la gestión de parámetros funciona de manera diferente en Linux y en los sistemas Windows Server.  
**Solución:**  
+ Utilice la sintaxis de variables de entorno específica de la plataforma:

  ```
  # PowerShell
  $env:SSM_parameter-name
  
  # Bash
  $SSM_parameter-name
  ```
+ Utilice en su documento comprobaciones de condiciones previas específicas de la plataforma

**Los valores de los parámetros no se han filtrado correctamente**  
**Problema:** hay vulnerabilidades en la inyección de comandos a pesar de utilizar la interpolación de variables de entorno.  
**Solución:**  
+ Utilice siempre el método de escape adecuado al incluir valores de parámetros en los comandos:

  ```
  # Correct
  mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\""
  
  # Incorrect
  mysql_command="mysql -u $SSM_username -p$SSM_password"
  ```

## Consejos de validación de parámetros
<a name="parameter-validation"></a>

Utilice estas técnicas para validar su gestión de parámetros:

1. Pruebe la disponibilidad de las variables del entorno:

   ```
   #!/bin/bash
   # Print all SSM_ environment variables
   env | grep ^SSM_
   
   # Test specific parameter
   if [ -n "$SSM_parameter" ]; then
       echo "Parameter is available"
   else
       echo "Parameter is not available"
   fi
   ```

1. Verifique los patrones de los parámetros:

   ```
   parameters:
     myParameter:
       type: String
       allowedPattern: "^[a-zA-Z0-9_-]+$"
       description: "Test this pattern with sample inputs"
   ```

1. Incluya la gestión de errores:

   ```
   if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then
       echo "Parameter validation failed"
       exit 1
   fi
   ```