Parameters Abschnittssyntaxreferenz für CloudFormation Vorlagen - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Parameters Abschnittssyntaxreferenz für CloudFormation Vorlagen

Mit dem optionalen Abschnitt Parameters können Sie Ihre Vorlagen anpassen. Mithilfe von Parametern können Sie bei jeder Erstellung oder Aktualisierung eines Stacks benutzerdefinierte Werte in Ihre Vorlage eingeben. Durch die Verwendung von Parametern in Ihren Vorlagen können Sie wiederverwendbare und flexible Vorlagen erstellen, die auf bestimmte Szenarien zugeschnitten werden können.

Indem Sie Parameter des entsprechenden Typs definieren, können Sie aus einer Liste mit Kennungen vorhandener Ressourcen auswählen, wenn Sie die Konsole zum Erstellen Ihres Stacks verwenden. Weitere Informationen finden Sie unter Verweisen Sie mit von CloudFormation -bereitgestellten Parametertypen auf vorhandene Ressourcen und Systems Manager Manager-Parameter.

Parameter sind eine beliebte Methode zur Angabe von Eigenschaftswerten von Stack-Ressourcen. Es kann jedoch Einstellungen geben, die regional oder aufgrund anderer Bedingungen oder Abhängigkeiten für Benutzer etwas komplex zu ermitteln sind. In diesen Fällen sollten Sie der Vorlage selbst etwas Logik hinzufügen, sodass Benutzer einfachere Werte (oder gar keine) angeben können, um die gewünschten Ergebnisse zu erzielen, z. B. mithilfe eines Mappings. Weitere Informationen finden Sie unter Mappings Abschnittssyntaxreferenz für CloudFormation Vorlagen.

Syntax

Sie deklarieren Parameter im Parameters Abschnitt einer Vorlage, der die folgende allgemeine Syntax verwendet:

JSON

"Parameters" : { "ParameterLogicalID" : { "Description": "Information about the parameter", "Type" : "DataType", "Default" : "value", "AllowedValues" : ["value1", "value2"] } }

YAML

Parameters: ParameterLogicalID: Description: Information about the parameter Type: DataType Default: value AllowedValues: - value1 - value2

Ein Parameter enthält eine Liste von Attributen, die seinen Wert sowie Einschränkungen für diesen Wert definieren. Das einzige erforderliche Attribut istType, bei dem es sich um einen StringNumber, oder CloudFormation angegebenen Parametertyp handeln kann. Sie können auch ein Description Attribut hinzufügen, das beschreibt, welche Art von Wert Sie angeben sollten. Der Name und die Beschreibung des Parameters werden auf der Seite „Parameter angeben“ angezeigt, wenn Sie die Vorlage im Assistenten zum Erstellen von Stacks verwenden.

Anmerkung

Standardmäßig listet die CloudFormation Konsole Eingabeparameter alphabetisch nach ihrer logischen ID auf. Um diese Standardreihenfolge zu überschreiben und verwandte Parameter zu gruppieren, können Sie den AWS::CloudFormation::Interface Metadatenschlüssel in Ihrer Vorlage verwenden. Weitere Informationen finden Sie unter AWS::CloudFormation::Interface.

CloudFormation Verwendet für Parameter mit Standardwerten die Standardwerte, sofern die Benutzer keinen anderen Wert angeben. Wenn Sie das Standardattribut weglassen, müssen Benutzer einen Wert für diesen Parameter angeben. Wenn der Benutzer jedoch einen Wert eingeben muss, wird nicht sichergestellt, dass der Wert gültig ist. Um den Wert eines Parameters zu überprüfen, können Sie Einschränkungen deklarieren oder einen AWS-spezifischen Parametertyp angeben.

Für Parameter ohne Standardwerte müssen Benutzer bei der Stack-Erstellung einen Schlüsselnamenwert angeben. Wenn nicht, CloudFormation schlägt die Erstellung des Stacks fehl und es wird eine Ausnahme ausgelöst:

Parameters: [KeyName] must have values

Eigenschaften

AllowedPattern

Gibt einen regulären Ausdruck an, der die zulässigen Muster für String- oder CommaDelimitedList-Typen beschreibt. Bei der Anwendung auf einen Parameter des Typs String muss das Muster mit dem gesamten angegebenen Parameterwert übereinstimmen. Wenn das Muster auf einen Parameter des Typs CommaDelimitedList angewendet wird, muss es mit jedem Wert in der Liste übereinstimmen.

Required: No

AllowedValues

