

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
<a name="using-cfn-stack-exports"></a>

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 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 Stackn auszutauschen, *exportieren* Sie Ausgabewerte aus einem Stack und *importieren* sie in einen anderen Stack. Funktionsweise:

1. In der Vorlage des ersten Stacks (beispielsweise des NetzwerkStacks) 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](outputs-section-structure.md).

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

1. In der Vorlage des anderen Stacks verwenden Sie die Funktion [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html), um die exportierten Werte aus dem ersten Stack zu importieren.

1. Wenn Sie den zweiten Stack (z. B. den Webserver-Stack) erstellen oder aktualisieren, CloudFormation werden die exportierten Werte automatisch aus dem ersten Stapel abgerufen und verwendet.

Eine Anleitung sowie Beispielvorlagen finden Sie unter [Verweisen Sie auf Ressourcenausgaben in einem anderen CloudFormation Stack](walkthrough-crossstackref.md).

## Exportieren von Stack-Ausgabewerten im Vergleich zur Verwendung geschachtelter Stacks
<a name="output-vs-nested"></a>

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](using-cfn-nested-stacks.md).

## Überlegungen
<a name="using-cfn-stack-exports-considerations"></a>

Die folgenden Einschränkungen gelten für Cross-Stack-Referenzen:
+ Jeder AWS-Konto`Export` Name muss innerhalb einer Region eindeutig sein.
+ Bei Verwendung von `Export` und `Fn::ImportValue` sind stapelübergreifende Verweise auf dasselbe Konto und dieselbe Region beschränkt. Verwenden `Fn::GetStackOutput` Sie, um konto- oder regionsübergreifende Stack-Ausgaben zu referenzieren.
+ 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
<a name="using-cfn-stack-exports-listing"></a>

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](https://console.aws.amazon.com/cloudformation/).

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

1. Wählen Sie im linken Navigationsbereich **Exporte**.

**Um exportierte Ausgabewerte aufzulisten (AWS CLI)**  
Verwenden Sie den folgenden [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-exports.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-exports.html)-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 Funktion `Fn::ImportValue` referenzieren.

## Auflistung von Stacks, die einen exportierten Ausgabewert importieren
<a name="using-cfn-stack-imports"></a>

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](https://console.aws.amazon.com/cloudformation/)

1. Wählen Sie im linken Navigationsbereich **Exporte**.

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

**Um Stapel aufzulisten, die einen exportierten Ausgabewert importieren (AWS CLI)**  
Verwenden Sie den Befehl [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-imports.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-imports.html). {{us-east-1}}Ersetzen Sie es durch Ihren AWS-Region und `{{private-vpc-vpcid}}` durch den 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 Stack einen bestimmten exportierten Wert importieren, müssen Sie diese Stack ä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. 

## Referenziert Ausgaben ohne Exporte
<a name="using-cfn-stack-exports-without-exports"></a>

Neben der Verwendung von `Export` und `Fn::ImportValue` für stapelübergreifende Referenzen können Sie auch direkt `Fn::GetStackOutput` auf Stack-Ausgaben verweisen. Bei diesem Ansatz muss der Stack, auf den verwiesen wird, keinen Export deklarieren und unterstützt konto- und regionsübergreifende Verweise.

In der folgenden Tabelle werden die beiden Ansätze verglichen:


**Vergleich von Export mit Fn:: ImportValue und Fn:: GetStackOutput**  

| Funktion | Exportieren \+ `Fn::ImportValue` | `Fn::GetStackOutput` | 
| --- | --- | --- | 
| Gleiches Konto, gleiche Region | Unterstützt | Unterstützt | 
| Cross-account | Nicht unterstützt | Unterstützt | 
| Cross-Region | Nicht unterstützt | Unterstützt | 
| Erfordert einen expliziten Export | Ja | Nein | 
| Art der Referenz | Stark (blockiert das Löschen des Exportstapels) | Schwach (bei der Bereitstellung behoben) | 
| Referentielle Integrität | Erzwungen | Nicht erzwungen | 

Wann sollten die einzelnen Ansätze verwendet werden:
+ Verwenden Sie `Export` und `Fn::ImportValue` wann Sie eine starke referenzielle Integrität benötigen. Mit diesem Ansatz CloudFormation wird verhindert, dass Sie einen Stapel löschen, der Werte exportiert, die von anderen Stacks verbraucht wurden, und schützt Sie so davor, versehentlich Abhängigkeiten zu brechen.
+ Verwenden Sie diese Option, `Fn::GetStackOutput` wenn Sie konten- oder regionsübergreifend auf Ausgaben verweisen müssen oder wenn Sie es vorziehen, keine expliziten Exporte zu verwalten. Beachten Sie, dass dies zu einer schwachen Referenz `Fn::GetStackOutput` führt. Wenn der Stapel oder die Ausgabe, auf die verwiesen wird, gelöscht wird, wird der verbrauchende Stack nicht benachrichtigt, und nachfolgende Operationen, die die Referenz erneut auflösen, schlagen fehl.

Weitere Informationen finden Sie unter [Fn:: GetStackOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getstackoutput.html) im *CloudFormation Template Reference Guide.*