Salta al contenuto

Come posso utilizzare più valori per singoli parametri in un modello AWS CloudFormation?

3 minuti di lettura
0

Desidero utilizzare più valori per singoli parametri per creare o aggiornare uno stack da un modello AWS CloudFormation.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per utilizzare più valori per singoli parametri in un modello CloudFormation, completa una delle seguenti azioni:

Utilizza tipi di parametri specifici per AWS

Nota: CloudFormation convalida il valore di input selezionato rispetto ai valori esistenti nell'account.

Nei seguenti esempi di modelli CloudFormation, il parametro con la chiave SecurityGroups indica un tipo di parametro specifico per AWS che può accettare più valori per SecurityGroupIds.

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

Modello 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

Per distribuire lo stack, esegui il comando AWS CLI create-stack:

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

Nota: sostituisci StackName con il nome del tuo stack e TemplateFileName con il nome del tuo file. Per ParameterValue, inserisci l'ID del tuo gruppo di sicurezza.

Utilizza i tipi di parametri CommaDelimitedList

Nei seguenti esempi di modelli CloudFormation, il parametro con la chiave SecurityGroups indica un tipo CommadeLimitedList che può accettare più valori per SecurityGroupIds.

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

Modello 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 UFFICIALEAggiornata un anno fa