Gibt ein Array mit einer Liste der für den Parameter zulässigen Werte an. Wenn der Parameterwert auf einen Parameter des Typs String angewendet wird, muss er einer der zulässigen Werte sein. Wenn der Parameterwert auf einen Parameter des Typs CommaDelimitedList angewendet wird, muss jeder Wert in der Liste einer der ausgewählten zulässigen Werte sein.

Required: No

Anmerkung

Wenn Sie No Zeichenketten für verwenden YAML und diese verwenden möchten, verwenden Yes Sie einfache AnführungszeichenAllowedValues, um zu verhindern, dass der YAML Parser diese booleschen Werte berücksichtigt.

ConstraintDescription

Gibt eine Zeichenfolge als Beschreibung für eine Einschränkung an. Diese Beschreibung wird bei Verstößen gegen die Einschränkung angezeigt. Für einen Parameter mit einem zulässigen Muster [A-Za-z0-9]+ beispielsweise wird ohne Einschränkungsbeschreibung die folgende Fehlermeldung angezeigt, wenn der Benutzer einen ungültigen Wert angibt:

Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+

Durch das Hinzufügen der Beschreibung einer Einschränkung, wie z. B. dürfen nur Groß- und Kleinbuchstaben und Zahlen enthalten, können Sie die folgende benutzerdefinierte Fehlermeldung anzeigen:

Malformed input-Parameter MyParameter must only contain uppercase and lowercase letters and numbers

Required: No

Default

Gibt einen Wert des entsprechenden Typs an, den die Vorlage nutzen soll, wenn zum Zeitpunkt der Stack-Erstellung kein Wert angegeben wird. Wenn Sie Einschränkungen für den Parameter definieren, müssen Sie einen Wert angeben, der diese Einschränkungen einhält.

Required: No

Description

Gibt eine Zeichenfolge mit maximal 4 000 Zeichen an, die den Parameter beschreibt.

Required: No

MaxLength

Gibt einen Ganzzahlwert an, der festlegt, wie viele Zeichen maximal für String-Typen zulässig sind.

Required: No

MaxValue

Gibt einen numerischen Wert an, der den zulässigen numerischen Maximalwert für Number-Typen definiert.

Required: No

MinLength

Gibt einen Ganzzahlwert an, der die zulässige Mindestzeichenzahl für String-Typen definiert.

Required: No

MinValue

Gibt einen numerischen Wert an, der den zulässigen numerischen Mindestwert für Number-Typen definiert.

Required: No

NoEcho

Gibt an, ob der Parameterwert maskiert werden soll, um zu verhindern, dass er in der Konsole, in Befehlszeilentools oder in den Befehlszeilentools angezeigt wird. API Wenn Sie das NoEcho Attribut auf setzentrue, wird der als Sternchen (*****) maskierte Parameterwert für alle Aufrufe CloudFormation zurückgegeben, die den Stack oder die Stack-Ereignisse beschreiben, mit Ausnahme von Informationen, die an den unten angegebenen Speicherorten gespeichert sind.

Required: No

Wichtig

Durch die Verwendung des NoEcho-Attributs werden keine Informationen maskiert, die im Folgenden gespeichert sind:

Es wird dringend empfohlen, diese Mechanismen nicht zu verwenden, um vertrauliche Informationen wie Passwörter oder Geheimnisse einzugeben.

Wichtig

Anstatt vertrauliche Informationen direkt in Ihre CloudFormation Vorlagen einzubetten, empfehlen wir Ihnen, dynamische Parameter in der Stack-Vorlage zu verwenden, um auf vertrauliche Informationen zu verweisen, die außerhalb von gespeichert und verwaltet werden CloudFormation, z. B. im AWS Systems Manager Parameterspeicher oder. AWS Secrets Manager

Weitere Informationen finden Sie unter Keine Anmeldeinformationen in Vorlagen einbetten Best Practice.

Wichtig

Wir empfehlen dringend davon ab, NoEcho-Parameter oder vertrauliche Daten in Ressourceneigenschaften, die Teil der primären ID einer Ressource sind.

Wenn ein NoEcho Parameter in einer Eigenschaft enthalten ist, die eine primäre Ressourcen-ID bildet, CloudFormation kann der tatsächliche Klartext-Wert in der primären Ressourcen-ID verwendet werden. Diese Ressourcen-ID kann in allen abgeleiteten Ausgaben oder Zielen vorkommen.

Informationen dazu, welche Ressourceneigenschaften den primären Bezeichner eines Ressourcentyps ausmachen, finden Sie in der Ressourcenreferenzdokumentation für diese Ressource unter. AWS Referenz zu Ressourcen- und Eigenschaftstypen Im Abschnitt Return values (Rückgbewerte) stellt der Rückgabewert der Ref-Funktion die Ressourceneigenschaften dar, welche die primäre Kennung des Ressourcentyps bilden.

