Types de paramètres de Systems Manager - AWS CloudFormation

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.

Types de paramètres de Systems Manager

Les types de paramètres de Systems Manager correspondent aux paramètres existants dans Systems Manager Parameter Store. Vous spécifiez une clé de paramètre Systems Manager comme valeur du type de paramètre Systems Manager, et vous CloudFormation récupérez la dernière valeur depuis le Parameter Store pour l'utiliser pour la pile. Cela peut être utile, par exemple, lorsque vous devez fréquemment mettre à jour les ressources de votre application en fonction de valeurs changeantes, comme Amazon Machine Image (AMI)IDs.

Vous pouvez voir les valeurs résolues pour les paramètres de Systems Manager dans l'onglet Parameters de la pile dans la console, ou en exécutant describe-stacksou describe-change-set. Ce sont les valeurs actuellement utilisées dans la définition de pile correspondant aux clés de paramètres Systems Manager. Notez que ces valeurs sont définies lorsque la pile est créée ou mise à jour, afin qu'elles puissent différer des dernières valeurs dans Parameter Store.

La valeur d'un type de paramètre Systems Manager étant une clé de paramètre, vous devez être conscient du comportement suivant :

  • Pour les mises à jour de la pile, l'option Use existing value de la console et l'UsePreviousValueattribut update-stacktell doivent CloudFormation utiliser la clé de paramètre existante de Systems Manager, et non sa valeur. CloudFormation récupère toujours les dernières valeurs depuis le Parameter Store lorsqu'il met à jour les piles.

  • CloudFormation peuvent effectuer une validation sur les clés de paramètres de Systems Manager, mais pas sur leurs valeurs correspondantes. Vous pouvez traiter les clés de paramètres sous forme de chaînes pour la validation. Toute validation de paramètres Systems Manager doit se faire dans Parameter Store.

Lorsque vous créez ou mettez à jour des piles et que vous créez des ensembles de modifications CloudFormation , utilisez les valeurs existant dans le Parameter Store au moment de l'exécution de l'opération. Si un paramètre spécifié n'existe pas dans le Parameter Store sous celui de l'appelant Compte AWS, CloudFormation renvoie une erreur de validation.

Lorsque vous exécutez un ensemble de modifications, CloudFormation utilise les valeurs spécifiées dans le jeu de modifications. Vous devriez consulter ces valeurs avant d'exécuter le jeu de modifications, car celles-ci peuvent changer dans Parameter Store entre la création du jeu de modifications et son exécution.

Pour plus d'informations sur le Parameter Store, consultez Systems Manager Parameter Store.

Note

Pour les paramètres du magasin de paramètres stockés dans celui-ci Compte AWS, vous devez fournir le nom du paramètre. Pour les paramètres du magasin de paramètres partagés par un autre Compte AWS, vous devez fournir le paramètre completARN.

Types de paramètres de Systems Manager pris en charge

CloudFormation prend en charge les types de paramètres Systems Manager suivants :

AWS::SSM::Parameter::Name

Nom d'une clé de paramètre Systems Manager.

Utilisez ce paramètre lorsque vous souhaitez transmettre la clé de paramètre. Vous pouvez par exemple utiliser ce type pour valider l'existence du paramètre.

AWS::SSM::Parameter::Value<String>

Un paramètre Systems Manager dont la valeur est une chaîne. C'est le type de paramètre String dans Parameter Store.

AWS::SSM::Parameter::Value<List<String>> ou AWS::SSM::Parameter::Value<CommaDelimitedList>

Un paramètre Systems Manager dont la valeur est une liste de chaînes. C'est le type de paramètre StringList dans Parameter Store.

AWS::SSM::Parameter::Value<AWS-specific parameter type>

Paramètre Systems Manager dont la valeur est un type de paramètre propre àAWS. L'exemple suivant spécifie le type AWS::EC2::KeyPair::KeyName :

AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>

AWS::SSM::Parameter::Value<List<AWS-specific parameter type>>

Paramètre Systems Manager dont la valeur est la liste des types de paramètres propres àAWS. L'exemple suivant spécifie une liste de types AWS::EC2::KeyPair::KeyName :

AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>

Types de paramètres Systems Manager non pris en charge

CloudFormation ne prend pas en charge le type de paramètre Systems Manager suivant :

  • Listes des types de paramètres de Systems Manager, par exemple : List<AWS::SSM::Parameter::Value<String>>

En outre, CloudFormation ne prend pas en charge la définition de paramètres de modèle en tant que types de paramètres SecureString Systems Manager. Vous pouvez toutefois spécifier des chaînes sécurisées comme valeurs de paramètres pour certaines ressources. Pour de plus amples informations, veuillez consulter Spécifiez les valeurs stockées dans d'autres services à l'aide de références dynamiques.

Exemples

AMIID qui fait référence à un paramètre public de Systems Manager comme valeur par défaut

Le <AWS::EC2::Image::Id> type est spécifique aux paramètres AMI d'identification et prend en charge les paramètres publics fournis par AWS.

L'exemple suivant déclare un paramètre nommé LatestAmiId de typeAWS::SSM::Parameter::Value<AWS::EC2::Image::Id>. Par défaut, la ImageId propriété de l'EC2instance fait référence/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2. Ce paramètre public est un alias pour la valeur de l'AMIID régional pour la dernière version d'Amazon Linux 2AMI. Pour plus d'informations sur les paramètres publics, consultez la section Recherche de paramètres publics dans le Guide de AWS Systems Manager l'utilisateur.

JSON

{ "Parameters": { "LatestAmiId": { "Description": "Region specific image from the Parameter Store", "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>", "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "LatestAmiId" } } } } }

YAML

Parameters: LatestAmiId: Description: Region specific image from the Parameter Store Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref LatestAmiId

AMIID qui fait référence à un paramètre de Systems Manager et aucune valeur par défaut

L'exemple suivant déclare un paramètre nommé ImageId de type AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> sans valeur par défaut. Cela signifie que vous devez fournir la clé de paramètre Systems Manager qui fait référence à l'AMIID souhaité lors de la création de la pile.

JSON

{ "Parameters": { "ImageId": { "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" } } } } }

YAML

Parameters: ImageId: Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId

La commande suivante crée une pile en utilisant le modèle dans l'exemple. Elle fournit la clé de paramètre Systems Manager (myLatestAMI) comme valeur du paramètre de modèle ImageId. Cela suppose que le myLatestAMI paramètre existe dans le Parameter Store sous celui de l'appelant Compte AWS.

aws cloudformation create-stack --stack-name S2 --template-body example template \ --parameters ParameterKey=ImageId,ParameterValue=myLatestAMI

Référencement d'un paramètre de chaîne de Systems Manager

L'exemple suivant déclare un paramètre nommé InstanceType de typeAWS::SSM::Parameter::Value<String>. Comme il n'existe aucune valeur par défaut, vous devez fournir la clé de paramètre Systems Manager qui fait référence au type d'instance souhaité lors de la création de la pile.

JSON

{ "Parameters": { "InstanceType": { "Type": "AWS::SSM::Parameter::Value<String>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": { "Ref": "InstanceType" } } } } }

YAML

Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value<String>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: !Ref InstanceType

La commande suivante crée une pile en utilisant le modèle dans l'exemple. Elle fournit la clé de paramètre Systems Manager (myInstanceType) comme valeur du paramètre de modèle InstanceType. Cela suppose que le myInstanceType paramètre existe dans le Parameter Store sous celui de l'appelant Compte AWS.

aws cloudformation create-stack --stack-name S1 --template-body example template \ --parameters ParameterKey=InstanceType,ParameterValue=myInstanceType