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.
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.
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.
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.
- 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/amzn-s3-demo-bucket/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/amzn-s3-demo-bucket/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.
- 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
Das folgende describe-stack-events
Beispiel zeigt die 2 neuesten Ereignisse für den angegebenen Stack.
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"
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.
- Go
-
- SDKfür Go V2
-
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(ctx context.Context, stackName string) StackOutputs {
output, err := actor.CfnClient.DescribeStacks(ctx, &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
}
- 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"
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"
}
}
}
}
}
- 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"
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"
}
]
- 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")
Einen Stack aktualisieren
Verwenden Sie den Befehl update-stack
, um einen Stack direkt zu aktualisieren. Sie geben den Stack und Parameterwerte und Funktionen an, die Sie aktualisieren möchten, sowie, falls Sie eine aktualisierte Vorlage verwenden möchten, den Namen der Vorlage. Weitere Informationen finden Sie unter Stacks direkt aktualisieren.
- CLI
-
- AWS CLI
-
Um Stacks zu aktualisieren AWS CloudFormation
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.
- 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/amzn-s3-demo-bucket/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/amzn-s3-demo-bucket/templatefile.template `
-Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) `
-Capabilities "CAPABILITY_IAM"
Um alle Benachrichtigungen zu entfernen, geben Sie für die Option []
for an--notification-arns
.
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/amzn-s3-demo-bucket/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)
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.