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

Lecture de 3 minute(s)
0

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

Brève description

Vous pouvez transmettre plusieurs valeurs pour des paramètres individuels dans un modèle AWS CloudFormation en utilisant l'une des méthodes suivantes :

Solution

Utiliser des types de paramètres spécifiques à AWS pour sélectionner des valeurs à partir d'une liste préremplie de valeurs AWS existantes à partir d'un compte AWS

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

Dans les exemples de modèles AWS CloudFormation suivants, le paramètre avec 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 à l'aide de l'interface de ligne de commande AWS, utilisez la commande suivante :

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

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

Utiliser des types de paramètres CommaDelimitedList pour saisir des valeurs d'entrée

Dans les exemples de modèles AWS CloudFormation suivants, le paramètre avec 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 OFFICIEL
AWS OFFICIELA mis à jour il y a un an