Como uso vários valores para parâmetros individuais em um modelo do AWS CloudFormation?

3 minuto de leitura
0

Quero criar ou atualizar uma pilha a partir de um modelo do AWS CloudFormation usando vários valores para parâmetros individuais.

Breve descrição

Você pode passar vários valores de parâmetros individuais em um modelo do AWS CloudFormation usando uma das seguintes formas:

Resolução

Use tipos de parâmetros específicos da AWS para selecionar valores em uma lista pré-preenchida de valores existentes da AWS em uma conta da AWS

Importante: o AWS CloudFormation valida o valor de entrada que você seleciona em relação aos valores existentes em sua conta.

Nesses exemplos de modelos do AWS CloudFormation, o parâmetro com a chave SecurityGroups especifica um tipo de parâmetro específico da AWS que pode aceitar vários valores de SecurityGroupIds.

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

Modelo 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 implantar a pilha usando a AWS CLI, use o seguinte comando:

Observação: substitua StackName pelo nome da sua pilha. Substitua TemplateFileName pelo nome do seu arquivo. Em ParameterValue, insira seu ID de grupo de segurança.

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

Use os tipos de parâmetros CommaDelimitedList para inserir valores de entrada

Nos exemplos de modelo do AWS CloudFormation a seguir, o parâmetro com a chave SecurityGroups especifica um tipo CommaDelimitedList que pode aceitar vários valores de SecurityGroupIds.

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

Modelo 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 OFICIAL
AWS OFICIALAtualizada há um ano