Verweisen Sie auf Ressourcenausgaben in einem anderen CloudFormation Stack - 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.

Verweisen Sie auf Ressourcenausgaben in einem anderen CloudFormation Stack

Diese exemplarische Vorgehensweise zeigt Ihnen, wie Sie auf Ausgaben von einem CloudFormation Stapel in einem anderen Stapel verweisen, um modularere und wiederverwendbarere Vorlagen zu erstellen.

Anstatt alle Ressourcen in einem einzigen Stapel zusammenzufassen, erstellen Sie verwandte AWS Ressourcen in separaten Stacks. Anschließend können Sie auf die erforderlichen Ressourcenausgaben aus anderen Stacks verweisen. Durch Einschränken von Stack-übergreifenden Verweisen auf Ausgaben können Sie die Teile eines Stacks steuern, auf die von anderen Stacks verwiesen wird.

Beispielsweise verfügen Sie möglicherweise über einen Netzwerkstapel mit einerVPC, einer Sicherheitsgruppe und einem Subnetz für öffentliche Webanwendungen sowie über einen separaten Stack für öffentliche Webanwendungen. Um sicherzustellen, dass die Webanwendungen die Sicherheitsgruppe und das Subnetz aus dem Netzwerk-Stack verwenden, erstellen Sie einen Stack-übergreifenden Verweis, über den der Webanwendungs-Stack auf Ressourcenausgaben vom Netzwerk-Stack verweisen kann. Mit einem Stack-übergreifenden Verweis müssen die Besitzer der Webanwendungs-Stacks keine Netzwerkregeln oder Komponenten erstellen oder verwalten.

Um einen Stack-übergreifenden Verweis zu erstellen, verwenden Sie das Export-Ausgabefeld, um den Wert einer Ressourcenausgabe für den Export zu markieren. Verwenden Sie dann die intrinsische Funktion Fn::ImportValue , um den Wert zu importieren. Weitere Informationen finden Sie unter Outputs und Fn::ImportValue.

Voraussetzungen

Bevor Sie mit dieser exemplarischen Vorgehensweise beginnen, überprüfen Sie, ob Sie IAM berechtigt sind, alle der folgenden Dienste zu nutzen: Amazon VPCEC2, Amazon und CloudFormation.

Anmerkung

AWS CloudFormation ist ein kostenloser Service. Die AWS Ressourcen, die Sie in Ihren Stacks aufnehmen, werden Ihnen jedoch zum jeweils aktuellen Tarif in Rechnung gestellt. Weitere Informationen zur AWS Preisgestaltung finden Sie auf der Detailseite der einzelnen Produkte.

Die folgenden Einschränkungen gelten für Cross-Stack-Referenzen:

  • Für jedes AWS-Konto Produkt müssen die Export Namen innerhalb einer Region eindeutig sein.

  • Cross-Stack-Referenzen können nicht regionsübergreifend erstellt werden. Sie können die intrinsische Funktion Fn::ImportValue verwenden, um nur Werte zu importieren, die innerhalb derselben Region exportiert wurden.

  • Für Ausgaben kann der Wert der Name-Eigenschaft eines Export keine Ref- oder GetAtt-Funktionen verwenden, die von einer Ressource abhängen.

    Ebenso darf die ImportValue-Funktion keine Ref- oder GetAtt-Funktionen enthalten, die von einer Ressource abhängen.

  • Sie können einen Stack nicht löschen, wenn ein anderer Stack auf eine seiner Ausgaben verweist.

  • Sie können einen Ausgabewert, auf den ein anderer Stack verweist, nicht ändern oder entfernen.

Schritt 1: Verwenden einer Beispielvorlage zum Erstellen eines Netzwerk-Stacks

Der Netzwerk-Stack enthält die VPC Sicherheitsgruppe und das Subnetz, die Sie im Webanwendungsstapel verwenden werden. Zusätzlich zu diesen Regeln erstellt der Netzwerk-Stack ein Internet-Gateway und Routing-Tabellen, um den öffentlichen Zugriff zu ermöglichen.

Anmerkung

Sie müssen diesen Stack erstellen, bevor Sie den Webanwendungs-Stack erstellen. Wenn Sie den Webanwendungs-Stack zuerst erstellen, verfügt dieser nicht über eine Sicherheitsgruppe oder ein Subnetz.

So erstellen Sie den Netzwerk-Stack
  1. Öffnen Sie die AWS CloudFormation -Konsole und wählen Sie Create Stack (Stack erstellen) aus.

  2. Wählen Sie „Vorlage ist fertig“ und wählen Sie im Abschnitt „Vorlage angeben“ die Option Amazon S3 ausURL. Kopieren Sie Folgendes und fügen Sie es URL in das Textfeld ein: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.template

    Der Link stellt den Speicherort der Vorlage für den Netzwerk-Stack bereit. Um die Ressourcen zu sehen, die der Stack erstellt, wählen Sie den Link aus, woraufhin die Vorlage geöffnet wird. Im Ausgabebereich können Sie die Netzwerkressourcen sehen, die die Beispielvorlage exportiert. Den Namen der exportierten Ressourcen ist der Stack-Name vorangestellt, falls Sie Netzwerkressourcen von anderen Stacks exportieren. Wenn Benutzer Netzwerkressourcen importieren, können sie angeben, von welchem Stack die Ressourcen importiert werden.

  3. Nachdem Sie sich die Vorlage angesehen haben, wählen Sie Next aus.

  4. Geben Sie für Stack name SampleNetworkCrossStack ein und wählen Sie dann Next aus.

    Anmerkung

    Notieren Sie sich den Namen dieses Stacks. Sie benötigen den Stack-Namen, wenn Sie den Webanwendungs-Stack öffnen.

  5. Wählen Sie Weiter aus. Für diese Anleitung müssen Sie keine Tags hinzufügen oder erweiterte Einstellungen angeben.

  6. Vergewissern Sie sich, dass der Stackname und URL die Vorlage korrekt sind, und wählen Sie dann Stapel erstellen.

    Es kann mehrere Minuten dauern AWS CloudFormation , bis Ihr Stack erstellt ist. Warten Sie, bis alle Ressourcen erfolgreich erstellt wurden, bevor Sie mit der Erstellung des Webanwendungs-Stacks fortfahren.

  7. Betrachten Sie die Stack-Ereignisse, um den Fortschritt zu überwachen. Weitere Informationen finden Sie unter AWS CloudFormation Stack-Daten und Ressourcen anzeigen auf dem AWS Management Console.