Type

Gibt den Datentyp des Parameters an (DataType).

Erforderlich: Ja

CloudFormation unterstützt die folgenden Parametertypen:

String

Gibt eine Literalzeichenfolge an. Sie können die folgenden Attribute verwenden, um Einschränkungen zu deklarieren: MinLengthMaxLength,Default,AllowedValues, undAllowedPattern.

Zum Beispiel könnten Benutzer "MyUserName" angeben.

Number

Eine Ganzzahl oder eine Gleitkommazahl. CloudFormation validiert den Parameterwert als Zahl. Wenn Sie den Parameter jedoch an einer anderen Stelle in Ihrer Vorlage verwenden (z. B. mithilfe der Ref systeminternen Funktion), wird der Parameterwert zu einer Zeichenfolge.

Sie können die folgenden Attribute verwenden, um Einschränkungen zu deklarieren:MinValue,MaxValue, Default und. AllowedValues

Zum Beispiel könnten Benutzer "8888" angeben.

List<Number>

Eine Reihe von Ganzzahlen oder Gleitkommazahlen, die durch Kommas getrennt sind. CloudFormationvalidiert den Parameterwert als Zahlen. Wenn Sie den Parameter jedoch an einer anderen Stelle in Ihrer Vorlage verwenden (z. B. mithilfe der Ref systeminternen Funktion), wird der Parameterwert zu einer Liste von Zeichenfolgen.

Zum Beispiel könnten Benutzer "80,20" angeben. Ref würde dann ["80","20"] zurückgeben.

CommaDelimitedList

Gibt ein Array von Literalzeichenfolgen an, jeweils durch Komma getrennt. Die Gesamtanzahl von Zeichenfolgen sollte um 1 höher sein als die Gesamtanzahl von Kommas. Jede Mitgliedszeichenfolge wird zudem gekürzt.

Zum Beispiel könnten Benutzer "test,dev,prod" angeben. Ref würde dann ["test","dev","prod"] zurückgeben.

AWS-spezifische Parametertypen

AWS Werte wie EC2 Amazon-Schlüsselpaarnamen und VPCIDs. Weitere Informationen finden Sie unter Verwenden Sie von CloudFormation -bereitgestellte Parametertypen.

Systems Manager Manager-Parametertypen

Parameter, die vorhandenen Parametern im Systems Manager Parameter Store entsprechen. Sie geben einen Systems Manager Manager-Parameterschlüssel als Wert des Systems Manager Manager-Parametertyps an und CloudFormation rufen den neuesten Wert aus dem Parameterspeicher ab, um ihn für den Stack zu verwenden. Weitere Informationen finden Sie unter Verwenden Sie von CloudFormation -bereitgestellte Parametertypen.

Allgemeine Anforderungen für Parameter

Die folgenden Anforderungen gelten bei der Verwendung von Parametern:

  • Eine CloudFormation Vorlage kann maximal 200 Parameter enthalten.

  • Jedem Parameter muss ein logischer Name (auch logische ID genannt) zugewiesen werden, der alphanumerisch sein und unter allen logischen Namen innerhalb der Vorlage eindeutig sein muss.

  • Jedem Parameter muss ein Parametertyp zugewiesen werden, der von CloudFormation unterstützt wird. Weitere Informationen finden Sie unter Type.

  • Jedem Parameter muss zur Laufzeit ein Wert zugewiesen werden CloudFormation , damit der Stack erfolgreich bereitgestellt werden kann. Sie können optional einen Standardwert angeben, der verwendet werden CloudFormation soll, sofern kein anderer Wert angegeben wird.

  • Die Parameter innerhalb derselben Vorlage deklariert und referenziert werden. Sie können Parameter aus den Vorlagenabschnitten Resources und Outputs der Vorlage referenzieren.

Beispiele

Einfacher Zeichenkettenparameter

Im folgenden Beispiel wird ein Parameter mit dem Namen InstanceTypeParameter type String deklariert. Mit diesem Parameter können Sie den EC2 Amazon-Instance-Typ für den Stack angeben. Wenn bei der Erstellung oder Aktualisierung des Stacks kein Wert angegeben wird, wird der Standardwert von CloudFormation verwendett2.micro.

JSON

"Parameters" : { "InstanceTypeParameter" : { "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro.", "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"] } }

YAML

Parameters: InstanceTypeParameter: Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro. Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large

