CloudFormation Stapel erstellen, aktualisieren und löschen mit dem AWS CLI und PowerShell - 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.

CloudFormation Stapel erstellen, aktualisieren und löschen mit dem AWS CLI und PowerShell

Die folgenden Befehlszeilenbeispiele zeigen, wie einzelne CloudFormation Aktionen mit dem AWS CLI und PowerShell ausgeführt werden. Diese Beispiele beinhalten nur die am häufigsten verwendeten Aktionen. Eine vollständige Liste finden Sie in der AWS CloudFormation APIReferenz.

Brechen Sie ein Stack-Update ab

Verwenden Sie den cancel-update-stack Befehl, um ein Stack-Update abzubrechen. Weitere Informationen finden Sie unter Ein Stack-Update abbrechen.

CLI
AWS CLI

Um ein laufendes Stack-Update abzubrechen

Mit dem folgenden cancel-update-stack Befehl wird ein Stack-Update auf dem myteststack Stack abgebrochen:

aws cloudformation cancel-update-stack --stack-name myteststack
PowerShell
Tools für PowerShell

Beispiel 1: Bricht ein Update auf dem angegebenen Stack ab.

Stop-CFNUpdateStack -StackName "myStack"

Rollback einer Aktualisierung fortsetzen

Verwenden Sie den continue-update-rollback Befehl, um mit dem Rollback eines Updates fortzufahren. Weitere Informationen finden Sie unter Rollback einer Aktualisierung fortsetzen.

CLI
AWS CLI

Um erneut zu versuchen, ein Update rückgängig zu machen

Im folgenden continue-update-rollback Beispiel wird ein Rollback-Vorgang nach einem zuvor fehlgeschlagenen Stack-Update wieder aufgenommen.

aws cloudformation continue-update-rollback \ --stack-name my-stack

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

PowerShell
Tools für PowerShell

Beispiel 1: Setzt das Rollback des benannten Stacks fort, der sich im Status 'UPDATE_ ROLLBACK _FAILED' befinden sollte. Wenn das fortgesetzte Rollback erfolgreich ist, wechselt der Stack in den Status 'UPDATE_ ROLLBACK _COMPLETE'.

Resume-CFNUpdateRollback -StackName "myStack"

Erstellen eines Stacks

Verwenden Sie den create-stack Befehl, um einen Stapel zu erstellen. Sie müssen den Stack-Namen, den Speicherort einer gültigen Vorlage und alle Eingabeparameter angeben. Bei den Namen der Parameterschlüssel wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie den Namen eines Parameterschlüssels falsch eingeben, wird der Stapel CloudFormation nicht erstellt und es wird gemeldet, dass die Vorlage diesen Parameter nicht enthält.

Standardmäßig gibt der describe-stacks Befehl Parameterwerte zurück. Um zu verhindern, dass sensible Parameterwerte wie Kennwörter zurückgegeben werden, fügen Sie Ihrer CloudFormation Vorlage eine NoEcho Eigenschaft hinzu, die TRUE auf gesetzt ist.

Wichtig

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

  • Der Metadata Vorlagenbereich. CloudFormation transformiert, modifiziert oder redigiert keine Informationen, die Sie in den Metadata Abschnitt aufnehmen. Weitere Informationen finden Sie unter Metadata.

  • Der Outputs-Vorlagenabschnitt. Weitere Informationen finden Sie unter Outputs.

  • 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 in der Keine Anmeldeinformationen in Vorlagen einbetten Best Practice.

Die folgenden Beispiele zeigen, wie ein neuer Stack mit dem angegebenen Namen, der Vorlage und den Eingabeparametern erstellt wird.

CLI
AWS CLI

Um einen AWS CloudFormation Stapel zu erstellen

Der folgende create-stacks Befehl erstellt myteststack mithilfe der sampletemplate.json Vorlage einen Stack mit dem Namen:

aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=KeyPairName,ParameterValue=TestKey ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2

Ausgabe:

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }

Weitere Informationen finden Sie unter Stacks im AWS CloudFormation Benutzerhandbuch.

  • APIEinzelheiten finden Sie CreateStackin der AWS CLI Befehlsreferenz.

PowerShell
Tools für PowerShell

Beispiel 1: Erzeugt einen neuen Stack mit dem angegebenen Namen. Die Vorlage wird anhand des bereitgestellten Inhalts mit Anpassungsparametern analysiert ('PK1' und 'PK2' stehen für die Namen der im Vorlageninhalt deklarierten Parameter, 'PV1' und 'PV2' stehen für die Werte für diese Parameter. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und 'ParameterKey' angegeben werden. ParameterValue Wenn die Erstellung des Stacks fehlschlägt, wird er nicht zurückgesetzt.

New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) ` -DisableRollback $true

Beispiel 2: Erzeugt einen neuen Stack mit dem angegebenen Namen. Die Vorlage wird anhand des bereitgestellten Inhalts mit Anpassungsparametern analysiert ('PK1' und 'PK2' stehen für die Namen der im Vorlageninhalt deklarierten Parameter, 'PV1' und 'PV2' stehen für die Werte für diese Parameter. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und 'ParameterKey' angegeben werden. ParameterValue Wenn die Erstellung des Stacks fehlschlägt, wird er zurückgesetzt.

$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p1.ParameterKey = "PK1" $p1.ParameterValue = "PV1" $p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p2.ParameterKey = "PK2" $p2.ParameterValue = "PV2" New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( $p1, $p2 ) ` -OnFailure "ROLLBACK"

Beispiel 3: Erzeugt einen neuen Stack mit dem angegebenen Namen. Die Vorlage wird von Amazon S3 URL mit Anpassungsparametern abgerufen ('PK1' steht für den Namen eines Parameters, der im Inhalt der Vorlage deklariert ist, PV1 '' steht für den Wert für den Parameter. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und ParameterKey 'ParameterValue' angegeben werden. Wenn die Erstellung des Stacks fehlschlägt, wird er zurückgesetzt (genauso wie bei der Angabe von - DisableRollback $false).

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Beispiel 4: Erzeugt einen neuen Stack mit dem angegebenen Namen. Die Vorlage wird von Amazon S3 URL mit Anpassungsparametern abgerufen ('PK1' steht für den Namen eines Parameters, der im Inhalt der Vorlage deklariert ist, PV1 '' steht für den Wert für den Parameter. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und ParameterKey 'ParameterValue' angegeben werden. Wenn die Erstellung des Stacks fehlschlägt, wird er zurückgesetzt (genauso wie bei der Angabe von - DisableRollback $false). Die angegebene Benachrichtigung AENs empfängt veröffentlichte Ereignisse im Zusammenhang mit dem Stack.

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )

Alternativ können Sie den AWS Systems Manager Speicherort einer Vorlagendatei angeben.

AWS CLI

Mit dem folgenden create-stack Befehl wird myteststack unter Verwendung eines AWS Systems Manager Dokuments als Vorlage ein Stapel mit dem Namen erstelltURL.

aws cloudformation create-stack --stack-name myteststack \ --template-url "ssm-doc://arn:aws:ssm:us-east-1:123456789012:document/documentName"

Ausgabe:

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }

Erstellen Sie einen Stapel, der Transformationen enthält

Verwenden Sie den deploy Befehl, um einen Stapel zu erstellen, der Transformationen enthält.

Um einen Stapel aus einer Vorlage zu erstellen, die Transformationen enthält, müssen Sie einen Änderungssatz verwenden. Anstatt einen Änderungssatz zu erstellen und ihn dann zu initiieren, verwenden Sie den deploy Befehl, um diese Schritte in einem einzigen Befehl zu kombinieren.

AWS CLI

