Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Résolution des problèmes de gestion des paramètres
Problèmes courants de gestion des paramètres
- Variables d’environnement non disponibles pendant l’exécution
-
Problème : les commandes échouent, car les variables d’environnement (
SSM_) sont introuvables.parameter-nameCauses possibles :
-
La version de SSM Agent ne prend pas en charge l’interpolation des variables d’environnement
-
interpolationTypen’est pas défini surENV_VAR -
Le nom du paramètre ne correspond pas au nom de variable d’environnement attendu
Solution :
-
Vérifiez que SSM Agent est à la version 3.3.2746.0 ou ultérieure
-
Ajoutez une logique de secours pour les anciennes versions de l’agent :
if [ -z "${SSM_parameterName+x}" ]; then export SSM_parameterName="{{parameterName}}" fi
-
- Valeurs de paramètres contenant des caractères spéciaux
-
Problème : les commandes échouent lorsque les valeurs des paramètres contiennent des espaces, des guillemets ou d’autres caractères spéciaux.
Solution :
-
Utilisez des guillemets appropriés lorsque vous référencez les variables d’environnement :
# Correct echo "$SSM_parameter-name" # Incorrect echo $SSM_parameter-name -
Ajoutez la validation des entrées avec
allowedPatternpour restreindre les caractères spéciaux
-
- Comportement incohérent entre plateformes
-
Problème : la gestion des paramètres fonctionne différemment sur les systèmes Linux et Windows Server.
Solution :
-
Utilisez une syntaxe de variable d’environnement spécifique à la plateforme :
# PowerShell $env:SSM_parameter-name# Bash $SSM_parameter-name -
Utilisez des vérifications de conditions préalables spécifiques à la plateforme dans votre document
-
- Les valeurs des paramètres ne sont pas correctement échappées
-
Problème : vulnérabilités d’injection de commandes malgré l’utilisation de l’interpolation de variables d’environnement.
Solution :
-
Utilisez toujours un échappement approprié lorsque vous incluez des valeurs de paramètre dans les commandes :
# Correct mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\"" # Incorrect mysql_command="mysql -u $SSM_username -p$SSM_password"
-
Conseils de validation des paramètres
Utilisez ces techniques pour valider votre gestion des paramètres :
-
Disponibilité des variables de l’environnement de test :
#!/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 -
Vérifiez les modèles des paramètres :
parameters: myParameter: type: String allowedPattern: "^[a-zA-Z0-9_-]+$" description: "Test this pattern with sample inputs" -
Incluez la gestion des erreurs :
if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then echo "Parameter validation failed" exit 1 fi