Exportierte Ausgaben von einem bereitgestellten CloudFormation-Stack abrufen - 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.

Exportierte Ausgaben von einem bereitgestellten CloudFormation-Stack abrufen

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

Sie könnten zum Beispiel einen Stack haben, der Netzwerkressourcen wie Subnetze und Sicherheitsgruppen für Ihre Webserver erstellt. Andere Stacks, die die eigentlichen Webserver erstellen, können dann die vom ersten Stack erstellten Netzwerkressourcen nutzen. Ressourcen-IDs in der Stack-Vorlage müssen nicht hartcodiert werden 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 Stapels (beispielsweise des Netzwerkstapels) definieren Sie bestimmte Werte für den Export, indem Sie das Feld Export im Abschnitt Outputs verwenden. Weitere Informationen finden Sie unter CloudFormation Vorlage Outputs-Syntax.

  2. Wenn Sie diesen Stack erstellen oder aktualisieren, exportiert CloudFormation die Ausgabewerte und macht sie für andere Stacks in derselben AWS-Konto und Region verfügbar.

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

  4. Wenn Sie den zweiten Stack (beispielsweise den Webserver-Stack) erstellen oder aktualisieren, ruft CloudFormation automatisch die exportierten Werte aus dem ersten Stack 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 Teilnetz verwenden, indem sie seine ID importieren. Jeder Stack muss nicht sein eigenes Subnetz erstellen. Solange Stacks die Subnetz-ID importieren, können sie nicht geändert oder gelöscht werden.

Weitere Informationen über verschachtelte Stapel finden Sie unter Aufteilung einer Vorlage in wiederverwendbare Teile mit verschachtelten Stapeln.

Überlegungen

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

  • Für jedes AWS-Konto müssen 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.

  • 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 Stapeln anzeigen möchten, verwenden Sie eine der folgenden Methoden:

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

  2. Wählen Sie in der Navigationsleiste am oberen Rand des Bildschirms Ihren AWS-Region.

  3. Wählen Sie im linken Navigationsbereich Exporte.

So listen Sie exportierte Ausgabewerte auf (AWS CLI)

Verwenden Sie den folgenden list-exports-Befehl. Ersetzen Sie us-east-1 durch Ihre 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 der Funktion Fn::ImportValue referenzieren.

Auflistung von Stacks, die einen exportierten Ausgabewert importieren

Um exportierte Ausgabewerte zu löschen oder zu ändern, müssen Sie zunächst herausfinden, von welchen Stapeln sie importiert werden.

Um die Stapel anzuzeigen, die einen exportierten Ausgabewert importieren, verwenden Sie eine der folgenden Methoden:

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

  2. Wählen Sie im linken Navigationsbereich Exporte.

  3. Um zu sehen, welche Stacks einen bestimmten Exportwert importieren, wählen Sie den Export name (Exportnamen) für diesen Exportwert. CloudFormation zeigt die Export-Detailseite an, die all die Stacks listet, die den Wert importieren.

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

Verwenden Sie den list-imports-Befehl. Ersetzen Sie 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 der 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::ImportValue-Funktionen 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.