Schritt 2: Verwenden einer Beispielvorlage zum Erstellen eines Webanwendungs-Stacks

Der Webanwendungsstapel erstellt eine EC2 Instanz, die die Sicherheitsgruppe und das Subnetz aus dem Netzwerkstapel verwendet.

Anmerkung

Sie müssen diesen Stack im gleichen Bereich wie den Netzwerk-Stack erstellen.

So erstellen Sie den Webanwendungs-Stack
  1. Öffnen Sie die AWS CloudFormation -Konsole und wählen Sie Create Stack (Stack erstellen) aus.

  2. Wählen Sie „Vorlage ist fertig“ und wählen Sie im Abschnitt „Vorlage angeben“ die Option Amazon S3 ausURL. Kopieren Sie Folgendes und fügen Sie es URL in das Textfeld ein: https://s3.amazonaws.com/cloudformation-examples/SampleWebAppCrossStackuser-guide/cross-stack/ .template

    Der Link gibt die Position der Vorlage für die Webanwendung an. Um die Ressourcen zu sehen, die der Stack erstellt, wählen Sie den Link aus, woraufhin die Vorlage geöffnet wird. Sehen Sie sich im Bereich Ressourcen die Eigenschaften der Instanz an. EC2 Mithilfe der Fn::ImportValue-Funktion können sehen, wie die Netzwerkressourcen von einem anderen Stack importiert werden.

  3. Nachdem Sie sich die Vorlage angesehen haben, wählen Sie Next aus.

  4. Geben Sie für Stack name SampleWebAppCrossStack ein. Verwenden Sie im Abschnitt Parameter den Standardwert für den NetworkStackNameParameter und wählen Sie dann Weiter.

    Die Beispielvorlage verwendet den Parameterwert, um anzugeben, von welchem Stack Werte importiert werden sollen.

  5. Wählen Sie Weiter aus. Für diese Anleitung müssen Sie keine Tags hinzufügen oder erweiterte Einstellungen angeben.

  6. Stellen Sie sicher, dass der Stackname und URL die Vorlage korrekt sind, und wählen Sie dann Stapel erstellen aus.

    Es kann mehrere Minuten dauern AWS CloudFormation , bis Ihr Stack erstellt ist.

  7. Nachdem der Stack erstellt wurde, zeigen Sie seine Ressourcen an, und notieren Sie sich die Instance-ID. Weitere Informationen zum Anzeigen von Stack-Ressourcen finden Sie unter AWS CloudFormation Stack-Daten und Ressourcen anzeigen auf dem AWS Management Console.

    Um die Sicherheitsgruppe und das Subnetz der Instance zu überprüfen, sehen Sie sich die Eigenschaften der Instance in der EC2Amazon-Konsole an. Wenn die Instance die Sicherheitsgruppe und das Subnetz aus dem SampleNetworkCrossStack-Stack verwendet, haben Sie erfolgreich einen Stack-übergreifenden Verweis erstellt.

    Verwenden Sie die Konsole, um die Stack-Ausgaben und die Beispiel-Website anzusehen, URL um zu überprüfen, ob die Webanwendung ausgeführt wird. Weitere Informationen finden Sie unter AWS CloudFormation Stack-Daten und Ressourcen anzeigen auf dem AWS Management Console.

Schritt 3: Bereinigen Ihrer Ressourcen

Um sicherzustellen, dass keine Kosten für unerwünschte Services anfallen, löschen Sie die Stacks.

So löschen Sie die Stacks
  1. Wählen Sie in der AWS CloudFormation Konsole den SampleWebAppCrossStack Stack aus.

  2. Wählen Sie die Option Actions (Aktionen) und anschließend Delete stack (Stack löschen) aus.

  3. Wählen Sie in der Bestätigungsmitteilung die Option Löschen aus.

  4. Nachdem der Stapel gelöscht wurde, wiederholen Sie dieselben Schritte für den SampleNetworkCrossStack Stapel.

    Anmerkung

    Warten Sie, bis der SampleWebAppCrossStack Stapel AWS CloudFormation vollständig gelöscht ist. Wenn die EC2 Instanz noch im Stack läuftVPC, CloudFormation wird der VPC im SampleNetworkCrossStack Stack nicht gelöscht.

    Alle Ressourcen, die Sie zuvor erstellt haben, werden gelöscht.

Verwenden Sie die Beispielvorlagen aus dieser Anleitung, um eigene Stacks zu erstellen, auf die von anderen Stacks verwiesen wird.