Passwort-Parameter

Im folgenden Beispiel wird ein Parameter String mit dem Namen DBPwd Typ ohne Standardwert deklariert. Die NoEcho Eigenschaft ist auf gesetzt, um true zu verhindern, dass der Parameterwert in Stackbeschreibungen angezeigt wird. Die zulässige Mindestlänge ist 1, die zulässige Maximallänge 41. Das Muster erlaubt die Verwendung von Klein- und Großbuchstaben sowie Ziffern. Dieses Beispiel veranschaulicht auch die Verwendung eines regulären Ausdrucks für die AllowedPattern Eigenschaft.

JSON

"Parameters" : { "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }

YAML

Parameters: DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$

Parameter referenzieren

Sie verwenden die Ref systeminterne Funktion, um auf einen Parameter zu verweisen, und CloudFormation verwenden den Wert des Parameters, um den Stack bereitzustellen. Sie können Parameter aus den Vorlagenabschnitten Resources und Outputs derselben Vorlage referenzieren.

Im folgenden Beispiel verweist die InstanceType Eigenschaft der EC2 Instanzressource auf den InstanceTypeParameter Parameterwert:

JSON

"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceTypeParameter" }, "ImageId" : "ami-0ff8a91507f77f867" } }

YAML

Ec2Instance: Type: AWS::EC2::Instance Properties: InstanceType: Ref: InstanceTypeParameter ImageId: ami-0ff8a91507f77f867

Durch Kommas getrennter Listenparameter

Der CommaDelimitedList Parametertyp kann nützlich sein, wenn Sie mehrere Werte für eine einzelne Eigenschaft angeben müssen. Im folgenden Beispiel wird ein Parameter deklariert, DbSubnetIpBlocks dessen Standardwert aus drei durch Kommas getrennten CIDR Blöcken besteht.

JSON

"Parameters" : { "DbSubnetIpBlocks": { "Description": "Comma-delimited list of three CIDR blocks", "Type": "CommaDelimitedList", "Default": "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24" } }

YAML

Parameters: DbSubnetIpBlocks: Description: "Comma-delimited list of three CIDR blocks" Type: CommaDelimitedList Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"

Zurückgeben eines Werts aus einem Parameter für Komma-getrennte Listen

Um auf einen bestimmten Wert in der kommagetrennten Liste eines Parameters zu verweisen, verwenden Sie die Fn::Select systeminterne Funktion im Abschnitt Ihrer Vorlage. Resources Übergeben Sie den Indexwert des gewünschten Objekts und eine Liste von Objekten, wie im folgenden Beispiel gezeigt.

JSON

{ "Parameters": { "VPC": { "Type": "String", "Default": "vpc-123456" }, "VpcAzs": { "Type": "CommaDelimitedList", "Default": "us-west-2a, us-west-2b, us-west-2c" }, "DbSubnetIpBlocks": { "Type": "CommaDelimitedList", "Default": "172.16.0.0/26, 172.16.0.64/26, 172.16.0.128/26" } }, "Resources": { "DbSubnet1": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 0, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 0, { "Ref": "DbSubnetIpBlocks" } ] } } }, "DbSubnet2": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 1, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 1, { "Ref": "DbSubnetIpBlocks" } ] } } }, "DbSubnet3": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 2, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 2, { "Ref": "DbSubnetIpBlocks" } ] } } } } }

YAML

Parameters: VPC: Type: String Default: vpc-123456 VpcAzs: Type: CommaDelimitedList Default: us-west-2a, us-west-2b, us-west-2c DbSubnetIpBlocks: Type: CommaDelimitedList Default: 172.16.0.0/26, 172.16.0.64/26, 172.16.0.128/26 Resources: DbSubnet1: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 0 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 0 - !Ref DbSubnetIpBlocks DbSubnet2: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 1 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 1 - !Ref DbSubnetIpBlocks DbSubnet3: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 2 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 2 - !Ref DbSubnetIpBlocks

CloudFormation unterstützt auch die Verwendung dynamischer Verweise zur dynamischen Angabe von Eigenschaftswerten. Beispielsweise müssen Sie möglicherweise auf sichere Zeichenfolgen verweisen, die im Systems Manager Parameter Store gespeichert sind. Weitere Informationen finden Sie unter Ruft mithilfe dynamischer Verweise Werte ab, die in anderen Diensten gespeichert sind.

Sie können auch Pseudo-Parameter innerhalb einer Ref oder einer Sub Funktion verwenden, um Werte dynamisch aufzufüllen. Weitere Informationen finden Sie unter Pseudoparameter-Referenz.