

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.

# Manuelles Importieren von AWS Ressourcen in einen CloudFormation Stack
<a name="import-resources-manually"></a>

Mit dem Ressourcenimport können Sie vorhandene AWS Ressourcen in einen neuen oder vorhandenen CloudFormation Stapel importieren. Während eines Importvorgangs erstellen Sie einen Änderungssatz, der Ihre vorhandenen Ressourcen in einen Stack importiert oder einen neuen Stack aus Ihren vorhandenen Ressourcen erstellt. Während des Imports geben Sie Folgendes an.
+ Eine Vorlage, die den gesamten Stack beschreibt, einschließlich der ursprünglichen Stack-Ressourcen und der zu importierenden Ressourcen. Jede zu importierende Ressource muss ein [DeletionPolicy Attribut](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)haben.
+ Identifikatoren für die Ressourcen, die Sie importieren, mit denen Sie die logischen Daten IDs in der Vorlage den vorhandenen Ressourcen zuordnen CloudFormation können.

**Anmerkung**  
CloudFormation unterstützt mithilfe des Ressourcenimports nur eine Verschachtelungsebene. Dies bedeutet, dass Sie keinen Stack in einen untergeordneten Stack importieren oder einen Stack importieren können, der untergeordnete Stacks enthält.

**Topics**
+ [Identifikatoren für Ressourcen](#resource-import-identifiers-unique-ids)
+ [Validierung](#resource-import-validation)
+ [Statuscodes](#resource-import-status-codes)
+ [Überlegungen](#resource-import-considerations)
+ [Weitere Ressourcen](#resource-import-additional-resources)
+ [Erstellen eines Stacks aus vorhandenen Ressourcen](resource-import-new-stack.md)
+ [Importieren vorhandener Ressourcen in einen Stack](resource-import-existing-stack.md)
+ [Verschieben von Ressourcen zwischen Stacks](refactor-stacks.md)
+ [Verschachteln eines vorhandenen Stacks](resource-import-nested-stacks.md)

## Identifikatoren für Ressourcen
<a name="resource-import-identifiers-unique-ids"></a>

Sie geben zwei Werte an, um jede Ressource, die Sie importieren, zu identifizieren.
+ Eine Bezeichnereigenschaft. Dies ist eine Ressourceneigenschaft, die verwendet werden kann, um jeden Ressourcentyp zu identifizieren. Beispielsweise kann eine `AWS::S3::Bucket`-Ressource mit ihrem `BucketName` identifiziert werden.

  Die Ressourceneigenschaft, mit der Sie die Ressource identifizieren, die Sie importieren, hängt vom Ressourcentyp ab. Sie finden die Ressourceneigenschaft in der CloudFormation Konsole. Nachdem Sie eine Vorlage erstellt haben, die die zu importierende Ressource enthält, können Sie den Importprozess einleiten, in dem Sie die Bezeichner-Eigenschaften für die zu importierenden Ressourcen finden. Für einige Ressourcentypen gibt es möglicherweise mehrere Möglichkeiten, sie zu identifizieren, und Sie können in den Dropdown-Listen auswählen, welche Eigenschaft Sie verwenden möchten.

  Alternativ können Sie die Identifier-Eigenschaften für die Ressourcen, die Sie importieren, abrufen, indem Sie den [get-template-summary](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/get-template-summary.html)CLI-Befehl aufrufen und die S3-URL der Stack-Vorlage als Wert für die `--template-url` Option angeben.
+ Ein Bezeichnerwert. Dies ist der tatsächliche Immobilienwert der Ressource. Beispielsweise könnte der tatsächliche Wert für die `BucketName`-Eigenschaft `MyS3Bucket` sein.

  Sie können den Wert der Eigenschaft identifier in der Servicekonsole für die Ressource abrufen.

## Ressourcenimportvalidierung
<a name="resource-import-validation"></a>

 CloudFormation Führt während eines Importvorgangs die folgenden Validierungen durch.
+ Die zu importierende Ressource ist vorhanden.
+ Die Eigenschaften und Konfigurationswerte für jede zu importierende Ressource entsprechen dem Ressourcentypschema, das die akzeptierten Eigenschaften, erforderlichen Eigenschaften und unterstützten Eigenschaftswerte definiert.
+ Die erforderlichen Eigenschaften werden in der Vorlage angegeben. Erforderliche Eigenschaften für jeden Ressourcentyp sind in der Referenz [AWS Ressource und Eigenschaftstypen](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-template-resource-type-ref.html)beschrieben.
+ Die zu importierende Ressource gehört nicht zu einem anderen Stack in derselben Region.

CloudFormation überprüft nicht, ob die Vorlagenkonfiguration mit der tatsächlichen Konfiguration der Ressourceneigenschaften übereinstimmt.

**Wichtig**  
Stellen Sie sicher, dass die in der Vorlage definierten Ressourcen und ihre Eigenschaften mit der beabsichtigten Konfiguration des Ressourcen-Imports übereinstimmen, um unerwartete Änderungen zu vermeiden.

## Statuscodes für den Ressourcenimport
<a name="resource-import-status-codes"></a>

Diese Tabelle beschreibt die verschiedenen Statustypen, die mit dem Feature Ressourcenimport verwendet werden.


| Status des Importvorgangs | Description | 
| --- | --- | 
|  `IMPORT_IN_PROGRESS`  |  Der Importvorgang wird ausgeführt.  | 
|  `IMPORT_COMPLETE`  |  Der Importvorgang wurde für alle Ressourcen im Stack abgeschlossen.  | 
|  `IMPORT_ROLLBACK_IN_PROGRESS`  |  Der Rollback-Importvorgang wird zur vorherigen Vorlagenkonfiguration zurückgesetzt.  | 
|  `IMPORT_ROLLBACK_FAILED`  |  Der Import-Rollback-Vorgang ist fehlgeschlagen.  | 
|  `IMPORT_ROLLBACK_COMPLETE`  |  Der Import wird zur vorherigen Vorlagenkonfiguration zurückgesetzt.  | 

## Überlegungen während eines Importvorgangs
<a name="resource-import-considerations"></a>
+ Nachdem der Import abgeschlossen ist und bevor nachfolgende Stack-Vorgänge ausgeführt werden, empfehlen wir, die Abweichungserkennung für importierte Ressourcen auszuführen. Die Abweichungserkennung stellt sicher, dass die Vorlagenkonfiguration mit der tatsächlichen Konfiguration übereinstimmt. Weitere Informationen finden Sie unter [Drift auf einem ganzen CloudFormation Stack erkennen](detect-drift-stack.md).
+ Importvorgänge lassen keine neuen Ressourcenerstellungen, Ressourcenlöschungen oder Änderungen an Eigenschaftskonfigurationen zu.
+ Jede zu importierende Ressource muss über ein `DeletionPolicy`-Attribut verfügen, damit der Importvorgang erfolgreich ausgeführt werden kann. Die `DeletionPolicy` kann auf einen beliebigen Wert gesetzt werden. Nur die Ressourcen, die Sie importieren, benötigen ein `DeletionPolicy`. Ressourcen, die bereits Teil des Stacks sind, benötigen keine `DeletionPolicy`.
+ Sie können die gleiche Ressource nicht in mehrere Stacks importieren.
+ Mit der `cloudformation:ImportResourceTypes`-IAM-Richtlinienbedingung können Sie steuern, mit welchen Ressourcentypen Benutzer während eines Importvorgangs arbeiten können. Weitere Informationen finden Sie unter [Richtlinien-Bedingungsschlüssel für CloudFormation](control-access-with-iam.md#using-iam-conditions).
+ Die CloudFormation Stack-Limits gelten beim Import von Ressourcen. Weitere Informationen zu Grenzwerten finden Sie unter[CloudFormation Kontingente verstehen](cloudformation-limits.md).

## Weitere Ressourcen
<a name="resource-import-additional-resources"></a>

Um die Stapeldrift mit einem Ressourcenimport zu beheben, siehe [Beheben von Abweichungen mit einer Importoperation](resource-import-resolve-drift.md).

# Erstellen eines Stacks aus vorhandenen Ressourcen
<a name="resource-import-new-stack"></a>

In diesem Thema erfahren Sie, wie Sie einen Stack aus vorhandenen AWS Ressourcen erstellen, indem Sie diese in einer Vorlage beschreiben. Informationen dazu, wie Sie stattdessen nach vorhandenen Ressourcen suchen und automatisch eine Vorlage generieren können, mit der Sie vorhandene Ressourcen in ein neues Konto importieren CloudFormation oder Ressourcen in einem neuen Konto replizieren können, finden Sie unter[Erzeugen Sie Vorlagen aus vorhandenen Ressourcen mit dem IaC-Generator](generate-IaC.md).

**Voraussetzungen**

Sie benötigen Folgendes, um starten zu können:
+ Eine Vorlage, die alle Ressourcen beschreibt, die Sie in dem neuen Stapel haben möchten. Speichern Sie die Vorlage lokal oder in einem Amazon S3-Bucket. 
+ Geben Sie für jede Ressource, die Sie importieren möchten, Folgendes an:
  + die Eigenschaften und Eigenschaftswerte, die die aktuelle Konfiguration der Ressource definieren.
  + den eindeutigen Bezeichner für die Ressource, z. B. den Ressourcennamen. Weitere Informationen finden Sie unter [Identifikatoren für Ressourcen](import-resources-manually.md#resource-import-identifiers-unique-ids).
  + the [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html).

**Topics**
+ [-Beispielvorlage](#resource-import-new-stack-example-template)
+ [Erstellen Sie einen Stack aus vorhandenen Ressourcen mit dem AWS-Managementkonsole](#resource-import-new-stack-console)
+ [Erstellen Sie einen Stack aus vorhandenen Ressourcen mit dem AWS CLI](#resource-import-new-stack-cli)

## -Beispielvorlage
<a name="resource-import-new-stack-example-template"></a>

In dieser exemplarischen Vorgehensweise gehen wir davon aus, dass Sie die folgende Beispielvorlage namens verwenden, die zwei DynamoDB-Tabellen angibt`TemplateToImport.json`, die außerhalb von erstellt wurden. CloudFormation `ServiceTable`und `GamesTable` sind die Ziele des Imports. 

**Anmerkung**  
Diese Vorlage ist nur als Beispiel gedacht. Um es für Ihre eigenen Testzwecke zu verwenden, ersetzen Sie die Beispielressourcen durch Ressourcen aus Ihrem Konto. 

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Import test",
    "Resources": {
        "ServiceTable": {
            "Type": "AWS::DynamoDB::Table",
            "DeletionPolicy": "Retain",
            "Properties": {
                "TableName": "Service",
                "AttributeDefinitions": [
                    {
                        "AttributeName": "key",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "key",
                        "KeyType": "HASH"
                    }
                ],
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 1
                }
            }
        },
        "GamesTable": {
            "Type": "AWS::DynamoDB::Table",
            "DeletionPolicy": "Retain",
            "Properties": {
                "TableName": "Games",
                "AttributeDefinitions": [
                    {
                        "AttributeName": "key",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "key",
                        "KeyType": "HASH"
                    }
                ],
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 1
                }
            }
        }
    }
}
```

## Erstellen Sie einen Stack aus vorhandenen Ressourcen mit dem AWS-Managementkonsole
<a name="resource-import-new-stack-console"></a>

1. Melden Sie sich bei [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) an AWS-Managementkonsole und öffnen Sie die CloudFormation Konsole.

1. Wählen Sie auf der Seite **Stacks** die Option **Stack erstellen** aus und klicken Sie dann auf **Mit vorhandenen Ressourcen (Ressourcen importieren)**.  
![\[Die Option „Stack aus vorhandenen Ressourcen erstellen“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/create-stack-with-existing-resources.png)

1. Auf der Seite **Importübersicht** finden Sie eine Liste der Dinge, die Sie während dieses Vorgangs angeben müssen. Wählen Sie anschließend **Weiter**.

1. Geben Sie auf der Seite **Vorlage angeben** Ihre Vorlage mit einer der folgenden Methoden an und wählen Sie dann **Weiter** aus.
   + Wählen Sie **Amazon S3-URL** aus und geben Sie dann die URL für Ihre Vorlage im Textfeld an.
   + Wählen Sie **Vorlagendatei hochladen** aus und suchen Sie dann nach Ihrer Vorlage.

1. Identifizieren Sie auf der Seite **Ressourcen identifizieren** jede Zielressource. Weitere Informationen finden Sie unter [Identifikatoren für Ressourcen](import-resources-manually.md#resource-import-identifiers-unique-ids).

   1. Wählen Sie unter **Bezeichnereigenschaft** den Typ des Ressourcenbezeichners aus. Beispielsweise kann die `AWS::DynamoDB::Table`-Ressource mit der `TableName`-Eigenschaft identifiziert werden.

   1. Geben Sie unter **Bezeichnerwert** den tatsächlichen Eigenschaftswert ein. Beispielsweise ist der `TableName` für die `GamesTable`-Ressource in der Beispielvorlage `Games`. 

   1. Wählen Sie **Weiter** aus.

1. Ändern Sie auf der Seite **Stack-Details angeben** alle Parameter und wählen Sie dann **Weiter** aus. Dadurch wird automatisch ein Änderungssatz erstellt.
**Wichtig**  
Der Importvorgang schlägt fehl, wenn Sie vorhandene Parameter ändern, die einen Erstellungs-, Aktualisierungs- oder Löschvorgang initiieren.

1. Vergewissern Sie sich auf der ***stack-name*Überprüfungsseite**, dass die richtigen Ressourcen importiert wurden, und wählen Sie dann Ressourcen **importieren** aus. Dadurch wird der im letzten Schritt erstellte Änderungssatz automatisch ausgeführt.

   Der Bereich **Ereignisse** der Seite **Stack-Details** für Ihren neuen Stack wird angezeigt.  
![\[Die Registerkarte „Ereignisse“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/import-events.png)

1. (Optional) Führen Sie die Abweichungserkennung für den Stack aus, um sicherzustellen, dass die Vorlage und die tatsächliche Konfiguration der importierten Ressourcen übereinstimmen. Weitere Informationen zur Erkennung von Drift finden Sie unter [Drift auf einem ganzen CloudFormation Stack erkennen](detect-drift-stack.md).

1. (Optional) Wenn die importierten Ressourcen nicht mit den erwarteten Vorlagenkonfigurationen übereinstimmen, korrigieren Sie entweder die Vorlagenkonfigurationen oder aktualisieren Sie die Ressourcen direkt. In dieser Anleitung korrigieren wir die Vorlagenkonfigurationen so, dass sie ihren tatsächlichen Konfigurationen entsprechen.

   1. [Stellen Sie den Importvorgang](resource-import-revert.md#resource-import-revert-console) für die betroffenen Ressourcen wieder her.

   1. Fügen Sie der Vorlage die Importziele erneut hinzu und stellen Sie sicher, dass die Vorlagenkonfigurationen mit den tatsächlichen Konfigurationen übereinstimmen.

   1. Wiederholen Sie die Schritte 2–8 mit der geänderten Vorlage, um die Ressourcen erneut zu importieren.

## Erstellen Sie einen Stapel aus vorhandenen Ressourcen mithilfe der AWS CLI
<a name="resource-import-new-stack-cli"></a>

1. Um zu erfahren, welche Eigenschaften die einzelnen Ressourcentypen in der Vorlage identifizieren, führen Sie den Befehl **get-template-summary** aus und geben dabei die S3-URL der Vorlage an. Beispielsweise kann die `AWS::DynamoDB::Table`-Ressource mit der `TableName`-Eigenschaft identifiziert werden. Für die `GamesTable`-Ressource in der Beispielvorlage lautet der Wert von `TableName` `Games`. Sie benötigen diese Informationen im nächsten Schritt.

   ```
   aws cloudformation get-template-summary \
       --template-url https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json
   ```

   Weitere Informationen finden Sie unter [Identifikatoren für Ressourcen](import-resources-manually.md#resource-import-identifiers-unique-ids).

1. Stellen Sie eine Liste der tatsächlichen Ressourcen aus Ihrer Vorlage und ihrer eindeutigen Bezeichner im folgenden JSON-String-Format zusammen.

   ```
   [{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}},{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"ServiceTable","ResourceIdentifier":{"TableName":"Service"}}]
   ```

   Alternativ können Sie die JSON-formatierten Parameter in einer Konfigurationsdatei angeben.

   Um beispielsweise zu importieren `ServiceTable` und`GamesTable`, könnten Sie eine *ResourcesToImport.txt* Datei erstellen, die die folgende Konfiguration enthält.

   ```
   [
      {
         "ResourceType":"AWS::DynamoDB::Table",
         "LogicalResourceId":"GamesTable",
         "ResourceIdentifier":{
            "TableName":"Games"
         }
      },
      {
         "ResourceType":"AWS::DynamoDB::Table",
         "LogicalResourceId":"ServiceTable",
         "ResourceIdentifier":{
            "TableName":"Service"
         }
      }
   ]
   ```

1. Um einen Änderungssatz zu erstellen, verwenden Sie den folgenden Befehl **create-change-set** und ersetzen den Platzhaltertext. Geben Sie für die Option `--change-set-type` einen Wert von **IMPORT** an. Ersetzen Sie bei der Option `--resources-to-import` die Beispiel-JSON-Zeichenfolge durch die tatsächliche JSON-Zeichenfolge, die Sie gerade erstellt haben.

   ```
   aws cloudformation create-change-set \
       --stack-name TargetStack --change-set-name ImportChangeSet \
       --change-set-type IMPORT \
       --template-url https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json \
       --resources-to-import '[{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}},{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"ServiceTable","ResourceIdentifier":{"TableName":"Service"}}]'
   ```
**Anmerkung**  
`--resources-to-import` unterstützt kein Inline-YAML. Die Anforderungen für das Escapen von Anführungszeichen in der JSON-Zeichenfolge variieren je nach Ihrem Terminal. Weitere Informationen finden Sie unter [Anführungszeichen in Zeichenketten verwenden](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html#cli-usage-parameters-quoting-strings-containing) im *AWS Command Line Interface -Benutzerhandbuch*.

   Alternativ können Sie auch eine Datei-URL als Eingabe für die Option `--resources-to-import` verwenden, wie im folgenden Beispiel gezeigt.

   ```
   --resources-to-import file://ResourcesToImport.txt
   ```

1. Überprüfen Sie den Änderungssatz, um sicherzustellen, dass die richtigen Ressourcen importiert werden.

   ```
   aws cloudformation describe-change-set \
       --change-set-name ImportChangeSet --stack-name TargetStack
   ```

1. Um den Änderungssatz zu initiieren und die Ressourcen zu importieren, verwenden Sie den folgenden **execute-change-set**-Befehl und ersetzen den Platzhaltertext. Nach erfolgreichem Abschluss des Vorgangs `(IMPORT_COMPLETE)` werden die Ressourcen erfolgreich importiert.

   ```
   aws cloudformation execute-change-set \
       --change-set-name ImportChangeSet --stack-name TargetStack
   ```

1. (Optional) Führen Sie die Abweichungserkennung für den `IMPORT_COMPLETE`-Stack aus, um sicherzustellen, dass die Vorlage und die tatsächliche Konfiguration der importierten Ressourcen übereinstimmen. Weitere Informationen zur Erkennung von Drift finden Sie unter [Erkennen von Abweichungen bei einzelnen Stack-Ressourcen](detect-drift-resource.md).

   1. Führt die Drifterkennung für den angegebenen Stapel aus.

      ```
      aws cloudformation detect-stack-drift --stack-name TargetStack
      ```

      Wenn dieser Befehl erfolgreich ist, erhalten Sie die folgende Beispielausgabe.

      ```
      { "Stack-Drift-Detection-Id" : "624af370-311a-11e8-b6b7-500cexample" }
      ```

   1. Zeigt den Fortschritt eines Drift-Erkennungsvorgangs für die angegebene Stack Drift-Erkennungs-ID an.

      ```
      aws cloudformation describe-stack-drift-detection-status \
          --stack-drift-detection-id 624af370-311a-11e8-b6b7-500cexample
      ```

   1. Zeigen Sie Drift-Informationen für die Ressourcen an, die im angegebenen Stapel auf Drift geprüft wurden.

      ```
      aws cloudformation describe-stack-resource-drifts --stack-name TargetStack
      ```

1. (Optional) Wenn die importierten Ressourcen nicht mit den erwarteten Vorlagenkonfigurationen übereinstimmen, korrigieren Sie entweder die Vorlagenkonfigurationen oder aktualisieren Sie die Ressourcen direkt. In dieser Anleitung korrigieren wir die Vorlagenkonfigurationen so, dass sie ihren tatsächlichen Konfigurationen entsprechen.

   1. [Stellen Sie den Importvorgang](resource-import-revert.md#resource-import-revert-cli) für die betroffenen Ressourcen wieder her.

   1. Fügen Sie der Vorlage die Importziele erneut hinzu und stellen Sie sicher, dass die Vorlagenkonfigurationen mit den tatsächlichen Konfigurationen übereinstimmen.

   1. Wiederholen Sie die Schritte 3 bis 6 mit der geänderten Vorlage, um die Ressourcen erneut zu importieren.

# Importieren vorhandener Ressourcen in einen Stack
<a name="resource-import-existing-stack"></a>

In diesem Thema erfahren Sie, wie Sie vorhandene AWS Ressourcen in einen vorhandenen Stapel importieren, indem Sie sie in einer Vorlage beschreiben. Informationen dazu, wie Sie stattdessen nach vorhandenen Ressourcen suchen und automatisch eine Vorlage generieren können, mit der Sie vorhandene Ressourcen in ein neues Konto importieren CloudFormation oder Ressourcen in einem neuen Konto replizieren können, finden Sie unter[Erzeugen Sie Vorlagen aus vorhandenen Ressourcen mit dem IaC-Generator](generate-IaC.md).

**Voraussetzungen**

Sie benötigen Folgendes, um starten zu können:
+ Eine Vorlage, die den gesamten Stack beschreibt, einschließlich der Ressourcen, die bereits Teil des Stacks sind, und der zu importierenden Ressourcen. Speichern Sie die Vorlage lokal oder in einem Amazon S3-Bucket. 

  **So erhalten Sie eine Kopie der Vorlage eines laufenden Stacks**

  1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/).

  1. Wählen Sie aus der Liste der Stapel den Stapel aus, aus dem Sie die Vorlage abrufen möchten.

  1. Wählen Sie in der Detailansicht des Stapels die Registerkarte **Vorlage** und wählen Sie dann **In die Zwischenablage kopieren**.

  1. Fügen Sie den Code in einen Texteditor ein und fügen Sie weitere Ressourcen zur Vorlage hinzu.
+ Geben Sie für jede Ressource, die Sie importieren möchten, Folgendes an:
  + die Eigenschaften und Eigenschaftswerte, die die aktuelle Konfiguration der Ressource definieren.
  + den eindeutigen Bezeichner für die Ressource, z. B. den Ressourcennamen. Weitere Informationen finden Sie unter [Identifikatoren für Ressourcen](import-resources-manually.md#resource-import-identifiers-unique-ids).
  + the [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html).

**Topics**
+ [-Beispielvorlage](#resource-import-existing-stack-example-template)
+ [Importieren Sie eine vorhandene Ressource in einen Stack mit dem AWS-Managementkonsole](#resource-import-existing-stack-console)
+ [Importieren Sie eine vorhandene Ressource in einen Stack mithilfe der AWS CLI](#resource-import-existing-stack-cli)

## -Beispielvorlage
<a name="resource-import-existing-stack-example-template"></a>

In dieser Schritt-für-Schritt-Anleitung gehen wir davon aus, dass Sie die folgende Beispielvorlage mit dem Namen `TemplateToImport.json`verwenden, die zwei DynamoDB-Tabellen angibt. `ServiceTable` ist derzeit Teil des Stacks und `GamesTable` ist die Tabelle, die Sie importieren möchten.

**Anmerkung**  
Diese Vorlage ist nur als Beispiel gedacht. Um es für Ihre eigenen Testzwecke zu verwenden, ersetzen Sie die Beispielressourcen durch Ressourcen aus Ihrem Konto. 

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Import test",
    "Resources": {
        "ServiceTable": {
            "Type": "AWS::DynamoDB::Table",
            "Properties": {
                "TableName": "Service",
                "AttributeDefinitions": [
                    {
                        "AttributeName": "key",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "key",
                        "KeyType": "HASH"
                    }
                ],
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 1
                }
            }
        },
        "GamesTable": {
            "Type": "AWS::DynamoDB::Table",
            "DeletionPolicy": "Retain",
            "Properties": {
                "TableName": "Games",
                "AttributeDefinitions": [
                    {
                        "AttributeName": "key",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "key",
                        "KeyType": "HASH"
                    }
                ],
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 1
                }
            }
        }
    }
}
```

## Importieren Sie eine vorhandene Ressource in einen Stack mit dem AWS-Managementkonsole
<a name="resource-import-existing-stack-console"></a>

**Anmerkung**  
Die CloudFormation Konsole unterstützt die Verwendung der systemeigenen Funktion `Fn::Transform` beim Importieren von Ressourcen nicht. Sie können den verwenden, um Ressourcen AWS CLI zu importieren, die diese Funktion verwenden. `Fn::Transform`

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie auf der Seite **Stacks** den Stack aus, in den Sie Ressourcen importieren möchten.

1. Wählen Sie **Stack-Aktionen** und dann **Ressourcen in Stack importieren** aus.  
![\[Die Option „Ressourcen in Stack importieren“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/stack-actions-import.png)

1. Überprüfen Sie die Seite **Importübersicht** und wählen Sie dann **Weiter** aus.

1. Geben Sie auf der Seite **Vorlage angeben** Ihre aktualisierte Vorlage mit einer der folgenden Methoden an und wählen Sie dann **Weiter** aus.
   + Wählen Sie **Amazon S3-URL** aus und geben Sie dann die URL für Ihre Vorlage im Textfeld an.
   + Wählen Sie **Vorlagendatei hochladen** aus und suchen Sie dann nach Ihrer Vorlage.

1. Identifizieren Sie auf der Seite **Ressourcen identifizieren** jede Zielressource. Weitere Informationen finden Sie unter [Identifikatoren für Ressourcen](import-resources-manually.md#resource-import-identifiers-unique-ids).

   1. Wählen Sie unter **Bezeichnereigenschaft** den Typ des Ressourcenbezeichners aus. Beispielsweise kann die `AWS::DynamoDB::Table`-Ressource mit der `TableName`-Eigenschaft identifiziert werden.

   1. Geben Sie unter **Bezeichnerwert** den tatsächlichen Eigenschaftswert ein. Beispielsweise ist der `TableName` für die `GamesTable`-Ressource in der Beispielvorlage `Games`.

   1. Wählen Sie **Weiter** aus.

1. Aktualisieren Sie auf der Seite **Stack-Details angeben** alle Parameter und wählen Sie dann **Weiter** aus. Dadurch wird automatisch ein Änderungssatz erstellt.
**Anmerkung**  
Der Importvorgang schlägt fehl, wenn Sie vorhandene Parameter ändern, die einen Erstellungs-, Aktualisierungs- oder Löschvorgang initiieren.

1. Überprüfen Sie auf der *stack-name* Seite **Überprüfen** die Ressourcen, die Sie importieren möchten, und wählen Sie dann Ressourcen **importieren** aus. Dadurch wird der im letzten Schritt erstellte Änderungssatz automatisch ausgeführt. Alle Tags auf Stack-Ebene werden zu diesem Zeitpunkt auf importierte Ressourcen angewendet. Weitere Informationen finden Sie unter [Stapeloptionen konfigurieren](cfn-console-create-stack.md#configure-stack-options).

   Die Seite **Ereignisse** für den Stack wird angezeigt.  
![\[Die Registerkarte „Ereignisse“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/import-events.png)

1. (Optional) Führen Sie die Abweichungserkennung für den Stack aus, um sicherzustellen, dass die Vorlage und die tatsächliche Konfiguration der importierten Ressourcen übereinstimmen. Weitere Informationen zur Erkennung von Drift finden Sie unter [Drift auf einem ganzen CloudFormation Stack erkennen](detect-drift-stack.md).

1. (Optional) Wenn die importierten Ressourcen nicht mit den erwarteten Vorlagenkonfigurationen übereinstimmen, korrigieren Sie entweder die Vorlagenkonfigurationen oder aktualisieren Sie die Ressourcen direkt. Weitere Informationen über den Import getriebener Ressourcen finden Sie unter [Beheben von Abweichungen mit einer Importoperation](resource-import-resolve-drift.md).

## Importieren Sie eine vorhandene Ressource in einen Stack mithilfe der AWS CLI
<a name="resource-import-existing-stack-cli"></a>

1. Um zu erfahren, welche Eigenschaften die einzelnen Ressourcentypen in der Vorlage identifizieren, führen Sie den Befehl **get-template-summary** aus und geben dabei die S3-URL der Vorlage an. Beispielsweise kann die `AWS::DynamoDB::Table`-Ressource mit der `TableName`-Eigenschaft identifiziert werden. Für die `GamesTable`-Ressource in der Beispielvorlage lautet der Wert von `TableName` `Games`. Sie benötigen diese Informationen im nächsten Schritt.

   ```
   aws cloudformation get-template-summary \
       --template-url https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json
   ```

   Weitere Informationen finden Sie unter [Identifikatoren für Ressourcen](import-resources-manually.md#resource-import-identifiers-unique-ids).

1. Stellen Sie eine Liste der zu importierenden Ressourcen und ihrer eindeutigen Bezeichner im folgenden JSON-String-Format zusammen.

   ```
   [{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]
   ```

   Alternativ können Sie die JSON-formatierten Parameter in einer Konfigurationsdatei angeben. 

   Um beispielsweise zu importieren`GamesTable`, könnten Sie eine *ResourcesToImport.txt* Datei erstellen, die die folgende Konfiguration enthält.

   ```
   [
     {
         "ResourceType":"AWS::DynamoDB::Table",
         "LogicalResourceId":"GamesTable",
         "ResourceIdentifier": {
           "TableName":"Games"
         }
     }
   ]
   ```

1. Um einen Änderungssatz zu erstellen, verwenden Sie den folgenden Befehl **create-change-set** und ersetzen den Platzhaltertext. Geben Sie für die Option `--change-set-type` einen Wert von **IMPORT** an. Ersetzen Sie bei der Option `--resources-to-import` die Beispiel-JSON-Zeichenfolge durch die tatsächliche JSON-Zeichenfolge, die Sie gerade erstellt haben.

   ```
   aws cloudformation create-change-set \
       --stack-name TargetStack --change-set-name ImportChangeSet \
       --change-set-type IMPORT \
       --template-url https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json \
       --resources-to-import '[{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]'
   ```
**Anmerkung**  
`--resources-to-import` unterstützt kein Inline-YAML. Die Anforderungen für das Escapen von Anführungszeichen in der JSON-Zeichenfolge variieren je nach Ihrem Terminal. Weitere Informationen finden Sie unter [Anführungszeichen in Zeichenketten verwenden](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html#cli-usage-parameters-quoting-strings-containing) im *AWS Command Line Interface -Benutzerhandbuch*.

   Alternativ können Sie auch eine Datei-URL als Eingabe für die Option `--resources-to-import` verwenden, wie im folgenden Beispiel gezeigt.

   ```
   --resources-to-import file://ResourcesToImport.txt
   ```

1. Überprüfen Sie den Änderungssatz, um sicherzustellen, dass die richtigen Ressourcen importiert werden.

   ```
   aws cloudformation describe-change-set \
       --change-set-name ImportChangeSet --stack-name TargetStack
   ```

1. Um den Änderungssatz zu initiieren und die Ressourcen zu importieren, verwenden Sie den folgenden **execute-change-set**-Befehl und ersetzen den Platzhaltertext. Alle Tags auf Stack-Ebene werden zu diesem Zeitpunkt auf importierte Ressourcen angewendet. Weitere Informationen finden Sie unter [Stapeloptionen konfigurieren](cfn-console-create-stack.md#configure-stack-options). Nach erfolgreichem Abschluss des Vorgangs `(IMPORT_COMPLETE)` werden die Ressourcen erfolgreich importiert.

   ```
   aws cloudformation execute-change-set \
       --change-set-name ImportChangeSet --stack-name TargetStack
   ```

1. (Optional) Führen Sie die Abweichungserkennung für den `IMPORT_COMPLETE`-Stack aus, um sicherzustellen, dass die Vorlage und die tatsächliche Konfiguration der importierten Ressourcen übereinstimmen. Weitere Informationen zur Erkennung von Drift finden Sie unter [Drift auf einem ganzen CloudFormation Stack erkennen](detect-drift-stack.md).

   1. Führt die Drifterkennung für den angegebenen Stapel aus.

      ```
      aws cloudformation detect-stack-drift --stack-name TargetStack
      ```

      Wenn dieser Befehl erfolgreich ist, erhalten Sie die folgende Beispielausgabe.

      ```
      { "Stack-Drift-Detection-Id" : "624af370-311a-11e8-b6b7-500cexample" }
      ```

   1. Zeigt den Fortschritt eines Drift-Erkennungsvorgangs für die angegebene Stack Drift-Erkennungs-ID an.

      ```
      aws cloudformation describe-stack-drift-detection-status \
          --stack-drift-detection-id 624af370-311a-11e8-b6b7-500cexample
      ```

   1. Zeigen Sie Drift-Informationen für die Ressourcen an, die im angegebenen Stapel auf Drift geprüft wurden.

      ```
      aws cloudformation describe-stack-resource-drifts --stack-name TargetStack
      ```

1. (Optional) Wenn die importierten Ressourcen nicht mit den erwarteten Vorlagenkonfigurationen übereinstimmen, korrigieren Sie entweder die Vorlagenkonfigurationen oder aktualisieren Sie die Ressourcen direkt. Weitere Informationen über den Import getriebener Ressourcen finden Sie unter [Beheben von Abweichungen mit einer Importoperation](resource-import-resolve-drift.md).

# Verschieben von Ressourcen zwischen Stacks
<a name="refactor-stacks"></a>

Mithilfe des `resource import`-Features können Sie Ressourcen zwischen Stacks verschieben oder Stacks *umgestalten*. Sie müssen zuerst eine `Retain`-Löschrichtlinie zu der Ressource hinzufügen, die Sie verschieben möchten, um sicherzustellen, dass die Ressource erhalten bleibt, wenn Sie sie aus dem Quell-Stack entfernen und in den Ziel-Stack importieren.

Wenn Sie mit dem Importieren noch nicht vertraut sind, empfehlen wir Ihnen, zunächst die einführenden Informationen im Thema [AWS Ressourcen in einen CloudFormation Stack importieren](import-resources.md) durchzulesen.

**Wichtig**  
Nicht alle Ressourcen unterstützen Importvorgänge. Weitere Informationen finden Sie unter [Ressourcen, die Importvorgänge unterstützen](resource-import-supported-resources.md) bevor Sie eine Ressource aus dem Stack entfernen. Wenn Sie eine Ressource entfernen, die keine Importvorgänge aus dem Stack unterstützt, können Sie die Ressource nicht in einen anderen Stack importieren oder sie wieder in den Quell-Stack bringen.

## Refaktorieren Sie einen Stack mit dem AWS-Managementkonsole
<a name="refactor-stacks-console"></a>

1. Geben Sie in der Quellvorlage a `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)für die Ressource an, die Sie verschieben möchten.

   In der folgenden Beispiel-Quellvorlage ist `Games` das Ziel dieser Umgestaltung.  
**Example JSON**  

   ```
   {
       "AWSTemplateFormatVersion": "2010-09-09",
       "Description": "Import test",
       "Resources": {
           "ServiceTable":{
              "Type":"AWS::DynamoDB::Table",
              "Properties":{
                 "TableName":"Service",
                 "AttributeDefinitions":[
                    {
                       "AttributeName":"key",
                       "AttributeType":"S"
                    }
                 ],
                 "KeySchema":[
                    {
                       "AttributeName":"key",
                       "KeyType":"HASH"
                    }
                 ],
                 "ProvisionedThroughput":{
                    "ReadCapacityUnits":5,
                    "WriteCapacityUnits":1
                 }
              }
           },
           "GamesTable": {
               "Type": "AWS::DynamoDB::Table",
               "DeletionPolicy": "Retain",
               "Properties": {
                   "TableName": "Games",
                   "AttributeDefinitions": [
                       {
                           "AttributeName": "key",
                           "AttributeType": "S"
                       }
                   ],
                   "KeySchema": [
                       {
                           "AttributeName": "key",
                           "KeyType": "HASH"
                       }
                   ],
                   "ProvisionedThroughput": {
                       "ReadCapacityUnits": 5,
                       "WriteCapacityUnits": 1
                   }
               }
           }
       }
   }
   ```

1. Öffnen Sie die CloudFormation Konsole, um ein Stack-Update durchzuführen und die Löschrichtlinie anzuwenden.

   1. Wählen Sie auf der Seite **Stacks (Stapel)** bei ausgewähltem Stack **Update (Aktualisieren)** aus.

   1. Wählen Sie unter **Vorlage vorbereiten** die Option **Aktuelle Vorlage ersetzen** aus.

   1. Geben Sie unter **Vorlage angeben** die aktualisierte Quellvorlage mit dem `DeletionPolicy`-Attribut für `GamesTable` ein und wählen Sie dann **Weiter** aus.
      + Wählen Sie **Amazon S3-URL** aus und geben Sie dann im Textfeld die URL zur aktualisierten Quellvorlage an.
      + Wählen Sie **Vorlagendatei hochladen** aus und suchen Sie dann nach der aktualisierten Quellvorlagendatei.

   1. Auf der Seite **Stack-Details angeben** sind keine Änderungen erforderlich. Wählen Sie **Weiter** aus.

   1. Auf der Seite **Stack-Optionen konfigurieren** sind keine Änderungen erforderlich. Wählen Sie **Weiter** aus.

   1. **Überprüfen Sie** auf der *SourceStackName* Seite „Überprüfen“ Ihre Änderungen. Wenn Ihre Vorlage IAM-Ressourcen enthält, wählen Sie **I acknowledge that this template may create IAM resources**, um anzugeben, dass Sie IAM-Ressourcen in der Vorlage verwenden möchten. Weitere Informationen zum Verwenden von IAM-Ressourcen in Vorlagen finden Sie unter [Steuern CloudFormation Sie den Zugriff mit AWS Identity and Access Management](control-access-with-iam.md). Aktualisieren Sie dann entweder Ihren Quell-Stack, indem Sie einen Änderungssatz erstellen, oder aktualisieren Sie Ihren Quell-Stack direkt.

1. Entfernen Sie die Ressource, die zugehörigen Parameter und Ausgaben aus der Quellvorlage und fügen Sie sie dann der Zielvorlage hinzu.

   Die Quellvorlage sieht nun wie folgt aus.  
**Example JSON**  

   ```
   {
       "AWSTemplateFormatVersion": "2010-09-09",
       "Description": "Import test",
       "Resources": {
           "ServiceTable":{
              "Type":"AWS::DynamoDB::Table",
              "Properties":{
                 "TableName":"Service",
                 "AttributeDefinitions":[
                    {
                       "AttributeName":"key",
                       "AttributeType":"S"
                    }
                 ],
                 "KeySchema":[
                    {
                       "AttributeName":"key",
                       "KeyType":"HASH"
                    }
                 ],
                 "ProvisionedThroughput":{
                    "ReadCapacityUnits":5,
                    "WriteCapacityUnits":1
                 }
              }
           }
       }
   }
   ```

   Die folgende Beispiel-Zielvorlage enthält derzeit die `PlayersTable`-Ressource und enthält nun auch `GamesTable`.  
**Example JSON**  

   ```
   {
       "AWSTemplateFormatVersion": "2010-09-09",
       "Description": "Import test",
       "Resources": {
           "PlayersTable": {
               "Type": "AWS::DynamoDB::Table",
               "Properties": {
                   "TableName": "Players",
                   "AttributeDefinitions": [
                       {
                           "AttributeName": "key",
                           "AttributeType": "S"
                       }
                   ],
                   "KeySchema": [
                       {
                           "AttributeName": "key",
                           "KeyType": "HASH"
                       }
                   ],
                   "ProvisionedThroughput": {
                       "ReadCapacityUnits": 5,
                       "WriteCapacityUnits": 1
                   }
               }
           },
           "GamesTable": {
               "Type": "AWS::DynamoDB::Table",
               "DeletionPolicy": "Retain",
               "Properties": {
                   "TableName": "Games",
                   "AttributeDefinitions": [
                       {
                           "AttributeName": "key",
                           "AttributeType": "S"
                       }
                   ],
                   "KeySchema": [
                       {
                           "AttributeName": "key",
                           "KeyType": "HASH"
                       }
                   ],
                   "ProvisionedThroughput": {
                       "ReadCapacityUnits": 5,
                       "WriteCapacityUnits": 1
                   }
               }
           }
       }
   }
   ```

1. Wiederholen Sie die Schritte 2–3, um den Quell-Stack erneut zu aktualisieren, um dieses Mal die Zielressource aus dem Stack zu löschen.

1. Führen Sie einen Importvorgang aus, der `GamesTable` dem Ziel-Stack hinzufügt.

   1. Wählen Sie auf der Seite **Stacks** mit ausgewähltem übergeordneten Stack **Stack-Aktionen** und dann **Ressourcen in Stack importieren** aus.  
![\[Die Option „Ressourcen in Stack importieren“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/stack-actions-import.png)

   1. Auf der Seite **Importübersicht** finden Sie eine Liste der Dinge, die Sie während dieses Vorgangs angeben müssen. Wählen Sie anschließend **Weiter**.

   1. Führen Sie auf der Seite **Vorlage angeben** eine der folgenden Aktionen aus und wählen Sie dann **Weiter**.
      + Wählen Sie **Amazon S3-URL** aus und geben Sie dann im Textfeld eine URL an.
      + Wählen Sie **Vorlagendatei hochladen** aus und suchen Sie dann nach einer Datei, die hochgeladen werden soll.

   1. Identifizieren Sie auf der Seite **Ressourcen identifizieren** die Ressource, die Sie verschieben möchten (in diesem Beispiel `GamesTable`). Weitere Informationen finden Sie unter [Identifikatoren für Ressourcen](import-resources-manually.md#resource-import-identifiers-unique-ids).

      1. Wählen Sie unter **Bezeichnereigenschaft** den Typ des Ressourcenbezeichners aus. Beispielsweise kann eine `AWS::DynamoDB::Table`-Ressource mit der `TableName`-Eigenschaft identifiziert werden.

      1. Geben Sie unter **Bezeichnerwert** den tatsächlichen Eigenschaftswert ein. Beispiel, `GamesTables`. 

      1. Wählen Sie **Weiter** aus.

   1. Ändern Sie auf der Seite **Stack-Details angeben** alle Parameter und wählen Sie dann **Weiter** aus. Dadurch wird automatisch ein Änderungssatz erstellt.
**Wichtig**  
Der Importvorgang schlägt fehl, wenn Sie vorhandene Parameter ändern, die einen Erstellungs-, Aktualisierungs- oder Löschvorgang initiieren.

   1. Vergewissern Sie sich auf der *TargetStackName* Seite **Überprüfen**, dass die richtige Ressource importiert wurde, und wählen Sie dann **Ressourcen importieren** aus. Dadurch wird der im letzten Schritt erstellte Änderungssatz automatisch ausgeführt. Alle [Tags auf Stack-Ebene](cfn-console-create-stack.md#configure-stack-options) werden zu diesem Zeitpunkt auf importierte Ressourcen angewendet.

   1. Der Bereich **Ereignisse** der Seite **Stack-Details** für Ihren übergeordneten Stack wird angezeigt.  
![\[Die Registerkarte „Ereignisse“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/import-events.png)
**Anmerkung**  
Es ist nicht erforderlich, die Abweichungserkennung für den übergeordneten Stack nach diesem Importvorgang auszuführen, da die `AWS::CloudFormation::Stack`-Ressource bereits von CloudFormation verwaltet wird.

## Refaktorieren Sie einen Stack mit dem AWS CLI
<a name="refactor-stacks-cli"></a>

1. Geben Sie in der Quellvorlage a `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)für die Ressource an, die Sie verschieben möchten.

   In der folgenden Beispiel-Quellvorlage ist `GamesTable` das Ziel dieser Umgestaltung.  
**Example JSON**  

   ```
   {
       "AWSTemplateFormatVersion": "2010-09-09",
       "Description": "Import test",
       "Resources": {
           "ServiceTable":{
              "Type":"AWS::DynamoDB::Table",
              "Properties":{
                 "TableName":"Service",
                 "AttributeDefinitions":[
                    {
                       "AttributeName":"key",
                       "AttributeType":"S"
                    }
                 ],
                 "KeySchema":[
                    {
                       "AttributeName":"key",
                       "KeyType":"HASH"
                    }
                 ],
                 "ProvisionedThroughput":{
                    "ReadCapacityUnits":5,
                    "WriteCapacityUnits":1
                 }
              }
           },
           "GamesTable": {
               "Type": "AWS::DynamoDB::Table",
               "DeletionPolicy": "Retain",
               "Properties": {
                   "TableName": "Games",
                   "AttributeDefinitions": [
                       {
                           "AttributeName": "key",
                           "AttributeType": "S"
                       }
                   ],
                   "KeySchema": [
                       {
                           "AttributeName": "key",
                           "KeyType": "HASH"
                       }
                   ],
                   "ProvisionedThroughput": {
                       "ReadCapacityUnits": 5,
                       "WriteCapacityUnits": 1
                   }
               }
           }
       }
   }
   ```

1. Aktualisieren Sie den Quell-Stack, um die Löschrichtlinie auf die Ressource anzuwenden.

   ```
   aws cloudformation update-stack --stack-name SourceStackName
   ```

1. Entfernen Sie die Ressource, die zugehörigen Parameter und Ausgaben aus der Quellvorlage und fügen Sie sie dann der Zielvorlage hinzu.

   Die Quellvorlage sieht nun wie folgt aus.  
**Example JSON**  

   ```
   {
       "AWSTemplateFormatVersion": "2010-09-09",
       "Description": "Import test",
       "Resources": {
           "ServiceTable":{
              "Type":"AWS::DynamoDB::Table",
              "Properties":{
                 "TableName":"Service",
                 "AttributeDefinitions":[
                    {
                       "AttributeName":"key",
                       "AttributeType":"S"
                    }
                 ],
                 "KeySchema":[
                    {
                       "AttributeName":"key",
                       "KeyType":"HASH"
                    }
                 ],
                 "ProvisionedThroughput":{
                    "ReadCapacityUnits":5,
                    "WriteCapacityUnits":1
                 }
              }
           }
       }
   }
   ```

   Die folgende Beispiel-Zielvorlage enthält derzeit die `PlayersTable`-Ressource und enthält nun auch `GamesTable`.  
**Example JSON**  

   ```
   {
       "AWSTemplateFormatVersion": "2010-09-09",
       "Description": "Import test",
       "Resources": {
           "PlayersTable": {
               "Type": "AWS::DynamoDB::Table",
               "Properties": {
                   "TableName": "Players",
                   "AttributeDefinitions": [
                       {
                           "AttributeName": "key",
                           "AttributeType": "S"
                       }
                   ],
                   "KeySchema": [
                       {
                           "AttributeName": "key",
                           "KeyType": "HASH"
                       }
                   ],
                   "ProvisionedThroughput": {
                       "ReadCapacityUnits": 5,
                       "WriteCapacityUnits": 1
                   }
               }
           },
           "GamesTable": {
               "Type": "AWS::DynamoDB::Table",
               "DeletionPolicy": "Retain",
               "Properties": {
                   "TableName": "Games",
                   "AttributeDefinitions": [
                       {
                           "AttributeName": "key",
                           "AttributeType": "S"
                       }
                   ],
                   "KeySchema": [
                       {
                           "AttributeName": "key",
                           "KeyType": "HASH"
                       }
                   ],
                   "ProvisionedThroughput": {
                       "ReadCapacityUnits": 5,
                       "WriteCapacityUnits": 1
                   }
               }
           }
       }
   }
   ```

1. Aktualisieren Sie den Quell-Stack, um die `GamesTable`-Ressource und die zugehörigen Parameter und Ausgaben aus dem Stack zu löschen.

   ```
   aws cloudformation update-stack --stack-name SourceStackName
   ```

1. Stellen Sie eine Liste der zu importierenden Ressourcen und ihrer eindeutigen Bezeichner im folgenden JSON-String-Format zusammen. Weitere Informationen finden Sie unter [Identifikatoren für Ressourcen](import-resources-manually.md#resource-import-identifiers-unique-ids).

   ```
   [{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]
   ```

   Alternativ können Sie die JSON-formatierten Parameter in einer Konfigurationsdatei angeben. 

   Um beispielsweise zu importieren`GamesTable`, können Sie eine *ResourcesToImport.txt* Datei erstellen, die die folgende Konfiguration enthält.

   ```
   [
     {
         "ResourceType":"AWS::DynamoDB::Table",
         "LogicalResourceId":"GamesTable",
         "ResourceIdentifier": {
           "TableName":"Games"
         }
     }
   ]
   ```

1. Um einen Änderungssatz zu erstellen, verwenden Sie den folgenden Befehl **create-change-set** und ersetzen den Platzhaltertext. Geben Sie für die Option `--change-set-type` einen Wert von **IMPORT** an. Ersetzen Sie bei der Option `--resources-to-import` die Beispiel-JSON-Zeichenfolge durch die tatsächliche JSON-Zeichenfolge, die Sie gerade erstellt haben.

   ```
   aws cloudformation create-change-set \
       --stack-name TargetStackName --change-set-name ImportChangeSet \
       --change-set-type IMPORT \
       --template-body file://TemplateToImport.json \
       --resources-to-import "'[{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]'"
   ```
**Anmerkung**  
`--resources-to-import` unterstützt kein Inline-YAML. Die Anforderungen für das Escapen von Anführungszeichen in der JSON-Zeichenfolge variieren je nach Ihrem Terminal. Weitere Informationen finden Sie unter [Anführungszeichen in Zeichenketten verwenden](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html#cli-usage-parameters-quoting-strings-containing) im *AWS Command Line Interface -Benutzerhandbuch*.

   Alternativ können Sie auch eine Datei-URL als Eingabe für die Option `--resources-to-import` verwenden, wie im folgenden Beispiel gezeigt.

   ```
   --resources-to-import file://ResourcesToImport.txt
   ```

1. Überprüfen Sie den Änderungssatz, um sicherzustellen, dass die richtige Ressource in den Ziel-Stack importiert wird.

   ```
   aws cloudformation describe-change-set \
       --change-set-name ImportChangeSet
   ```

1. Um den Änderungssatz zu initiieren und die Ressource zu importieren, verwenden Sie den folgenden **execute-change-set**-Befehl und ersetzen den Platzhaltertext. Alle Tags auf Stack-Ebene werden zu diesem Zeitpunkt auf importierte Ressourcen angewendet. Nach erfolgreichem Abschluss des Vorgangs `(IMPORT_COMPLETE)` wird die Ressource erfolgreich importiert.

   ```
   aws cloudformation execute-change-set \
       --change-set-name ImportChangeSet --stack-name TargetStackName
   ```
**Anmerkung**  
Es ist nicht erforderlich, die Abweichungserkennung für den Ziel-Stack nach diesem Importvorgang auszuführen, da die Ressource bereits von CloudFormation verwaltet wird.

# Verschachteln eines vorhandenen Stacks
<a name="resource-import-nested-stacks"></a>

Verwenden Sie das `resource import`-Feature, um einen vorhandenen Stack in einem anderen vorhandenen Stack zu verschachteln. Verschachtelte Stacks sind gängige Komponenten, die Sie in anderen Vorlagen deklarieren und referenzieren. Auf diese Weise können Sie das Kopieren und Einfügen derselben Konfigurationen in Ihre Vorlagen vermeiden und Stack-Aktualisierungen vereinfachen. Wenn Sie über eine Vorlage für eine gängige Komponente verfügen, können Sie die `AWS::CloudFormation::Stack`-Ressource verwenden, um aus einer anderen Vorlage auf diese Vorlage zu verweisen. Weitere Hinweise zu verschachtelten Stacks finden Sie unter [Aufteilung einer Vorlage in wiederverwendbare Teile mit verschachtelten Stapeln](using-cfn-nested-stacks.md).

CloudFormation unterstützt nur eine Verschachtelungsebene. `resource import` Dies bedeutet, dass Sie keinen Stack in einen untergeordneten Stack importieren oder einen Stack importieren können, der untergeordnete Stacks enthält.

Wenn Sie mit dem Importieren noch nicht vertraut sind, empfehlen wir Ihnen, zunächst die einführenden Informationen im Thema [Manuelles Importieren von AWS Ressourcen in einen CloudFormation Stack](import-resources-manually.md) durchzulesen.

## Validierung des Imports von verschachtelten Stacks
<a name="resource-import-nested-stacks-validation"></a>

 CloudFormation Führt während eines Importvorgangs für verschachtelte Stacks die folgenden Validierungen durch.
+ Die verschachtelte `AWS::CloudFormation::Stack`-Definition in der übergeordneten Stack-Vorlage entspricht der tatsächlichen geschachtelten Stack-Vorlage.
+ Die Tags für die verschachtelte `AWS::CloudFormation::Stack`-Definition in der übergeordneten Stack-Vorlage entsprechen den Tags für die tatsächliche verschachtelte Stack-Ressource.

## Verschachteln Sie einen vorhandenen Stack mit dem AWS-Managementkonsole
<a name="resource-import-nested-stacks-console"></a>

1. Fügen Sie die `AWS::CloudFormation::Stack` Ressource mit einem zur übergeordneten Stack-Vorlage hinzu `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html). Im folgenden Beispiel ist die übergeordnete Stapelvorlage `MyNestedStack` das Ziel des Imports.

   **JSON**

   ```
   {
     "AWSTemplateFormatVersion" : "2010-09-09",
     "Resources" : {
       "ServiceTable":{
              "Type":"AWS::DynamoDB::Table",
              "Properties":{
                 "TableName":"Service",
                 "AttributeDefinitions":[
                    {
                       "AttributeName":"key",
                       "AttributeType":"S"
                    }
                 ],
                 "KeySchema":[
                    {
                       "AttributeName":"key",
                       "KeyType":"HASH"
                    }
                 ],
                 "ProvisionedThroughput":{
                    "ReadCapacityUnits":5,
                    "WriteCapacityUnits":1
                 }
              }
           },
       "MyNestedStack" : {
         "Type" : "AWS::CloudFormation::Stack",
         "DeletionPolicy": "Retain",
         "Properties" : {
         "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template",
           "Parameters" : {
             "InstanceType" : "t1.micro",
             "KeyName" : "mykey"
           }
         }
       }
     }
   }
   ```

   **YAML**

   ```
   AWSTemplateFormatVersion: 2010-09-09
   Resources:
     ServiceTable:
       Type: AWS::DynamoDB::Table
       Properties:
         TableName: Service
         AttributeDefinitions:
           - AttributeName: key
             AttributeType: S
         KeySchema:
           - AttributeName: key
             KeyType: HASH
         ProvisionedThroughput:
           ReadCapacityUnits: 5
           WriteCapacityUnits: 1
     MyNestedStack:
       Type: AWS::CloudFormation::Stack
       DeletionPolicy: Retain
       Properties:
         TemplateURL: >-
           https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template
         Parameters:
           InstanceType: t1.micro
           KeyName: mykey
   ```

1. Öffnen Sie die CloudFormation Konsole.

1. Wählen Sie auf der Seite **Stacks** mit ausgewähltem übergeordneten Stack **Stack-Aktionen** und dann **Ressourcen in Stack importieren** aus.  
![\[Die Option „Ressourcen in Stack importieren“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/stack-actions-import.png)

1. Auf der Seite **Importübersicht** finden Sie eine Liste der Dinge, die Sie während dieses Vorgangs angeben müssen. Wählen Sie anschließend **Weiter**.

1. Geben Sie auf der Seite **Vorlage angeben** die aktualisierte übergeordnete Vorlage mit einer der folgenden Methoden an und wählen Sie dann **Weiter** aus.
   + Wählen Sie **Amazon S3-URL** aus und geben Sie dann die URL für Ihre Vorlage im Textfeld an.
   + Wählen Sie **Vorlagendatei hochladen** aus und suchen Sie dann nach Ihrer Vorlage.

1. Identifizieren Sie auf der Seite **Ressourcen identifizieren** die `AWS::CloudFormation::Stack`-Ressource.

   1. Wählen Sie unter **Bezeichnereigenschaft** den Typ des Ressourcenbezeichners aus. Beispielsweise kann eine `AWS::CloudFormation::Stack`-Ressource mit der `StackId`-Eigenschaft identifiziert werden.

   1. Geben Sie unter **Identifikatorwert**den ARN des Stapels ein, den Sie importieren. Beispiel, `arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10`.  
![\[Die Seite „Ressourcen identifizieren“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/resource-import-stackid.png)

   1. Wählen Sie **Weiter** aus.

1. Ändern Sie auf der Seite **Stack-Details angeben** alle Parameter und wählen Sie dann **Weiter** aus. Dadurch wird automatisch ein Änderungssatz erstellt.
**Wichtig**  
Der Importvorgang schlägt fehl, wenn Sie vorhandene Parameter ändern, die einen Erstellungs-, Aktualisierungs- oder Löschvorgang initiieren.

1. Vergewissern Sie sich auf der *MyParentStack* Seite **Überprüfen**, dass die richtige Ressource importiert wurde, und wählen Sie dann **Ressourcen importieren** aus. Dadurch wird der im letzten Schritt erstellte Änderungssatz automatisch ausgeführt. Alle Tags auf Stack-Ebene werden zu diesem Zeitpunkt auf importierte Ressourcen angewendet.

1. Der Bereich **Ereignisse** der Seite **Stack-Details** für Ihren übergeordneten Stack wird angezeigt.  
![\[Die Registerkarte „Ereignisse“ in der Konsole.\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/import-events.png)
**Anmerkung**  
Es ist nicht erforderlich, die Abweichungserkennung für den übergeordneten Stack nach diesem Importvorgang auszuführen, da die `AWS::CloudFormation::Stack`-Ressource bereits von CloudFormation verwaltet wurde.

## Verschachteln Sie einen vorhandenen Stapel mithilfe der AWS CLI
<a name="resource-import-nested-stacks-cli"></a>

1. Fügen Sie die `AWS::CloudFormation::Stack` Ressource mit einem zur übergeordneten Stack-Vorlage hinzu `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html). Im folgenden Beispiel einer übergeordneten Vorlage ist `MyNestedStack` das Ziel des Imports.

   **JSON**

   ```
   {
     "AWSTemplateFormatVersion" : "2010-09-09",
     "Resources" : {
       "ServiceTable":{
              "Type":"AWS::DynamoDB::Table",
              "Properties":{
                 "TableName":"Service",
                 "AttributeDefinitions":[
                    {
                       "AttributeName":"key",
                       "AttributeType":"S"
                    }
                 ],
                 "KeySchema":[
                    {
                       "AttributeName":"key",
                       "KeyType":"HASH"
                    }
                 ],
                 "ProvisionedThroughput":{
                    "ReadCapacityUnits":5,
                    "WriteCapacityUnits":1
                 }
              }
           },
       "MyNestedStack" : {
         "Type" : "AWS::CloudFormation::Stack",
         "DeletionPolicy": "Retain",
         "Properties" : {
         "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template",
           "Parameters" : {
             "InstanceType" : "t1.micro",
             "KeyName" : "mykey"
           }
         }
       }
     }
   }
   ```

   **YAML**

   ```
   AWSTemplateFormatVersion: 2010-09-09
   Resources:
     ServiceTable:
       Type: AWS::DynamoDB::Table
       Properties:
         TableName: Service
         AttributeDefinitions:
           - AttributeName: key
             AttributeType: S
         KeySchema:
           - AttributeName: key
             KeyType: HASH
         ProvisionedThroughput:
           ReadCapacityUnits: 5
           WriteCapacityUnits: 1
     MyNestedStack:
       Type: AWS::CloudFormation::Stack
       DeletionPolicy: Retain
       Properties:
         TemplateURL: >-
           https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template
         Parameters:
           InstanceType: t1.micro
           KeyName: mykey
   ```

1. Stellen Sie eine JSON-Zeichenkette wie im folgenden Beispiel zusammen, mit diesen Änderungen: 
   + *MyNestedStack*Ersetzen Sie durch die logische ID der Zielressource, wie in der Vorlage angegeben.
   + *arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10*Ersetzen Sie es durch den ARN des Stacks, den Sie importieren möchten.

   ```
   [{"ResourceType":"AWS::CloudFormation::Stack","LogicalResourceId":"MyNestedStack","ResourceIdentifier":{"StackId":"arn:aws:cloudformation:us-east-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10"}}]
   ```

   Alternativ können Sie die Parameter auch in einer Konfigurationsdatei angeben. 

   Um beispielsweise zu importieren`MyNestedStack`, könnten Sie eine *ResourcesToImport.txt* Datei erstellen, die die folgende Konfiguration enthält.

   **JSON**

   ```
   [
     {
         "ResourceType":"AWS::CloudFormation::Stack",
         "LogicalResourceId":"MyNestedStack",
         "ResourceIdentifier": {
           "StackId":"arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10"
         }
     }
   ]
   ```

   **YAML**

   ```
   ResourceType: AWS::CloudFormation::Stack
     LogicalResourceId: MyNestedStack
     ResourceIdentifier:
       StackId: >-
         arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10
   ```

1. Um einen Änderungssatz zu erstellen, verwenden Sie den folgenden Befehl **create-change-set** und ersetzen den Platzhaltertext. Geben Sie für die Option `--change-set-type` einen Wert von **IMPORT** an. Ersetzen Sie bei der Option `--resources-to-import` die Beispiel-JSON-Zeichenfolge durch die tatsächliche JSON-Zeichenfolge, die Sie gerade erstellt haben.

   ```
   aws cloudformation create-change-set \
       --stack-name MyParentStack --change-set-name ImportChangeSet \
       --change-set-type IMPORT \
       --template-body file://TemplateToImport.json \
       --resources-to-import '[{"ResourceType":"AWS::CloudFormation::Stack","LogicalResourceId":"MyNestedStack","ResourceIdentifier":{"StackId":"arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10"}}]'
   ```
**Anmerkung**  
`--resources-to-import` unterstützt kein Inline-YAML. Die Anforderungen für das Escapen von Anführungszeichen in der JSON-Zeichenfolge variieren je nach Ihrem Terminal. Weitere Informationen finden Sie unter [Anführungszeichen in Zeichenketten verwenden](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html#cli-usage-parameters-quoting-strings-containing) im *AWS Command Line Interface -Benutzerhandbuch*.

   Alternativ können Sie auch eine Datei-URL als Eingabe für die Option `--resources-to-import` verwenden, wie im folgenden Beispiel gezeigt.

   ```
   --resources-to-import file://ResourcesToImport.txt
   ```

   Wenn dieser Befehl erfolgreich ist, erhalten Sie die folgende Beispielausgabe.

   ```
   {
       "Id": "arn:aws:cloudformation:us-west-2:12345678910:changeSet/ImportChangeSet/8ad75b3f-665f-46f6-a200-0b4727a9442e",
       "StackId": "arn:aws:cloudformation:us-west-2:12345678910:stack/MyParentStack/4e345b70-1281-11ef-b027-027366d8e82b"
   }
   ```

1. Überprüfen Sie den Änderungssatz, um sicherzustellen, dass der richtige Stack importiert wird.

   ```
   aws cloudformation describe-change-set --change-set-name ImportChangeSet
   ```

1. Um den Änderungssatz zu initiieren und den Stack in den übergeordneten QuellStack zu importieren, verwenden Sie den folgenden **execute-change-set**-Befehl und ersetzen den Platzhaltertext. Alle [Tags auf Stack-Ebene](cfn-console-create-stack.md#configure-stack-options) werden zu diesem Zeitpunkt auf importierte Ressourcen angewendet. Nach erfolgreichem Abschluss des Importvorgangs `(IMPORT_COMPLETE)` ist der Stack erfolgreich verschachtelt.

   ```
   aws cloudformation execute-change-set --change-set-name ImportChangeSet
   ```
**Anmerkung**  
Es ist nicht erforderlich, die Abweichungserkennung für den übergeordneten Stack nach diesem Importvorgang auszuführen, da die `AWS::CloudFormation::Stack`-Ressource bereits von CloudFormation verwaltet wird.