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 String
Number
, 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
- oderCommaDelimitedList
-Typen beschreibt. Bei der Anwendung auf einen Parameter des TypsString
muss das Muster mit dem gesamten angegebenen Parameterwert übereinstimmen. Wenn das Muster auf einen Parameter des TypsCommaDelimitedList
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 TypsCommaDelimitedList
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, verwendenYes
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:-
Der Vorlagenbereich.
Metadata
CloudFormation transformiert, modifiziert oder redigiert keine Informationen, die Sie in denMetadata
Abschnitt aufnehmen. Weitere Informationen finden Sie unter Metadata Abschnittssyntaxreferenz für CloudFormation Vorlagen. -
Der
Outputs
-Vorlagenabschnitt. Weitere Informationen finden Sie unter Outputs Abschnittssyntaxreferenz für CloudFormation Vorlagen. -
Das
Metadata
-Attribut einer Ressourcendefinition. Weitere Informationen finden Sie unter Metadata Attribut.
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:
MinLength
MaxLength
,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
undOutputs
der Vorlage referenzieren.
Beispiele
Themen
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
Zugehörige Ressourcen
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.