Ir para o conteúdo

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

3 minuto de leitura
0

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

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Para usar vários valores para parâmetros individuais em um modelo do CloudFormation, execute uma das seguintes ações:

Use tipos de parâmetros específicos da AWS

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

Nos exemplos de modelo do AWS CloudFormation a seguir, o parâmetro com a chave SecurityGroups especifica um tipo de parâmetro específico para a 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, execute o comando create-stack da AWS CLI:

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

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

Use os tipos de parâmetros CommaDelimitedList

Nos exemplos de modelo do 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 OFICIALAtualizada há 7 meses