Namenstyp - AWS CloudFormation

Namenstyp

Bei einigen Ressourcen können Sie einen benutzerdefinierten Namen angeben. AWS CloudFormation erstellt standardmäßig eine eindeutige physische ID für die Benennung einer Ressource. CloudFormation kann einem Amazon S3-Bucket beispielsweise die folgende physischen ID als Namen geben: stack123123123123-s3bucket-abcdefghijk1 Mit benutzerdefinierten Namen können Sie einen Namen angeben, der einfacher zu lesen und zu identifizieren ist, z. B. production-app-logs oder business-metrics.

Ressourcennamen müssen über alle aktiven Stacks hinweg eindeutig sein. Wenn Sie Vorlagen zum Erstellen mehrerer Stacks wiederverwenden, müssen Sie benutzerdefinierte Namen aus Ihrer Vorlage ändern oder entfernen. Wenn Sie keinen Namen angeben, erstellt CloudFormation eine eindeutige physische ID zur Benennung der Ressource. Namen müssen mit einem Buchstaben beginnen, dürfen nur ASCII-Buchstaben, Ziffern und Bindestriche enthalten und dürfen nicht mit einem Bindestrich oder zwei aufeinander folgenden Bindestrichen enden.

Außerdem sollten Sie keine Stack-Ressourcen außerhalb von CloudFormation verwalten. Wenn Sie beispielsweise eine Ressource umbenennen, die Teil eines Stacks ist, ohne CloudFormation zu verwenden, wird möglicherweise jedes Mal, wenn Sie versuchen, diesen Stack zu aktualisieren oder zu löschen, ein Fehler angezeigt.

Wichtig

Sie können keine Aktualisierung durchführen, die dazu führt, dass eine Ressourcen mit einem benutzerdefinierten Namen ersetzt wird. Wenn Sie die Ressource austauschen müssen, geben Sie einen neuen Namen an.

Beispiel

Wenn Sie einen benutzerdefinierten Namen verwenden möchten, geben Sie eine name-Eigenschaft für diese Ressource in Ihrer CloudFormation-Vorlage an. Jede Ressource, die benutzerdefinierte Namen unterstützt, weist eine eigene Eigenschaft auf, die Sie angeben. Um beispielsweise eine DynamoDB-Tabelle zu benennen, verwenden Sie die TableName-Eigenschaft wie im folgenden Beispiel dargestellt:

JSON

"myDynamoDBTable" : { "Type" : "AWS::DynamoDB::Table", "Properties" : { "KeySchema" : { "HashKeyElement": { "AttributeName" : "AttributeName1", "AttributeType" : "S" }, "RangeKeyElement" : { "AttributeName" : "AttributeName2", "AttributeType" : "N" } }, "ProvisionedThroughput" : { "ReadCapacityUnits" : "5", "WriteCapacityUnits" : "10" }, "TableName" : "SampleTable" } }

YAML

myDynamoDBTable: Type: AWS::DynamoDB::Table Properties: KeySchema: HashKeyElement: AttributeName: "AttributeName1" AttributeType: "S" RangeKeyElement: AttributeName: "AttributeName2" AttributeType: "N" ProvisionedThroughput: ReadCapacityUnits: "5" WriteCapacityUnits: "10" TableName: "SampleTable"

Unterstützte Ressourcen

Die folgenden Ressourcentypen unterstützen benutzerdefinierte Namen: