Holen Sie sich exportierte Ausgaben aus einem bereitgestellten 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.

Holen Sie sich exportierte Ausgaben aus einem bereitgestellten CloudFormation Stack

Wenn Sie mehrere Stapel in derselben AWS-Konto Region haben, möchten Sie möglicherweise Informationen zwischen ihnen austauschen. Dies ist nützlich, wenn ein Stapel Ressourcen verwenden muss, die von einem anderen Stapel erstellt wurden.

Beispielsweise könnten Sie über einen Stack verfügen, der Netzwerkressourcen wie Subnetze und Sicherheitsgruppen für Ihre Webserver erstellt. Andere Stapel, die die eigentlichen Webserver bilden, können dann die Netzwerkressourcen verwenden, die durch den ersten Stapel erstellt wurden. Sie müssen die Ressourcen nicht IDs in der Vorlage des Stacks fest codieren oder IDs als Eingabeparameter übergeben.

Um Informationen zwischen Stapeln auszutauschen, exportieren Sie Ausgabewerte aus einem Stapel und importieren sie in einen anderen Stapel. Funktionsweise:

  1. In der Vorlage des ersten Stacks (z. B. dem Netzwerk-Stack) definieren Sie mithilfe des Export Felds im Outputs Abschnitt bestimmte Werte für den Export. Weitere Informationen finden Sie unter Outputs Abschnittssyntaxreferenz für CloudFormation Vorlagen.

  2. Wenn Sie diesen Stack erstellen oder aktualisieren, werden die CloudFormation Ausgabewerte exportiert, sodass sie anderen Stacks in derselben AWS-Konto Region zur Verfügung stehen.

  3. In der Vorlage des anderen Stacks verwenden Sie Fn::ImportValueFunktion, um die exportierten Werte aus dem ersten Stapel zu importieren.

  4. Wenn Sie den zweiten Stapel (z. B. den Webserver-Stack) erstellen oder aktualisieren, ruft er CloudFormation automatisch die exportierten Werte aus dem ersten Stapel ab und verwendet sie.

Eine Anleitung sowie Beispielvorlagen finden Sie unter Verweisen Sie auf Ressourcenausgaben in einem anderen CloudFormation Stack.

Exportieren von Stack-Ausgabewerten im Vergleich zur Verwendung geschachtelter Stacks

Ein geschachtelter Stack ist ein Stack, den Sie innerhalb eines anderes Stacks mithilfe der AWS::CloudFormation::Stack-Ressource erstellen können. Bei geschachtelten Stacks können Sie alle Ressourcen aus einem einzigen Stack bereitstellen und verwalten. Sie können Ausgaben aus einem Stack in den geschachtelten Stack-Gruppen als Eingaben für einen anderen Stack in der Gruppe verwenden. Dies unterscheidet sich vom Exportieren von Werten.

Wenn Sie den Informationsaustausch auf innerhalb einer geschachtelten Stack-Gruppe isolieren möchten, wird empfohlen, geschachtelte Stacks zu verwenden. Um Informationen mit anderen Stacks (nicht nur innerhalb der Gruppe geschachtelter Stacks) auszutauschen, exportieren Sie Werte. Sie können z. B. einen einzelnen Stack mit einem Subnetz erstellen und dann seine ID exportieren. Andere Stacks können dieses Subnetz verwenden, indem sie seine ID importieren. Jeder Stack muss kein eigenes Subnetz erstellen. Solange Stacks die Subnetz-ID importieren, können sie nicht geändert oder gelöscht werden.

Weitere Informationen zu verschachtelten Stacks finden Sie unter. Betten Sie Stapel mithilfe verschachtelter Stapel in andere Stapel ein

Überlegungen

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

  • Jeder AWS-KontoExport Name muss 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.

  • Nachdem ein anderer Stack einen Ausgabewert importiert hat, können Sie den Stack, der den Ausgabewert exportiert, nicht löschen oder den exportierten Ausgabewert ändern. Alle Importe müssen entfernt werden, bevor Sie den exportierenden Stack löschen oder den Ausgabewert ändern können.

Auflistung von exportierten Ausgabewerten

Wenn Sie die exportierten Ausgabewerte aus Ihren Stacks anzeigen möchten, verwenden Sie eine der folgenden Methoden:

So listen Sie exportierte Ausgabewerte auf (Konsole)
  1. Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie in der Navigationsleiste oben auf dem Bildschirm Ihre aus. AWS-Region

  3. Wählen Sie im linken Navigationsbereich Exporte aus.

So listen Sie exportierte Ausgabewerte auf (AWS CLI)

Verwenden Sie Folgendes list-exportsBefehl. Ersetzen us-east-1 mit deinem AWS-Region.

aws cloudformation list-exports --region us-east-1

Es folgt eine Beispielausgabe.

{ "Exports": [ { "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800", "Name": "private-vpc-subnet-a", "Value": "subnet-07b410xmplddcfa03" }, { "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800", "Name": "private-vpc-subnet-b", "Value": "subnet-075ed3xmplebd2fb1" }, { "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800", "Name": "private-vpc-vpcid", "Value": "vpc-011d7xmpl100e9841" } ] }

CloudFormation zeigt die Namen und Werte der exportierten Ausgaben für die aktuelle Region und den Stapel, aus dem sie exportiert wurden. Um einen exportierten Ausgabewert in der Vorlage eines anderen Stacks zu verwenden, können Sie ihn mit dem Exportnamen und dem Fn::ImportValueFunktion.

Auflistung von Stacks, die einen exportierten Ausgabewert importieren

Um exportierte Ausgabewerte zu löschen oder zu ändern, müssen Sie zunächst herausfinden, welche Stapel sie importieren.

Verwenden Sie eine der folgenden Methoden, um die Stapel anzuzeigen, die einen exportierten Ausgabewert importieren:

Auflisten von Stacks, die einen exportierten Ausgabewert importieren (Konsole)
  1. Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie im linken Navigationsbereich Exports aus.

  3. Um zu sehen, welche Stapel einen bestimmten Exportwert importieren, wählen Sie den Exportnamen für diesen Exportwert aus. CloudFormation zeigt die Seite mit den Exportdetails an, auf der alle Stapel aufgeführt sind, die den Wert importieren.

Auflisten von Stacks, die einen exportierten Ausgabewert importieren (AWS CLI)

Verwenden der list-importsBefehl. Ersetzen us-east-1 mit Ihrem AWS-Region und private-vpc-vpcid mit dem Namen des exportierten Ausgabewerts.

aws cloudformation list-imports --region us-east-1 \ --export-name private-vpc-vpcid

CloudFormation gibt eine Liste von Stacks zurück, die den Wert importieren.

{ "Imports": [ "my-app-stack" ] }

Sobald Sie wissen, welche Stapel einen bestimmten exportierten Wert importieren, müssen Sie diese Stapel ändern, um die Fn::ImportValueFunktionen zu entfernen, die auf die Ausgabewerte verweisen. Sie müssen alle Importe entfernen, die auf exportierte Ausgabewerte verweisen, bevor Sie die exportierten Ausgabewerte löschen oder ändern können.