

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

# Solução de problemas de tratamento de parâmetros
<a name="parameter-troubleshooting"></a>

## Problemas comuns de tratamento de parâmetros
<a name="common-parameter-issues"></a>

**Variáveis de ambiente não disponíveis durante a execução**  
**Problema:** os comandos falham porque as variáveis de ambiente (`SSM_parameter-name`) não foram encontradas.  
**Causas possíveis:**  
+ A versão do SSM Agent não é compatível com a interpolação de variáveis de ambiente
+ `interpolationType` não está definido como `ENV_VAR`
+ O nome do parâmetro não corresponde ao nome da variável de ambiente esperada
**Solução:**  
+ Verifique se a versão do SSM Agent é 3.3.2746.0 ou posterior
+ Adicione uma lógica de fallback para as versões mais antigas do agente:

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

**Valores de parâmetros com caracteres especiais**  
**Problema:** os comandos falham quando os valores dos parâmetros contêm espaços, aspas ou outros caracteres especiais.  
**Solução:**  
+ Use as aspas adequadas ao referenciar variáveis de ambiente:

  ```
  # Correct
  echo "$SSM_parameter-name"
  
  # Incorrect
  echo $SSM_parameter-name
  ```
+ Adicione validação de entrada usando `allowedPattern` para restringir caracteres especiais

**Comportamento inconsistente entre plataformas**  
**Problema:** o tratamento de parâmetros funciona de forma diferente nos sistemas Linux e Windows Server.  
**Solução:**  
+ Use a sintaxe da variável de ambiente específica da plataforma:

  ```
  # PowerShell
  $env:SSM_parameter-name
  
  # Bash
  $SSM_parameter-name
  ```
+ Use verificações de pré-condições específicas da plataforma em seu documento

**Valores dos parâmetros não foram devidamente escapados**  
**Problema:** vulnerabilidades de injeção de comando, apesar de usar a interpolação de variáveis de ambiente.  
**Solução:**  
+ Sempre use o escape adequado ao incluir valores de parâmetros nos comandos:

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

## Dicas de validação de parâmetros
<a name="parameter-validation"></a>

Use estas técnicas para validar o tratamento de parâmetros:

1. Verifique a disponibilidade de variáveis de ambiente:

   ```
   #!/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 os padrões dos parâmetros:

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

1. Inclua o tratamento de erros:

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