¿Cómo utilizo varios valores para parámetros individuales en una plantilla de AWS CloudFormation?

3 minutos de lectura
0

Quiero crear o actualizar una pila a partir de una plantilla de AWS CloudFormation con varios valores para los parámetros individuales.

Descripción breve

Puede transferir varios valores para parámetros individuales en una plantilla de AWS CloudFormation mediante una de las siguientes formas:

Resolución

Utilice tipos de parámetros específicos de AWS para seleccionar valores de una lista previamente rellenada de valores de AWS existentes de una cuenta de AWS

Importante: AWS CloudFormation valida el valor de entrada que seleccione comparándolo con los valores existentes en su cuenta.

En estos ejemplos de plantillas de AWS CloudFormation, el parámetro con la clave SecurityGroups especifica un tipo de parámetro específico de AWS que puede aceptar varios valores para SecurityGroupIds.

Plantilla 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"
        }
      }
    }
  }
}

Plantilla 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

Para implementar la pila mediante la AWS CLI, utilice el siguiente comando:

Nota: Reemplace StackName por el nombre de su pila. Reemplace TemplateFileName por el nombre de su archivo. Para ParameterValue e, introduzca el ID de su grupo de seguridad.

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

Utilice los tipos de parámetros CommaDelimitedList para introducir valores de entrada

En los siguientes ejemplos de plantillas de AWS CloudFormation, el parámetro con la clave SecurityGroups especifique un tipo CommaDelimitedList que puede aceptar varios valores para SecurityGroupIds.

Plantilla 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"
        }
      }
    }
  }
}

Plantilla 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

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año