

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.

# Beheben von Abweichungen mit einer Importoperation
<a name="resource-import-resolve-drift"></a>

Es kann Fälle geben, in denen die Konfiguration einer Ressource von der beabsichtigten Konfiguration abgewichen ist und Sie die neue Konfiguration als vorgesehene Konfiguration akzeptieren möchten. In den meisten Fällen würden Sie die Abweichungsergebnisse beheben, indem Sie die Ressourcendefinition in der Stack-Vorlage mit einer neuen Konfiguration aktualisieren und dann eine Stack-Aktualisierung ausführen. Wenn die neue Konfiguration jedoch eine Ressourceneigenschaft aktualisiert, die ersetzt werden muss, wird die Ressource während der Stack-Aktualisierung neu erstellt. Wenn Sie die vorhandene Ressource beibehalten möchten, können Sie das Ressourcenimportfeature verwenden, um die Ressource zu aktualisieren und die Abweichungsergebnisse zu beheben, ohne dass die Ressource ersetzt wird.

Das Beheben der Abweichung für eine Ressource durch eine Importoperation besteht aus den folgenden grundlegenden Schritten:
+ [Fügen Sie der Ressource ein DeletionPolicy Attribut hinzu, das auf Retain festgelegt](#resource-import-resolve-drift-console-step-01-update-stack) ist. Dadurch wird sichergestellt, dass die vorhandene Ressource beibehalten und nicht gelöscht wird, wenn sie aus dem Stack entfernt wird.
+ [Entfernen Sie die Ressource aus der Vorlage und führen Sie eine Stack-Aktualisierungsoperation aus](#resource-import-resolve-drift-console-step-02-remove-drift). Dadurch wird die Ressource aus dem Stack entfernt, aber nicht gelöscht.
+ [Beschreiben Sie den tatsächlichen Zustand der Ressource in der Stack-Vorlage und importieren Sie dann die vorhandene Ressource wieder in den Stack](#resource-import-resolve-drift-console-step-03-update-template). Dadurch wird die Ressource wieder in den Stack eingefügt und die Unterschiede in den Eigenschaften behoben, die die Abweichungsergebnisse verursacht haben.

Weitere Informationen zum Ressourcenimport finden Sie unter [Manuelles Importieren von AWS Ressourcen in einen CloudFormation Stack](import-resources-manually.md). Eine Liste der Ressourcen, die den Import unterstützen, finden Sie unter [Unterstützung für Ressourcentypen](resource-import-supported-resources.md).

In diesem Beispiel verwenden wir die folgende Vorlage mit der Bezeichnung `templateToImport.json`.

------
#### [ 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"
                 }
              ],
              "BillingMode": "PROVISIONED",
              "ProvisionedThroughput":{
                 "ReadCapacityUnits":5,
                 "WriteCapacityUnits":1
              }
           }
        },
        "GamesTable": {
            "Type": "AWS::DynamoDB::Table",
            "Properties": {
                "TableName": "Games",
                "AttributeDefinitions": [
                    {
                        "AttributeName": "key",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "key",
                        "KeyType": "HASH"
                    }
                ],
                "BillingMode": "PROVISIONED",
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 1
                }
            }
        }
    }
}
```

------
#### [ Example YAML ]

```
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
      BillingMode: PROVISIONED
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 1
  GamesTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: Games
      AttributeDefinitions:
        - AttributeName: key
          AttributeType: S
      KeySchema:
        - AttributeName: key
          KeyType: HASH
      BillingMode: PROVISIONED
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 1
```

------

In diesem Beispiel nehmen wir an, dass ein Benutzer eine Ressource außerhalb von geändert hat CloudFormation. Nachdem eine Abweichungserkennung ausgeführt wurde, haben wir festgestellt, dass für `GamesTable` `BillingMode` in `PAY_PER_REQUEST` geändert wurde. Weitere Informationen über Drift Detect finden Sie unter [Erkennen Sie nicht verwaltete Konfigurationsänderungen an Stacks und Ressourcen mit Drift Detection](using-cfn-stack-drift.md).

![Die Abweichungsergebnisse zeigen die erwarteten und tatsächlichen Ergebnisse in der Konsole an.](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/images/drift-results-gamestable.png)


Unser Stack ist jetzt veraltet, unsere Ressourcen sind live, aber wir wollen die vorgesehene Ressourcenkonfiguration beibehalten. Dies ist möglich, indem wir die Abweichung durch eine Importoperation beheben, ohne die Services zu unterbrechen.

## Beheben Sie Abweichungen bei einem Importvorgang mithilfe der CloudFormation Konsole
<a name="resource-import-resolve-drift-console"></a>

### Schritt 1. Aktualisieren des Stacks mit der Löschrichtlinie Retain (Beibehalten)
<a name="resource-import-resolve-drift-console-step-01-update-stack"></a>

**So aktualisieren Sie den Stack mithilfe eines `DeletionPolicy`-Attributs mit der Option `Retain`**

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 mit der Abweichung aus.

1. Wählen Sie **Update (Aktualisieren)** und dann im Bereich mit den Stackdetails die Option **Replace current template (Aktuelle Vorlage ersetzen)**.

1. Geben Sie auf der Seite **Specify template (Vorlage angeben)** mit einer der folgenden Methoden die aktualisierte Vorlage an, die das `DeletionPolicy`-Attribut mit der Option `Retain` enthält:
   + 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.

   Wählen Sie anschließend **Weiter**.

1. Überprüfen Sie die Seite **Specify stack details (Stackdetails angeben)** und wählen Sie **Next (Weiter)**.

1. Überprüfen Sie die Seite **Configure stack options (Stackoptionen konfigurieren)** und wählen Sie **Next (Weiter)**.

1. Wählen Sie auf der {{stack-name}} Seite **„Überprüfen**“ die Option Stack **aktualisieren** aus.

*Ergebnisse*: Auf der Seite **Events (Ereignisse)** Ihres Stacks lautet der Status `UPDATE_COMPLETE`.

Um Abweichungen durch einen Importvorgang zu beheben, ohne die Dienste zu unterbrechen, geben Sie a `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)für die Ressourcen an, die Sie aus Ihrem Stack entfernen möchten. Im folgenden Beispiel haben wir der `GamesTable` Ressource [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)das Attribut set to `Retain` hinzugefügt.

