

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

# Mengimpor sumber daya yang ada ke dalam tumpukan
<a name="resource-import-existing-stack"></a>

Topik ini menunjukkan cara mengimpor AWS sumber daya yang ada ke tumpukan yang ada dengan mendeskripsikannya dalam templat. Untuk memindai sumber daya yang ada dan secara otomatis membuat templat yang dapat Anda gunakan untuk mengimpor sumber daya yang ada ke CloudFormation atau mereplikasi sumber daya di akun baru, lihat[Hasilkan templat dari sumber daya yang ada dengan generator IAc](generate-IaC.md).

**Prasyarat**

Sebelum memulai, Anda harus memiliki hal-hal berikut:
+ Templat yang menggambarkan seluruh tumpukan, termasuk kedua sumber daya yang sudah menjadi bagian dari tumpukan dan sumber daya untuk mengimpor. Simpan template secara lokal atau di bucket Amazon S3. 

  **Untuk mendapatkan salinan template tumpukan yang sedang berjalan**

  1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/).

  1. Dari daftar tumpukan, pilih tumpukan tempat Anda ingin mengambil template dari.

  1. Di panel detail tumpukan, pilih **Template** tab, lalu pilih **Salin ke clipboard**.

  1. Tempelkan kode ke editor teks untuk mulai menambahkan sumber daya lain ke template.
