Betten Sie Stapel mithilfe verschachtelter Stapel in andere Stapel ein - 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.

Betten Sie Stapel mithilfe verschachtelter Stapel in andere Stapel ein

Verschachtelte Stacks sind Stacks, die als Teil anderer Stacks erstellt wurden. Sie erstellen einen verschachtelten Stapel in einem anderen Stapel, indem Sie AWS::CloudFormation::StackRessource.

Wenn Ihre Infrastruktur wächst, können häufig wiederkehrende Muster entstehen, in denen Sie dieselben Komponenten in mehreren Vorlagen deklarieren. Sie können diese häufig vorkommenden Komponenten herausnehmen und dedizierte Vorlagen daraus erstellen. Verwenden Sie dann die Ressource in Ihrer Vorlage, um auf andere Vorlagen zu verweisen und so verschachtelte Stapel zu erstellen.

Angenommen, Sie haben eine Load Balancer-Konfiguration, die Sie für die meisten Ihrer Stacks verwenden. Anstatt dieselbe Konfigurationen zu kopieren und in Ihre Vorlagen einzufügen, können Sie eine dedizierte Vorlage für den Load Balancer erstellen. Anschließend verwenden Sie einfach die -Ressource, um aus anderen Vorlagen auf die Vorlage zu verweisen.

Verschachtelte Stacks können ihrerseits weitere verschachtelte Stacks enthalten. Das Ergebnis ist eine Stack-Hierarchie (siehe folgende Abbildung). Der Root-Stack ist der Stack der Hauptebene, zu dem alle verschachtelten Stacks letztlich gehören. Außerdem verfügt jeder verschachtelte Stack über einen unmittelbar übergeordneten Stack. Für die erste Ebene verschachtelter Stacks ist der Root-Stack zugleich der übergeordnete Stack. Siehe im Diagramm unten:

  • Stack A ist der Root-Stack für alle anderen – verschachtelten – Stacks in der Hierarchie.

  • Für Stack B ist Stack A sowohl der übergeordnete Stack als auch der Root-Stack.

  • Für Stack D ist Stack C der übergeordnete Stack, während Stack B der übergeordnete Stack für Stack C ist.

Verschachtelte Stacks, die als Teil eines anderen Stacks erstellt werden, besitzen einen unmittelbar übergeordneten Stack sowie den Root-Stack in der Hauptebene.

Eine Vorlage aufteilen CloudFormation

Dieses Beispiel zeigt, wie Sie eine einzelne, große CloudFormation Vorlage mithilfe verschachtelter Vorlagen in ein strukturierteres und wiederverwendbares Design reorganisieren können. Anfänglich zeigt die Vorlage „Before Nesting Stacks“ alle in einer Datei definierten Ressourcen. Dies kann unübersichtlich und schwer zu verwalten werden, wenn die Anzahl der Ressourcen zunimmt. Die Vorlage „Nach dem Verschachteln von Stacks“ teilt die Ressourcen in kleinere, separate Vorlagen auf, die als verschachtelte Stacks bezeichnet werden. Jeder verschachtelte Stapel verwaltet einen bestimmten Satz verwandter Ressourcen, wodurch die Gesamtstruktur übersichtlicher und einfacher zu verwalten ist.

Vor dem Verschachteln von Stapeln

Nach dem Verschachteln von Stapeln

AWSTemplateFormatVersion: '2010-09-09' Parameters: InstanceType: Type: String Default: 't2.micro' Description: 'The EC2 instance type' Environment: Type: String Default: 'Production' Description: 'The deployment environment' Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-1234567890abcdef0 InstanceType: !Ref InstanceType MyS3Bucket: Type: 'AWS::S3::Bucket'
AWSTemplateFormatVersion: '2010-09-09' Resources: MyFirstNestedStack: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/amzn-s3-demo-bucket/first-nested-stack.yaml' Parameters: # Pass parameters to the nested stack if needed InstanceType: 't3.micro' MySecondNestedStack: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/amzn-s3-demo-bucket/second-nested-stack.yaml' Parameters: # Pass parameters to the nested stack if needed Environment: 'Testing' DependsOn: MyFirstNestedStack

Durchführen von Stack-Operationen auf verschachtelten Stacks

Wenn Sie einen Stapel haben, der verschachtelte Stapel enthält, müssen Sie vorsichtig sein und die verschachtelten Stapel korrekt behandeln, wenn Sie bestimmte Aktionen ausführen. Einige Stack-Operationen, wie z. B. Stack-Updates, sollten vom Root-Stack aus initiiert werden und nicht direkt auf den verschachtelten Stacks selbst ausgeführt werden. Darüber hinaus kann das Vorhandensein der verschachtelten Stacks manchmal beeinflussen, wie Operationen auf dem Root-Stack ausgeführt werden.

Verwenden Sie die folgenden Verfahren, um den Root-Stack und die verschachtelten Stacks zu finden.

So zeigen Sie den Root-Stack eines verschachtelten Stacks an
  1. Melden Sie sich an bei AWS Management Console und öffne das AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie auf der Seite Stacks den Namen des verschachtelten Stacks aus, dessen Root-Stack Sie anzeigen möchten.

    Verschachtelte Stacks werden NESTEDüber ihrem Stacknamen angezeigt.

  3. Wählen Sie auf der Registerkarte Stack-Info im Abschnitt Übersicht den Stack-Namen aus, der als Root-Stack aufgeführt ist.

So zeigen Sie die verschachtelten Stacks eines Root-Stacks an
  1. Wählen Sie aus dem Root-Stack, dessen verschachtelte Stapel Sie anzeigen möchten, den Tab Ressourcen aus.

  2. Suchen Sie in der Spalte Typ nach Ressourcen des Typs AWS::CloudFormation: :Stack.