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:
-
In der Vorlage des ersten Stacks (z. B. dem Netzwerk-Stack) definieren Sie mithilfe des
Export
Felds imOutputs
Abschnitt bestimmte Werte für den Export. Weitere Informationen finden Sie unter CloudFormation OutputsVorlagensyntax. -
Wenn Sie diesen Stack erstellen oder aktualisieren, werden die CloudFormation Ausgabewerte exportiert AWS-Konto und sie anderen Stacks in derselben Region zur Verfügung gestellt.
-
In der Vorlage des anderen Stacks verwenden Sie die Fn::ImportValueFunktion, um die exportierten Werte aus dem ersten Stapel zu importieren.
-
Wenn Sie den zweiten Stack (z. B. den Webserver-Stack) erstellen oder aktualisieren, ruft er 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 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. Teilen Sie eine Vorlage mithilfe verschachtelter Stapel in wiederverwendbare Teile auf
Überlegungen
Die folgenden Einschränkungen gelten für Cross-Stack-Referenzen:
-
Jeder AWS-Konto
Export
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 einesExport
keineRef
- oderGetAtt
-Funktionen verwenden, die von einer Ressource abhängen.Ebenso darf die
ImportValue
-Funktion keineRef
- oderGetAtt
-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)
-
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie in der Navigationsleiste oben auf dem Bildschirm Ihre aus. AWS-Region
-
Wählen Sie im linken Navigationsbereich Exporte aus.
So listen Sie exportierte Ausgabewerte auf (AWS CLI)
Verwenden Sie den folgenden list-exports-Befehl. Ersetze es us-east-1
durch dein 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 Stack, 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 Fn::ImportValue
Funktion referenzieren.
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)
-
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie im linken Navigationsbereich Exports aus.
-
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 Sie den list-imports-Befehl. us-east-1
Ersetzen Sie es durch Ihren AWS-Region und
durch den Namen des exportierten Ausgabewerts.private-vpc-vpcid
aws cloudformation list-imports --region
us-east-1
\ --export-nameprivate-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::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.