------
#### [ Example JSON ]

```
    "GamesTable": {
        "Type": "AWS::DynamoDB::Table",
        "DeletionPolicy": "Retain",
        "Properties": {
            "TableName": "Games",
```

------
#### [ Example YAML ]

```
  GamesTable:
    Type: AWS::DynamoDB::Table
    DeletionPolicy: Retain
    Properties:
      TableName: Games
```

------

### Schritt 2. Entfernen von abgewichenen Ressourcen, zugehörigen Parametern und Ausgaben
<a name="resource-import-resolve-drift-console-step-02-remove-drift"></a>

**So entfernen Sie abgewichene Ressourcen, zugehörige Parameter und Ausgaben**

1. Wählen Sie **Update (Aktualisieren)** und dann im Bereich mit den Stackdetails die Option **Replace current template (Aktuelle Vorlage ersetzen)**.

1. Geben Sie mit einer der folgenden Methoden auf der Seite **Specify template (Vorlage angeben)** Ihre aktualisierte Vorlage mit ihren Ressourcen, zugehörigen Parametern und Ausgaben an, die aus der Stack-Vorlage entfernt wurden:
   + 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.

   Wählen Sie anschließend **Weiter**.

1. Überprüfen Sie die Seite **Specify stack details (Stackdetails angeben)** und wählen Sie **Next (Weiter)**.

1. Überprüfen Sie die Seite **Configure stack options (Stackoptionen konfigurieren)** und wählen Sie **Next (Weiter)**.

1. Wählen Sie auf der {{stack-name}} Seite **„Überprüfen**“ die Option **Stack aktualisieren** aus.

*Ergebnisse*: Die **Logical ID (Logische ID)** `GamesTable` hat den Status `DELETE_SKIPPED` auf der Seite **Events (Ereignisse)** Ihres Stacks.