+ Untuk setiap sumber daya yang ingin Anda impor, sertakan yang berikut ini:
  + properti dan nilai properti yang menentukan konfigurasi sumber daya saat ini.
  + pengenal unik untuk sumber daya, seperti nama sumber daya. Untuk informasi selengkapnya, lihat [Pengidentifikasi sumber daya](import-resources-manually.md#resource-import-identifiers-unique-ids).
  + [DeletionPolicyatribut](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html).

**Topics**
+ [Contoh Templat](#resource-import-existing-stack-example-template)
+ [Impor sumber daya yang ada ke tumpukan menggunakan Konsol Manajemen AWS](#resource-import-existing-stack-console)
+ [Impor sumber daya yang ada ke tumpukan menggunakan AWS CLI](#resource-import-existing-stack-cli)

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

Dalam panduan ini, kami menganggap Anda menggunakan contoh template berikut, yang disebut`TemplateToImport.json`, yang menentukan dua tabel DynamoDB. `ServiceTable`saat ini merupakan bagian dari tumpukan, dan `GamesTable` merupakan tabel yang ingin Anda impor.

**catatan**  
Template ini dimaksudkan sebagai contoh saja. Untuk menggunakannya untuk tujuan pengujian Anda sendiri, ganti sumber daya sampel dengan sumber daya dari akun Anda. 

```
{
    "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
                }
            }
        }
    }
}
```

## Impor sumber daya yang ada ke tumpukan menggunakan Konsol Manajemen AWS
<a name="resource-import-existing-stack-console"></a>

**catatan**  
 CloudFormation Konsol tidak mendukung penggunaan fungsi intrinsik `Fn::Transform` saat mengimpor sumber daya. Anda dapat menggunakan AWS CLI untuk mengimpor sumber daya yang menggunakan `Fn::Transform` fungsi tersebut.

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 **Tumpukan**, pilih tumpukan yang sumber dayanya ingin Anda impor.

1. Pilih **Tumpukan tindakan**, 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**, dan kemudian pilih **Selanjutnya**.

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

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 pengidentifikasi**, pilih jenis pengidentifikasi sumber daya. Misalnya, sumber daya `AWS::DynamoDB::Table` dapat diidentifikasi menggunakan `TableName` properti.

   1. Di bawah **Nilai pengidentifikasi**, ketikkan nilai properti yang sebenarnya. Misalnya, `TableName` untuk `GamesTable` sumber daya di templat contoh adalah `Games`.

   1. Pilih **Berikutnya**.

1. Pada halaman **Tentukan detail tumpukan**, perbarui parameter apapun, dan kemudian pilih **Selanjutnya**. Ini secara otomatis membuat set perubahan.
**catatan**  
Operasi impor gagal jika Anda mengubah parameter yang sudah ada yang memulai operasi membuat, memperbarui, atau menghapus.

1. Pada *stack-name* halaman **Tinjauan**, tinjau sumber daya yang akan diimpor, lalu pilih **Impor sumber daya**. Ini secara otomatis menjalankan set perubahan yang dibuat pada langkah terakhir. Semua tanda stack-level diterapkan pada sumber daya yang diimpor saat ini. Untuk informasi selengkapnya, lihat [Konfigurasikan opsi tumpukan](cfn-console-create-stack.md#configure-stack-options).

   Halaman **Peristiwa** untuk menampilkan tumpukan.  
![\[Tab Peristiwa di konsol.\]](http://docs.aws.amazon.com/id_id/AWSCloudFormation/latest/UserGuide/images/import-events.png)

1. (Opsional) Jalankan deteksi drift pada tumpukan untuk memastikan templat dan konfigurasi sebenarnya cocok dengan sumber daya yang diimpor. Untuk informasi lebih lanjut tentang mendeteksi penyimpangan, lihat. [Mendeteksi penyimpangan di seluruh tumpukan CloudFormation](detect-drift-stack.md)

1. (Opsional) Jika sumber daya yang diimpor tidak cocok dengan konfigurasi templat yang diharapkan, perbaiki konfigurasi templat atau perbarui sumber daya secara langsung. Untuk informasi selengkapnya tentang mengimpor sumber daya hanyut, lihat. [Mengatasi penyimpangan dengan operasi impor](resource-import-resolve-drift.md)

## Impor sumber daya yang ada ke tumpukan menggunakan AWS CLI
<a name="resource-import-existing-stack-cli"></a>

1. Untuk mempelajari properti mana yang mengidentifikasi setiap jenis sumber daya dalam template, jalankan **get-template-summary** perintah, tentukan URL S3 template. Misalnya, sumber daya `AWS::DynamoDB::Table` dapat diidentifikasi menggunakan `TableName` properti. Untuk `GamesTable` sumber daya dalam templat contoh, nilai `TableName` adalah `Games`. Anda akan membutuhkan informasi ini di langkah berikutnya.

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

   Untuk informasi selengkapnya, lihat [Pengidentifikasi sumber daya](import-resources-manually.md#resource-import-identifiers-unique-ids).

1. Buat daftar sumber daya aktual untuk diimpor dan pengenal uniknya dalam format string JSON berikut.

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

   Atau, Anda dapat menentukan parameter berformat JSON dalam file konfigurasi. 

   Misalnya, untuk mengimpor`GamesTable`, Anda dapat membuat *ResourcesToImport.txt* file yang berisi konfigurasi berikut.

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

1. Untuk membuat set perubahan, gunakan **create-change-set** perintah berikut dan ganti teks placeholder. Untuk `--change-set-type` opsi, tentukan nilai**IMPORT**. Untuk `--resources-to-import` opsi, ganti string JSON sampel dengan string JSON aktual yang baru saja Anda buat.

   ```
   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"}}]'
   ```
**catatan**  
`--resources-to-import`tidak mendukung YAMAL sebaris. Persyaratan untuk menghindari tanda kutip dalam string JSON bervariasi tergantung pada terminal Anda. Untuk informasi selengkapnya, lihat [Menggunakan tanda kutip di dalam string](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html#cli-usage-parameters-quoting-strings-containing) di *AWS Command Line Interface Panduan Pengguna*.

   Atau, Anda dapat menggunakan URL file sebagai masukan untuk `--resources-to-import` opsi, seperti yang ditunjukkan pada contoh berikut.

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

1. Tinjau perubahan yang ditetapkan untuk memastikan sumber daya yang benar akan diimpor.

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

1. Untuk memulai set perubahan dan mengimpor sumber daya, gunakan **execute-change-set** perintah berikut dan ganti teks placeholder. Semua tanda stack-level diterapkan pada sumber daya yang diimpor saat ini. Untuk informasi selengkapnya, lihat [Konfigurasikan opsi tumpukan](cfn-console-create-stack.md#configure-stack-options). Setelah berhasil menyelesaikan operasi `(IMPORT_COMPLETE)`, sumber daya berhasil diimpor.

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

1. (Opsional) Jalankan deteksi drift pada `IMPORT_COMPLETE` tumpukan untuk memastikan templat dan konfigurasi sebenarnya cocok dengan sumber daya yang diimpor. Untuk informasi lebih lanjut tentang mendeteksi penyimpangan, lihat. [Mendeteksi penyimpangan di seluruh tumpukan CloudFormation](detect-drift-stack.md)

   1. Jalankan deteksi drift pada tumpukan yang ditentukan.

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

      Jika berhasil, perintah ini mengembalikan output sampel berikut.

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

   1. Lihat kemajuan operasi deteksi drift untuk ID deteksi drift tumpukan yang ditentukan.

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

   1. Lihat informasi drift untuk sumber daya yang telah diperiksa untuk drift di tumpukan yang ditentukan.

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

1. (Opsional) Jika sumber daya yang diimpor tidak cocok dengan konfigurasi templat yang diharapkan, perbaiki konfigurasi templat atau perbarui sumber daya secara langsung. Untuk informasi selengkapnya tentang mengimpor sumber daya hanyut, lihat. [Mengatasi penyimpangan dengan operasi impor](resource-import-resolve-drift.md)