Der folgende deploy Befehl erstellt einen Stapel mit dem angegebenen Namen, der Vorlage und den Eingabeparametern.

aws cloudformation deploy --stack-name myteststack \ --template /path_to_template/my-template.json \ --parameter-overrides Key1=Value1 Key2=Value2

Löschen eines Stacks

Verwenden Sie den delete-stack Befehl, um einen Stapel zu löschen. Weitere Informationen finden Sie unter Löschen Sie einen Stack aus der CloudFormation Konsole.

CLI
AWS CLI

Um einen Stapel zu löschen

Im folgenden delete-stack Beispiel wird der angegebene Stapel gelöscht.

aws cloudformation delete-stack \ --stack-name my-stack

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

  • APIEinzelheiten finden Sie DeleteStackin der AWS CLI Befehlsreferenz.

PowerShell
Tools für PowerShell

Beispiel 1: Löscht den angegebenen Stapel.

Remove-CFNStack -StackName "myStack"

Wenn das Löschen fehlschlägt und ein DELETE_FAILED Status zurückgegeben wird, können Sie den Stapel mithilfe der Option gewaltsam löschen. --deletion-mode Dies sind die folgenden Werte, die mit verwendet werden könnendeletion-mode:

  • STANDARD: Löscht den Stapel normal. Dies ist der Standard-Löschmodus.

  • FORCE_DELETE_STACK: Löscht den Stapel und überspringt alle Ressourcen, die nicht gelöscht werden können.

AWS CLI

Die folgende delete-stack Befehlszeile löscht den myteststack Stack unter Verwendung des FORCE_DELETE_STACK Werts mit dem Parameter: deletion-mode

aws cloudformation delete-stack --stack-name myteststack \ --deletion-mode FORCE_DELETE_STACK

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Nach der Verwendung können Sie den list-stack-resources Befehl verwendenFORCE_DELETE_STACK, um die Ressourcen aufzulisten, die beim Löschen des Stacks übersprungen wurden. Für die zurückbehaltenen Ressourcen wird der SKIPPED Status DELETE _ angezeigt. Weitere Informationen finden Sie unter Stack-Ressourcen auflisten.

Beschreiben Sie Stack-Ereignisse

Verwenden Sie den describe-stack-events Befehl, um Stack-Ereignisse zu beschreiben. Weitere Informationen finden Sie unter Stack-Fortschritt überwachen.

CLI
AWS CLI

Um Stack-Ereignisse zu beschreiben

Im folgenden describe-stack-events Beispiel werden die 2 neuesten Ereignisse für den angegebenen Stack angezeigt.

