

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengatasi penyimpangan dengan operasi impor
<a name="resource-import-resolve-drift"></a>

Mungkin ada kasus di mana konfigurasi sumber daya telah menyimpang dari konfigurasi yang dimaksudkan dan Anda ingin menerima konfigurasi baru sebagai konfigurasi yang dimaksudkan. Dalam kebanyakan kasus, Anda akan mengatasi hasil penyimpangan dengan memperbarui definisi sumber daya di templat tumpukan dengan konfigurasi baru dan kemudian melakukan pembaruan tumpukan. Namun, jika konfigurasi baru memperbarui properti sumber daya yang memerlukan penggantian, sumber daya akan dibuat ulang selama pembaruan tumpukan. Jika Anda ingin mempertahankan sumber daya yang ada, Anda dapat menggunakan fitur impor sumber daya untuk memperbarui sumber daya dan menyelesaikan hasil penyimpangan tanpa menyebabkan sumber daya diganti.

Mengatasi penyimpangan untuk sumber daya melalui operasi impor terdiri dari langkah-langkah dasar berikut:
+ [Tambahkan DeletionPolicy atribut, atur ke Retain, ke sumber daya](#resource-import-resolve-drift-console-step-01-update-stack). Hal ini memastikan sumber daya yang ada dipertahankan bukannya dihapus saat dihilangkan dari tumpukan.
+ [Hapus sumber daya dari templat dan jalankan operasi pembaruan tumpukan](#resource-import-resolve-drift-console-step-02-remove-drift). Hal ini akan menghilangkan sumber daya dari tumpukan, tetapi tidak menghapusnya.
+ [Jelaskan status aktual sumber daya dalam templat tumpukan, lalu impor kembali sumber daya yang ada ke dalam tumpukan](#resource-import-resolve-drift-console-step-03-update-template). Hal ini menambahkan sumber daya kembali ke tumpukan dan mengatasi perbedaan properti yang menyebabkan hasil penyimpangan.

Untuk informasi selengkapnya tentang impor sumber daya, lihat[Impor AWS sumber daya ke CloudFormation tumpukan secara manual](import-resources-manually.md). Untuk daftar sumber daya yang mendukung impor, lihat[Dukungan jenis sumber daya](resource-import-supported-resources.md).

Dalam contoh ini, kita menggunakan template berikut, bernama`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
```

------

Dalam contoh ini, mari kita asumsikan pengguna mengubah sumber daya di luar CloudFormation. Setelah menjalankan deteksi penyimpangan, kita menemukan bahwa `GamesTable` telah dimodifikasi `BillingMode` menjadi `PAY_PER_REQUEST`. Untuk informasi lebih lanjut tentang deteksi drift, lihat[Mendeteksi perubahan konfigurasi yang tidak terkelola pada tumpukan dan sumber daya dengan deteksi drift](using-cfn-stack-drift.md).

![Hasil tumpukan menampilkan hasil yang diharapkan dan aktual di konsol.](http://docs.aws.amazon.com/id_id/AWSCloudFormation/latest/UserGuide/images/drift-results-gamestable.png)


Tumpukan kita sekarang sudah kedaluwarsa, sumber daya kita aktif, tetapi kita ingin mempertahankan konfigurasi sumber daya yang dimaksud. Kita dapat melakukan ini dengan mengatasi penyimpangan melalui operasi impor, tanpa mengganggu layanan.

## Selesaikan drift dengan operasi impor menggunakan konsol CloudFormation
<a name="resource-import-resolve-drift-console"></a>

### Langkah 1. Memperbarui tumpukan dengan kebijakan penghapusan Pertahankan
<a name="resource-import-resolve-drift-console-step-01-update-stack"></a>

**Untuk memperbarui tumpukan menggunakan atribut `DeletionPolicy` dengan opsi `Retain`**

1. Masuk ke Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pada halaman **Stacks**, pilih tumpukan yang telah hanyut.

1. Pilih **Perbarui**, lalu pilih **Ganti templat saat ini** dari panel detail tumpukan.

1. Di halaman **Tentukan templat**, berikan templat terbaru Anda yang berisi atribut `DeletionPolicy` dengan opsi `Retain` menggunakan salah satu metode berikut:
   + Pilih **URL Amazon S3**, lalu tentukan URL untuk templat Anda di kotak teks.
   + Pilih **Unggah file templat**, lalu telusuri templat Anda.

   Lalu, pilih **Selanjutnya**.

1. Tinjau halaman **Tentukan detail tumpukan** dan pilih **Selanjutnya**.

1. Tinjau halaman **Konfigurasikan opsi tumpukan**, dan pilih **Selanjutnya**.

1. Pada {{stack-name}} halaman **Review**, pilih **Update stack**.

*Hasil*: Di halaman **Peristiwa** dari tumpukan Anda, statusnya adalah `UPDATE_COMPLETE`.

Untuk mengatasi drift melalui operasi impor, tanpa mengganggu layanan, tentukan sumber daya yang `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)ingin Anda hapus dari tumpukan Anda. Dalam contoh berikut, kita telah menambahkan [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)atribut, set ke`Retain`, ke `GamesTable` sumber daya.

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

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

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

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

------

### Langkah 2. Menghapus sumber daya menyimpang, parameter terkait, dan output
<a name="resource-import-resolve-drift-console-step-02-remove-drift"></a>

**Untuk menghapus sumber daya menyimpang, parameter terkait, dan output**

1. Pilih **Perbarui**, lalu pilih **Ganti templat saat ini** dari panel detail tumpukan.

1. Di halaman **Tentukan templat**, berikan templat Anda yang diperbarui dengan sumber dayanya, parameter terkait, dan output yang dihapus dari templat tumpukan menggunakan salah satu metode berikut:
   + Pilih **URL Amazon S3**, lalu tentukan URL untuk templat Anda di kotak teks.
   + Pilih **Unggah file templat**, lalu telusuri templat Anda.

   Lalu, pilih **Selanjutnya**.

1. Tinjau halaman **Tentukan detail tumpukan** dan pilih **Selanjutnya**.

1. Tinjau halaman **Konfigurasikan opsi tumpukan**, dan pilih **Selanjutnya**.

1. Pada {{stack-name}} halaman **Review**, pilih **Update stack**.

*Hasil*: **ID Logis** `GamesTable` memiliki status `DELETE_SKIPPED` di halaman **Peristiwa** dari tumpukan Anda.

Tunggu hingga CloudFormation menyelesaikan operasi pembaruan tumpukan. Setelah operasi pembaruan tumpukan selesai, hapus sumber daya, parameter terkait, dan output dari templat tumpukan. Kemudian, impor templat yang telah diperbarui. Setelah menyelesaikan tindakan ini, templat contoh sekarang terlihat seperti berikut ini.

------
#### [ 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
```

------

### Langkah 3. Perbarui templat untuk mencocokkan status aktif sumber daya Anda
<a name="resource-import-resolve-drift-console-step-03-update-template"></a>

**Untuk memperbarui templat untuk mencocokkan status aktif sumber daya Anda**

1. Untuk mengimpor template yang diperbarui, pilih **Tindakan tumpukan** lalu pilih **Impor sumber daya ke tumpukan**.  
![Opsi Impor sumber daya ke tumpukan di konsol.](http://docs.aws.amazon.com/id_id/AWSCloudFormation/latest/UserGuide/images/stack-actions-import.png)

1. Tinjau halaman **Gambaran umum impor** daftar hal-hal yang harus Anda berikan selama operasi ini, lalu pilih **Selanjutnya**.

1. Di halaman **Tentukan templat**, berikan templat Anda yang telah diperbarui menggunakan salah satu metode berikut:
   + Pilih **URL Amazon S3**, lalu tentukan URL untuk templat Anda di kotak teks.
   + Pilih **Unggah file templat**, lalu telusuri templat Anda.

   Lalu, pilih **Selanjutnya**.

1. Di halaman **Identifikasi sumber daya**, identifikasi setiap sumber daya target. Untuk informasi selengkapnya, lihat [Pengidentifikasi sumber daya](import-resources-manually.md#resource-import-identifiers-unique-ids).

   1. Di bawah **Properti pengenal**, pilih jenis pengenal sumber daya. Misalnya, properti `TableName` mengidentifikasi sumber daya `AWS::DynamoDB::Table`.

   1. Di bawah **Nilai pengenal**, masukkan nilai properti yang sebenarnya. Dalam contoh templat, `TableName` untuk sumber daya `GamesTable` adalah `Games`.

   1. Pilih **Berikutnya**.

1. Tinjau halaman **Tentukan detail tumpukan**, dan pilih **Selanjutnya**.

1. Di halaman **Gambaran umum impor**, tinjau sumber daya yang diimpor, kemudian pilih **Impor sumber daya**. Ini akan mengimpor jenis sumber daya `AWS::DynamoDB::Table` kembali ke tumpukan Anda.

*Hasil*: Dalam contoh ini, kita mengatasi penyimpangan sumber daya melalui operasi impor, tanpa mengganggu layanan. Anda dapat memeriksa kemajuan tindakan impor di CloudFormation konsol di tab Acara. Sumber daya yang diimpor akan memiliki status `IMPORT_COMPLETE` diikuti oleh status `CREATE_COMPLETE` dengan **Impor sumber daya selesai**sebagai alasan status.

Tunggu hingga CloudFormation menyelesaikan operasi pembaruan tumpukan. Setelah operasi pembaruan tumpukan selesai, perbarui templat Anda agar sesuai dengan status aktual sumber daya Anda yang menyimpang. Misalnya, `BillingMode` akan diatur ke `PAY_PER_REQUEST` dan `ReadCapacityUnits` serta `WriteCapacityUnits` akan diatur ke `0`.

------
#### [ 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
```

------