Warten Sie, bis der Stack-Aktualisierungsvorgang CloudFormation abgeschlossen ist. Entfernen Sie nach Abschluss der Stack-Aktualisierungsoperation die Ressource, die zugehörigen Parameter und Ausgaben aus der Stack-Vorlage. Importieren Sie dann die aktualisierte Vorlage. Nach Abschluss dieser Aktionen sieht die Beispielvorlage jetzt 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"
                 }
              ],
              "BillingMode": "PROVISIONED",
              "ProvisionedThroughput":{
                 "ReadCapacityUnits":5,
                 "WriteCapacityUnits":1
              }
           }
        }
    }
}
```

------
#### [ Example YAML ]

```
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
      BillingMode: PROVISIONED
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 1
```

------

### Schritt 3. Aktualisieren der Vorlage, damit Sie dem Live-Status Ihrer Ressourcen entspricht
<a name="resource-import-resolve-drift-console-step-03-update-template"></a>

**So aktualisieren Sie die Vorlage, damit sie dem Live-Status von Ressourcen entspricht**

1. Um die aktualisierte Vorlage zu importieren, wählen Sie **Stack actions (Stack-Aktionen)** und dann **Import resources into stack (Ressourcen in Stack importieren)**.  
![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. Prüfen Sie auf der Seite **Import overview (Importübersicht)** die Liste der Dinge, die Sie während dieser Operation angeben müssen, und wählen Sie dann **Next (Weiter)**.

1. Geben Sie auf der Seite **Specify template (Vorlage angeben)** mit einer der folgenden Methoden Ihre aktualisierte Vorlage an:
   + 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.

   Wählen Sie anschließend **Weiter**.

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. Die Eigenschaft `TableName` identifiziert beispielsweise die Ressource `AWS::DynamoDB::Table`.

   1. Geben Sie unter **Identifier value (Bezeichnerwert)** den tatsächlichen Eigenschaftswert ein. In der Beispielvorlage lautet der `TableName` für die `GamesTable`-Ressource `Games`.

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

1. Überprüfen Sie die Seite **Specify stack details (Stack-Details angeben)** und wählen Sie **Next (Weiter)**.

1. Überprüfen Sie auf der Seite **Import overview (Importübersicht)**, welche Ressourcen importiert werden, und wählen Sie dann **Import resources (Ressourcen importieren)**. Dadurch wird der Ressourcentyp `AWS::DynamoDB::Table` zurück in Ihren Stack importiert.

*Ergebnisse*: In diesem Beispiel haben wir die Ressourcenabweichung durch eine Importoperation behoben, ohne Services zu unterbrechen. Sie können den Fortschritt einer Importaktion in der CloudFormation Konsole auf der Registerkarte Ereignisse überprüfen. Importierte Ressourcen weisen den Status `IMPORT_COMPLETE` auf, gefolgt vom Status `CREATE_COMPLETE` mit dem Statusgrund **Resource import complete (Ressourcenimport abgeschlossen)**.

Warten Sie, bis der Stack-Aktualisierungsvorgang CloudFormation abgeschlossen ist. Aktualisieren Sie Ihre Vorlage nach Abschluss der Stack-Aktualisierungsoperation so, dass sie dem tatsächlichen, abgewichenen Zustand Ihrer Ressourcen entspricht. Beispiel: `BillingMode` wird auf `PAY_PER_REQUEST` festgelegt und `ReadCapacityUnits` sowie `WriteCapacityUnits` werden auf `0` festgelegt.

------
#### [ 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"
                 }
              ],
              "BillingMode": "PROVISIONED",
              "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"
                    }
                ],
                "BillingMode": "PAY_PER_REQUEST",
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 0,
                    "WriteCapacityUnits": 0
                }
            }
        }
    }
}
```

------
#### [ Example YAML ]

```
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
      BillingMode: PROVISIONED
      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
      BillingMode: PAY_PER_REQUEST
      ProvisionedThroughput:
        ReadCapacityUnits: 0
        WriteCapacityUnits: 0
```

------