aws cloudformation describe-stack-events \ --stack-name my-stack \ --max-items 2 { "StackEvents": [ { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4e1516d0-e4d6-xmpl-b94f-0a51958a168c", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.556Z", "ResourceStatus": "UPDATE_COMPLETE" }, { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4dd3c810-e4d6-xmpl-bade-0aaf8b31ab7a", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.127Z", "ResourceStatus": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" } ], "NextToken": "eyJOZXh0VG9XMPLiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" }
PowerShell
Tools für PowerShell

Beispiel 1: Gibt alle stapelbezogenen Ereignisse für den angegebenen Stack zurück.

Get-CFNStackEvent -StackName "myStack"

Beispiel 2: Gibt alle stapelbezogenen Ereignisse für den angegebenen Stack zurück, wobei manuelles Paging ab dem angegebenen Token verwendet wird. Das Starttoken für die nächste Seite wird nach jedem Aufruf abgerufen, wobei $null bedeutet, dass keine Ereignisse mehr abgerufen werden müssen.

$nextToken = $null do { Get-CFNStack -StackName "myStack" -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)

Beschreiben Sie eine Stack-Ressource

CLI
AWS CLI

Um Informationen über eine Stack-Ressource zu erhalten

Im folgenden describe-stack-resource Beispiel werden Details für die Ressource angezeigt, die MyFunction im angegebenen Stack benannt ist.

aws cloudformation describe-stack-resource \ --stack-name MyStack \ --logical-resource-id MyFunction

Ausgabe:

{ "StackResourceDetail": { "StackName": "MyStack", "StackId": "arn:aws:cloudformation:us-east-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "MyFunction", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "Metadata": "{}", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } }
PowerShell
Tools für PowerShell

Beispiel 1: Gibt die Beschreibung einer Ressource zurück, die in der Vorlage identifiziert wurde, die dem angegebenen Stack durch die logische ID yDBInstance „M“ zugeordnet ist.

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"

Beschreiben Sie Stack-Ressourcen

CLI
AWS CLI

Um Informationen über eine Stack-Ressource zu erhalten

Im folgenden describe-stack-resources Beispiel werden Details zu den Ressourcen im angegebenen Stack angezeigt.

aws cloudformation describe-stack-resources \ --stack-name my-stack

Ausgabe:

{ "StackResources": [ { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "Timestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "Timestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }
PowerShell
Tools für PowerShell

Beispiel 1: Gibt die AWS Ressourcenbeschreibungen für bis zu 100 Ressourcen zurück, die dem angegebenen Stack zugeordnet sind. Um Details zu allen Ressourcen zu erhalten, die einem Stack zugeordnet sind, verwenden Sie Get-CFNStackResourceSummary, das auch manuelles Paging der Ergebnisse unterstützt.

Get-CFNStackResourceList -StackName "myStack"

Beispiel 2: Gibt die Beschreibung der EC2 Amazon-Instance zurück, die in der Vorlage identifiziert wurde, die dem angegebenen Stack durch die logische ID „Ec2Instance“ zugeordnet ist.

Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"

Beispiel 3: Gibt die Beschreibung von bis zu 100 Ressourcen zurück, die dem Stack zugeordnet sind, der eine EC2 Amazon-Instance enthält, die durch die Instance-ID „i-123456“ identifiziert wird. Um Details zu allen Ressourcen zu erhalten, die einem Stack zugeordnet sind, verwenden Sie Get-CFNStackResourceSummary, das auch manuelles Paging der Ergebnisse unterstützt.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Beispiel 4: Gibt die Beschreibung der EC2 Amazon-Instance zurück, die durch die logische ID „Ec2Instance“ in der Vorlage für einen Stack identifiziert wird. Der Stack wird anhand der physischen Ressourcen-ID einer darin enthaltenen Ressource identifiziert, in diesem Fall auch einer EC2 Amazon-Instance mit der Instance-ID „i-123456“. Abhängig vom Inhalt der Vorlage könnte auch eine andere physische Ressource verwendet werden, um den Stapel zu identifizieren, z. B. ein Amazon S3 S3-Bucket.

Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"

Beschreiben Sie Stapel

CLI
AWS CLI

Um Stapel zu beschreiben AWS CloudFormation

Der folgende describe-stacks Befehl zeigt zusammenfassende Informationen für den myteststack Stack:

aws cloudformation describe-stacks --stack-name myteststack

Ausgabe:

{ "Stacks": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Tags": [], "Outputs": [ { "Description": "Name of S3 bucket to hold website content", "OutputKey": "BucketName", "OutputValue": "myteststack-s3bucket-jssofi1zie2w" } ], "StackStatusReason": null, "CreationTime": "2013-08-23T01:02:15.422Z", "Capabilities": [], "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE", "DisableRollback": false } ] }

Weitere Informationen finden Sie unter Stacks im AWS CloudFormation Benutzerhandbuch.

  • APIEinzelheiten finden Sie DescribeStacksin der AWS CLI Befehlsreferenz.

Go
SDKfür Go V2
Anmerkung

Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository einrichten und ausführen.

// StackOutputs defines a map of outputs from a specific stack. type StackOutputs map[string]string type CloudFormationActions struct { CfnClient *cloudformation.Client } // GetOutputs gets the outputs from a CloudFormation stack and puts them into a structured format. func (actor CloudFormationActions) GetOutputs(stackName string) StackOutputs { output, err := actor.CfnClient.DescribeStacks(context.TODO(), &cloudformation.DescribeStacksInput{ StackName: aws.String(stackName), }) if err != nil || len(output.Stacks) == 0 { log.Panicf("Couldn't find a CloudFormation stack named %v. Here's why: %v\n", stackName, err) } stackOutputs := StackOutputs{} for _, out := range output.Stacks[0].Outputs { stackOutputs[*out.OutputKey] = *out.OutputValue } return stackOutputs }
  • APIEinzelheiten finden Sie DescribeStacksunter AWS SDK for Go APIReferenz.

PowerShell
Tools für PowerShell

Beispiel 1: Gibt eine Sammlung von Stack-Instanzen zurück, die alle Stacks des Benutzers beschreiben.

Get-CFNStack

Beispiel 2: Gibt eine Stack-Instanz zurück, die den angegebenen Stack beschreibt

Get-CFNStack -StackName "myStack"

Beispiel 3: Gibt eine Sammlung von Stack-Instanzen zurück, die alle Stacks des Benutzers mithilfe von manuellem Paging beschreiben. Das Starttoken für die nächste Seite wird nach jedem Aufruf abgerufen, wobei $null bedeutet, dass keine weiteren Details mehr abgerufen werden müssen.

$nextToken = $null do { Get-CFNStack -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)

Holen Sie sich eine Vorlage

CLI
AWS CLI

Um den Vorlagentext für einen AWS CloudFormation Stapel anzuzeigen

Der folgende get-template Befehl zeigt die Vorlage für den myteststack Stack:

aws cloudformation get-template --stack-name myteststack

Ausgabe:

{ "TemplateBody": { "AWSTemplateFormatVersion": "2010-09-09", "Outputs": { "BucketName": { "Description": "Name of S3 bucket to hold website content", "Value": { "Ref": "S3Bucket" } } }, "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead" } } } } }
  • APIEinzelheiten finden Sie GetTemplatein der AWS CLI Befehlsreferenz.

PowerShell
Tools für PowerShell

Beispiel 1: Gibt die Vorlage zurück, die dem angegebenen Stack zugeordnet ist.

Get-CFNTemplate -StackName "myStack"

Stack-Ressourcen auflisten

CLI
AWS CLI

Um Ressourcen in einem Stapel aufzulisten

Der folgende Befehl zeigt die Liste der Ressourcen im angegebenen Stack an.

aws cloudformation list-stack-resources \ --stack-name my-stack

Ausgabe:

{ "StackResourceSummaries": [ { "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "LastUpdatedTimestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "LastUpdatedTimestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }
PowerShell
Tools für PowerShell

Beispiel 1: Gibt Beschreibungen aller Ressourcen zurück, die dem angegebenen Stack zugeordnet sind.

Get-CFNStackResourceSummary -StackName "myStack"

Beispiel 2: Gibt Beschreibungen aller Ressourcen zurück, die dem angegebenen Stack zugeordnet sind, wobei die Ergebnisse manuell durchsucht werden. Das Starttoken für die nächste Seite wird nach jedem Aufruf abgerufen, wobei $null bedeutet, dass keine weiteren Details mehr abgerufen werden müssen.

$nextToken = $null do { Get-CFNStackResourceSummary -StackName "myStack" -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)

Stapel auflisten

Verwenden Sie den list-stacks Befehl, um Stapel aufzulisten. Um nur Stapel mit den angegebenen Statuscodes aufzulisten, fügen Sie die --stack-status-filter Option hinzu. Sie können einen oder mehrere Stack-Statuscodes für die --stack-status-filter Option angeben. Weitere Informationen finden Sie unter Stack-Statuscodes.

CLI
AWS CLI

Um AWS CloudFormation Stapel aufzulisten

Der folgende list-stacks Befehl zeigt eine Zusammenfassung aller Stapel mit dem Status: CREATE_COMPLETE

aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE

Ausgabe:

[ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "TemplateDescription": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "StackStatusReason": null, "CreationTime": "2013-08-26T03:27:10.190Z", "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE" } ]
  • APIEinzelheiten finden Sie ListStacksin der AWS CLI Befehlsreferenz.

PowerShell
Tools für PowerShell

Beispiel 1: Gibt zusammenfassende Informationen für alle Stapel zurück.

Get-CFNStackSummary

Beispiel 2: Gibt zusammenfassende Informationen für alle Stapel zurück, die gerade erstellt werden.

Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"

Beispiel 3: Gibt zusammenfassende Informationen für alle Stapel zurück, die gerade erstellt oder aktualisiert werden.

Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")

Beispiel 4: Gibt zusammenfassende Informationen für alle Stapel zurück, die derzeit erstellt oder aktualisiert werden, wobei die Ergebnisse manuell durchsucht werden. Das Starttoken für die nächste Seite wird nach jedem Aufruf abgerufen, wobei $null bedeutet, dass keine weiteren Details mehr abgerufen werden müssen.

$nextToken = $null do { Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS") -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)

Einen Stack aktualisieren

Verwenden Sie den update-stack Befehl, um einen Stack zu aktualisieren. Weitere Informationen finden Sie unter Stacks direkt aktualisieren.

CLI
AWS CLI

Um AWS CloudFormation Stapel zu aktualisieren

Der folgende update-stack Befehl aktualisiert die Vorlage und die Eingabeparameter für den mystack Stack:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2

Der folgende update-stack Befehl aktualisiert nur den SubnetIDs Parameterwert für den mystack Stack. Wenn Sie keinen Parameterwert angeben, wird der in der Vorlage angegebene Standardwert verwendet:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2

Mit dem folgenden update-stack Befehl werden dem Stack zwei Themen für mystack Stack-Benachrichtigungen hinzugefügt:

aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1" "arn:aws:sns:us-east-1:123456789012:mytopic2"

Weitere Informationen finden Sie unter AWS CloudFormation Stack-Updates im AWS CloudFormation Benutzerhandbuch.

  • APIEinzelheiten finden Sie UpdateStackin der AWS CLI Befehlsreferenz.

PowerShell
Tools für PowerShell

Beispiel 1: Aktualisiert den Stack 'myStack' mit den angegebenen Vorlagen- und Anpassungsparametern. 'PK1' steht für den Namen eines in der Vorlage deklarierten Parameters und 'PV1' für seinen Wert. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und ParameterKey 'ParameterValue' angegeben werden.

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Beispiel 2: Aktualisiert den Stack 'myStack' mit den angegebenen Vorlagen- und Anpassungsparametern. 'PK1' und 'PK2' stehen für die Namen der in der Vorlage deklarierten Parameter, 'PV1' und 'PV2' stehen für ihre angeforderten Werte. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und ParameterKey 'ParameterValue' angegeben werden.

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Beispiel 3: Aktualisiert den Stack 'myStack' mit den angegebenen Vorlagen- und Anpassungsparametern. 'PK1' steht für den Namen eines in der Vorlage deklarierten Parameters und 'PV2' für seinen Wert. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und ParameterKey 'ParameterValue' angegeben werden.

Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }

Beispiel 4: Aktualisiert den Stack 'myStack' mit der angegebenen Vorlage, die von Amazon S3 abgerufen wurde, und den Anpassungsparametern. 'PK1' und 'PK2' stehen für die Namen der in der Vorlage deklarierten Parameter, 'PV1' und 'PV2' stehen für ihre angeforderten Werte. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und ParameterKey 'ParameterValue' angegeben werden.

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Beispiel 5: Aktualisiert den Stack 'myStack', von dem in diesem Beispiel angenommen wird, dass er IAM Ressourcen enthält, mit der angegebenen Vorlage, die von Amazon S3 abgerufen wurde, und den Anpassungsparametern. 'PK1' und 'PK2' stehen für die Namen der in der Vorlage deklarierten Parameter, 'PV1' und 'PV2' stehen für ihre angeforderten Werte. Die Anpassungsparameter können auch mit 'Key' und 'Value' anstelle von '' und ParameterKey 'ParameterValue' angegeben werden. Bei Stacks, die IAM Ressourcen enthalten, müssen Sie den Parameter -Capabilities "CAPABILITY_IAM" angeben. Andernfalls schlägt die Aktualisierung mit einem Fehler 'InsufficientCapabilities' fehl.

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) ` -Capabilities "CAPABILITY_IAM"

Bestätigen Sie Ihre Vorlage

Verwenden Sie den validate-template Befehl, um Ihre Vorlagendatei auf Syntaxfehler zu überprüfen.

Prüft bei der Validierung CloudFormation zunächst, ob die Vorlage gültig istJSON. Ist dies nicht der Fall, wird CloudFormation geprüft, ob die Vorlage gültig istYAML. Wenn beide Prüfungen fehlschlagen, wird ein Fehler bei der Vorlagenvalidierung CloudFormation zurückgegeben.

CLI
AWS CLI

Um eine AWS CloudFormation Vorlage zu validieren

Der folgende validate-template Befehl validiert die sampletemplate.json Vorlage:

aws cloudformation validate-template --template-body file://sampletemplate.json

Ausgabe:

{ "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters": [], "Capabilities": [] }

Weitere Informationen finden Sie im AWS CloudFormation Benutzerhandbuch unter Arbeiten mit AWS CloudFormation Vorlagen.

PowerShell
Tools für PowerShell

Beispiel 1: Überprüft den angegebenen Vorlageninhalt. In der Ausgabe werden die Funktionen, die Beschreibung und die Parameter der Vorlage detailliert beschrieben.

Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"

Beispiel 2: Validiert die angegebene Vorlage, auf die über ein Amazon S3 URL zugegriffen wurde. In der Ausgabe werden die Funktionen, die Beschreibung und die Parameter der Vorlage detailliert beschrieben.

Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template

Im Folgenden finden Sie ein Beispiel für eine Antwort, die zu einem Überprüfungsfehler führt.

{ "ResponseMetadata": { "RequestId": "4ae33ec0-1988-11e3-818b-e15a6df955cd" }, "Errors": [ { "Message": "Template format error: JSON not well-formed. (line 11, column 8)", "Code": "ValidationError", "Type": "Sender" } ], "Capabilities": [], "Parameters": [] } A client error (ValidationError) occurred: Template format error: JSON not well-formed. (line 11, column 8)
Anmerkung

Der validate-template-Befehl wurde entwickelt, um nur die Syntax Ihrer Vorlage zu überprüfen. Er stellt nicht sicher, dass die Eigenschaftswerte, die Sie für eine Ressource angegeben haben, für diese Ressource gültig sind. Er bestimmt auch nicht die Anzahl der Ressourcen, die bei der Erstellung des Stacks vorhanden sein werden.

Um die Betriebsgültigkeit zu überprüfen, müssen Sie versuchen, den Stack zu erstellen. Es gibt keine Sandbox oder keinen Testbereich für AWS CloudFormation Stacks, sodass Ihnen die Ressourcen, die Sie beim Testen erstellen, in Rechnung gestellt werden.

Beispiel für die Verfügbarkeit

Sie können nicht finden, was Sie brauchen? Fordern Sie ein neues Beispiel an, indem Sie unten auf dieser Seite auf den Link Feedback geben klicken.