Passer au contenu

Comment utiliser plusieurs valeurs pour des paramètres individuels dans un modèle AWS CloudFormation ?

Lecture de 3 minute(s)
0

Je souhaite utiliser plusieurs valeurs pour des paramètres individuels afin de créer ou de mettre à jour une pile à partir d'un modèle AWS CloudFormation.

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.

Pour utiliser plusieurs valeurs pour des paramètres individuels dans un modèle CloudFormation, effectuez l'une des actions suivantes :

Utiliser des types de paramètres spécifiques à AWS

Remarque : CloudFormation valide la valeur d'entrée que vous sélectionnez par rapport aux valeurs existantes de votre compte.

Dans les exemples de modèles CloudFormation suivants, le paramètre contenant la clé SecurityGroups spécifie un type de paramètre spécifique à AWS qui peut accepter plusieurs valeurs pour SecurityGroupIds.

Modèle JSON :

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Parameters": {
    "SecurityGroups": {
      "Type": "List<AWS::EC2::SecurityGroup::Id>",
      "Description": "The list of SecurityGroupIds in your Virtual Private Cloud (VPC)"
    }
  },
  "Resources": {
    "MyEC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": "ami-79fd7eee",
        "KeyName": "testkey",
        "SecurityGroupIds": {
          "Ref": "SecurityGroups"
        }
      }
    }
  }
}

Modèle YAML :

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  SecurityGroups:
    Type: 'List<AWS::EC2::SecurityGroup::Id>'
    Description: The list of SecurityGroupIds in your Virtual Private Cloud (VPC)
Resources:
  MyEC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      ImageId: ami-79fd7eee
      KeyName: testkey
      SecurityGroupIds: !Ref SecurityGroups

Pour déployer la pile, exécutez la commande create-stack de l’AWS CLI :

aws cloudformation create-stack --stack-name StackName --template-body file://TemplateFileName
--parameters ParameterKey=SecurityGroups,ParameterValue="sg-0123456789\,sg-2345678901"

Remarque : Remplacez StackName par le nom de votre pile et TemplateFileName par le nom de votre fichier. Dans ParameterValue, entrez l'ID de votre groupe de sécurité.

Utiliser les types de paramètres CommaDelimitedList

Dans les exemples de modèles CloudFormation suivants, le paramètre contenant la clé SecurityGroups spécifie un type CommaDelimitedList qui peut accepter plusieurs valeurs pour SecurityGroupIds.

Modèle JSON :

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Parameters": {
    "SecurityGroups": {
      "Type": "CommaDelimitedList",
      "Description": "The list of SecurityGroupIds in your Virtual Private Cloud (VPC)",
      "Default": "sg-a123fd85, sg-b456ge94"
    }
  },
  "Resources": {
    "MyEC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": "ami-79fd7eee",
        "KeyName": "testkey",
        "SecurityGroupIds": {
          "Ref": "SecurityGroups"
        }
      }
    }
  }
}

Modèle YAML :

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  SecurityGroups:
    Type: CommaDelimitedList
    Description: The list of SecurityGroupIds in your Virtual Private Cloud (VPC)
    Default: sg-a123fd85, sg-b456ge94
Resources:
  MyEC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      ImageId: ami-79fd7eee
      KeyName: testkey
      SecurityGroupIds: !Ref SecurityGroups
AWS OFFICIELA mis à jour il y a 9 mois