Saltar al contenido

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

3 minutos de lectura
0

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

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Para usar varios valores para parámetros individuales en una plantilla de CloudFormation, realiza una de las siguientes acciones:

Uso de los tipos de parámetros específicos de AWS

Nota: CloudFormation valida el valor de entrada que selecciones comparándolo con los valores existentes en tu cuenta.

En los siguientes ejemplos de plantillas de CloudFormation, el parámetro con la clave SecurityGroups especifica un tipo de parámetro especifico 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 desplegar la pila, ejecuta el comando create-stack de la AWS CLI:

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

Nota: Sustituye StackName por el nombre de tu pila y TemplateFileName por el nombre de tu archivo. Para ParameterValue, introduce el ID de tu grupo de seguridad.

Uso de los tipos de parámetros CommaDelimitedList

En los siguientes ejemplos de plantillas de CloudFormation, el parámetro con la clave SecurityGroups especifica 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 AWSActualizada hace 8 meses