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.

Angenommen, Sie verfügen über einen Netzwerk-Stack mit einer VPC, einer Sicherheitsgruppe und einem Subnetz für öffentliche Webanwendungen sowie über einen öffentlichen Webanwendungs-Stack. 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 Holen Sie sich exportierte Ausgaben aus einem bereitgestellten CloudFormation Stack.

Anmerkung

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 zu AWS -Preisen finden Sie auf der Detailseite der einzelnen Produkte.

Verwenden Sie eine Beispielvorlage, um einen Netzwerk-Stack zu erstellen

Bevor Sie mit dieser exemplarischen Vorgehensweise beginnen, überprüfen Sie, ob Sie über IAM-Berechtigungen zur Nutzung aller der folgenden Dienste verfügen: Amazon VPC, Amazon EC2 und. CloudFormation

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

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.

Die Stack-Vorlage ist unter der folgenden URL verfügbar: https://s3.amazonaws.com/cloudformation-examples/user - .template. guide/cross-stack/SampleNetworkCrossStack Um die Ressourcen zu sehen, die der Stack erstellt, wählen Sie den Link aus, woraufhin die Vorlage geöffnet wird. In Outputs diesem Abschnitt können Sie die Netzwerkressourcen sehen, die mit der Beispielvorlage exportiert werden. 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.

So erstellen Sie den Netzwerk-Stack
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie auf der Seite „Stacks“ oben rechts die Option „Stack erstellen“ und anschließend „Mit neuen Ressourcen (Standard)“ aus.

  3. Wählen Sie Bestehende Vorlage auswählen und wählen Sie im Abschnitt Vorlage angeben die Option Amazon S3 S3-URL aus.

  4. Fügen Sie für Amazon S3 S3-URL die folgende URL ein:https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.template.

  5. Wählen Sie Weiter aus.

  6. 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.

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

  8. Stellen Sie sicher, dass der Stack-Name und die Vorlagen-URL richtig sind und wählen Sie Create stack (Stack erstellen) aus.

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

  9. Betrachten Sie die Stack-Ereignisse, um den Fortschritt zu überwachen. Weitere Informationen finden Sie unter Stack-Fortschritt überwachen.

Verwenden Sie eine Beispielvorlage, um einen Webanwendungsstapel zu erstellen

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

Sie müssen diesen Stack genauso AWS-Region wie den Netzwerk-Stack erstellen.

Die Stack-Vorlage ist unter der folgenden URL verfügbar: https://s3.amazonaws.com/cloudformation-examples/user- guide/cross-stack/SampleWebAppCrossStack .template. Um die Ressourcen zu sehen, die der Stack erstellt, wählen Sie den Link aus, woraufhin die Vorlage geöffnet wird. Sehen Sie sich in Resources diesem Abschnitt die Eigenschaften der EC2 Instanz an. Mithilfe der Fn::ImportValue-Funktion können sehen, wie die Netzwerkressourcen von einem anderen Stack importiert werden.

So erstellen Sie den Webanwendungs-Stack
  1. Wählen Sie auf der Seite „Stacks“ oben rechts die Option „Stack erstellen“ und dann „Mit neuen Ressourcen (Standard)“ aus.

  2. Wählen Sie Bestehende Vorlage auswählen und wählen Sie im Abschnitt Vorlage angeben die Option Amazon S3 S3-URL aus.

  3. Fügen Sie für Amazon S3 S3-URL die folgende URL ein:https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.template.

  4. Wählen Sie Weiter aus.

  5. 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.

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

  7. Stellen Sie sicher, dass der Stack-Name und die Vorlagen-URL richtig sind und wählen Sie Create stack (Stack erstellen) aus.

    Die Erstellung Ihres Stacks kann mehrere Minuten CloudFormation dauern.

Stellen Sie sicher, dass der Stack wie vorgesehen funktioniert

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 Stack-Informationen von der CloudFormation Konsole aus anzeigen.

Um die Sicherheitsgruppe und das Subnetz der Instance zu überprüfen, sehen Sie sich die Eigenschaften der Instance in der EC2 Amazon-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 URL der Beispiel-Website anzuzeigen, die die Webanwendung ausführt. Weitere Informationen finden Sie unter Stack-Informationen von der CloudFormation Konsole aus anzeigen.

Behebung von AMI-Zuordnungsfehlern

Wenn Sie den Fehler erhaltenTemplate error: Unable to get mapping for AWSRegionArch2AMI::[region]::HVM64, enthält die Vorlage keine AMI-Zuordnung für Ihre AWS-Region. Anstatt das Mapping zu aktualisieren, empfehlen wir, öffentliche Parameter von Systems Manager zu verwenden, um dynamisch auf die neuesten Daten zu verweisen AMIs:

  1. Laden Sie die SampleWebAppCrossStack Vorlage von: https://s3.amazonaws.com/cloudformation-examples/user- guide/cross-stack/SampleWebAppCrossStack .template auf Ihren lokalen Computer herunter.

  2. Löschen Sie den gesamten AWSRegionArch2AMI Mapping-Bereich.

  3. Fügen Sie den folgenden Systems Manager Manager-Parameter hinzu:

    "LatestAmiId": { "Description": "The latest Amazon Linux 2 AMI from the Parameter Store", "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>", "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" }
  4. Ersetzen Sie die bestehende ImageId Referenz:

    "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" } , "HVM64" ] },

    mit:

    "ImageId": { "Ref": "LatestAmiId" },

    Dieser Parameter wird automatisch auf das neueste Amazon Linux 2-AMI für die Region aufgelöst, in der Sie den Stack bereitstellen.

    Verwenden Sie für andere Linux-Distributionen den entsprechenden Parameterpfad. Weitere Informationen finden Sie unter Discovering public parameters in Parameter Store im AWS Systems Manager Benutzerhandbuch.

  5. Laden Sie die geänderte Vorlage in einen S3-Bucket in Ihrem Konto hoch:

    aws s3 cp SampleWebAppCrossStack.template s3://amzn-s3-demo-bucket/
  6. Geben Sie beim Erstellen des Stacks Ihre S3-Vorlagen-URL anstelle der Beispiel-URL an.

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 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 CloudFormation vollständig gelöscht ist. Wenn die EC2 Instance noch in der VPC läuft, CloudFormation wird die VPC im Stack nicht gelöscht. SampleNetworkCrossStack