Comment utiliser dynamiquement les paramètres stockés dans Systems Manager avec une pile AWS CloudFormation ?

Lecture de 2 minute(s)
0

J'ai plusieurs valeurs de paramètres stockées dans AWS Systems Manager Parameter Store. Je souhaite utiliser ces paramètres de manière dynamique dans une pile AWS CloudFormation en fonction de mes besoins.

Brève description

La résolution suivante utilise Microsoft Windows et Linux comme environnements modèles afin d'illustrer l’utilisation dynamique de différents paramètres dans une pile CloudFormation.

Important : lorsque vous utilisez les commandes et le modèle suivants, assurez-vous de remplacer Windows et Linux en fonction de vos besoins.

Résolution

1.    Ouvrez AWS Systems Manager console.

2.    Dans le panneau de navigation, sélectionnez Parameter Store.

3.    Créez des paramètres Systems Manager de type String pour stocker les ID d'Amazon Machine Image (AMI) pour Linux ou Windows.

Linux :

LinuxAmiId - AMI-Id-for-Linux-resources

-ou-

Windows :

WindowsAmiId - AMI-Id-for-Windows-resources

Remarque : remplacez l'ID d'AMI pour les ressources Linux et l'ID d'AMI pour les ressources Windows par les ID d'AMI pour vos ressources.

4.    Utilisez l'exemple de modèle CloudFormation suivant pour créer le paramètre qui sélectionne l'AMI à utiliser pour le déploiement :

 "Parameters": {
    "AmiToUse": {
      "Type": "String",
      "AllowedValues": [
        "windows",
        "linux"
      ]
    }
  },
  "Conditions": {
    "CreateWindowsResources": {
      "Fn::Equals": [
        "windows",
        {
          "Ref": "AmiToUse"
        }
      ]
    }
  },
  "Resources": {
    "EC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": {
          "Fn::If": [
            "CreateWindowsResources",
            "{{resolve:ssm:WindowsAmiId:1}}",
            "{{resolve:ssm:LinuxAmiId:1}}"
          ]
        }
      }
    }
  }

Remarque : dans le modèle précédent, si la valeur windows est sélectionnée pour AmiToUse, la condition CreateWindowsResources est égale à true. CloudFormation utilise la valeur stockée dans WindowsAmiId pour provisionner la ressource AWS::EC2::Instance. Pour Linux, la condition est évaluée à false et CloudFormation utilise la valeur stockée dans LinuxAmiId pour provisionner la ressource AWS::EC2::Instance.

Pour plus d'informations sur le référencement dynamique, consultez Utilisation des références dynamiques pour la spécification des valeurs de modèle.

Informations connexes

Atelier CloudFormation : laboratoire de référence dynamique


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans