All Products
Search
Document Center

Terraform:Mengelola Sumber Daya yang Ada

Last Updated:Oct 17, 2025

Topik ini menjelaskan cara menggunakan Terraform dan alat terkait untuk mengelola sumber daya cloud yang sudah ada.

Latar Belakang

Terraform adalah alat Infrastructure as Code (IaC) terkemuka untuk mengotomatiskan manajemen sumber daya cloud. Untuk sumber daya baru, Anda dapat menulis kode Terraform dan menjalankan perintah untuk membuatnya secara otomatis. Untuk sumber daya yang sudah ada atau tidak dibuat oleh Terraform, Anda harus mengimpornya. Proses ini menghasilkan kode sumber daya dan file status. Setelah itu, Anda dapat menggunakan Terraform untuk mengelola sumber daya tersebut.

Fitur impor sumber daya membawa sumber daya cloud yang ada di bawah manajemen Terraform.

Skenario

Impor sumber daya berguna dalam beberapa skenario manajemen dan penyebaran sumber daya.

  1. Kelola Sumber Daya yang Ada: Alihkan sumber daya yang dikelola oleh alat lain, seperti konsol, API, atau antarmuka baris perintah (CLI), ke manajemen Terraform.

  2. Selesaikan Deviasi Sumber Daya: Jika sumber daya yang dikelola oleh Terraform dimodifikasi di luar Terraform, statusnya tidak lagi sesuai dengan konfigurasi. Ini disebut deviasi sumber daya. Anda dapat mengimpor ulang sumber daya untuk menyelesaikan deviasi ini.

  3. Refaktor Kode: Jika semua sumber daya Anda didefinisikan dalam satu file konfigurasi, Anda dapat merefaktor dan membagi file tersebut. Ini mengurangi kompleksitas pengelolaan file konfigurasi dan status saat jumlah sumber daya bertambah.

  4. Penyebaran Sumber Daya dengan Cepat: Replikasi dan sebarkan arsitektur sumber daya yang ada ke wilayah atau akun yang berbeda.

  5. Pemulihan Sumber Daya dengan Cepat: Cadangkan arsitektur sumber daya Anda secara teratur. Jika terjadi masalah stabilitas, Anda dapat menggunakan kode cadangan untuk memulihkan arsitektur dengan cepat.

Prosedur

Topik ini menjelaskan tiga metode untuk mengimpor sumber daya:

  1. Perintah Impor: Mengimpor satu sumber daya menggunakan perintah Terraform asli terraform import.

  2. Blok Impor: Mengimpor satu atau lebih sumber daya dengan menulis blok impor Terraform dan menjalankan terraform plan dan terraform apply.

  3. Alat Terraformer: Mengimpor sumber daya secara batch dengan menjalankan perintah menggunakan alat Terraformer open-source untuk menyaring dan menanyakan sumber daya.

Ketiga metode ini cocok untuk skenario yang berbeda. Pilih metode yang paling sesuai dengan kebutuhan Anda.

Metode Impor

Keuntungan

Kerugian

Skenario

Perintah Impor

  • Sederhana dan langsung. Menjalankan perintah Terraform asli.

  • Menghasilkan file status secara otomatis.

  • Memerlukan Anda untuk mengambil ID sumber daya secara manual, yang bisa rentan terhadap kesalahan.

  • Tidak efisien untuk beberapa sumber daya karena hanya mendukung pengimporan satu sumber daya pada satu waktu.

  • Memerlukan Anda untuk menulis kode sumber daya secara manual.

Kelola Sumber Daya yang Ada

Selesaikan Deviasi Sumber Daya

Refaktor Kode

Blok Impor

  • Mudah digunakan. Menjalankan perintah Terraform asli.

  • Mendukung impor batch dari beberapa sumber daya.

  • Memungkinkan Anda menulis kode untuk logika impor yang kompleks.

  • Memerlukan penulisan kode impor, yang memiliki kurva pembelajaran.

  • Tidak dapat menghasilkan dependensi antara beberapa sumber daya.

  • Dapat memiliki biaya konfigurasi tinggi untuk impor batch.

Kelola Sumber Daya yang Ada

Selesaikan Deviasi Sumber Daya

Refaktor Kode

Penyebaran Sumber Daya dengan Cepat

Terraformer

  • Secara otomatis menyaring dan memilih koleksi sumber daya untuk diimpor.

  • Secara otomatis menghasilkan kode sumber daya Terraform.

  • Secara otomatis menghasilkan dependensi antar sumber daya.

  • Memerlukan Anda untuk mengunduh dan menginstal Terraformer.

  • Bukan perintah Terraform asli dan memiliki biaya pembelajaran serta konfigurasi.

Kelola Sumber Daya yang Ada

Selesaikan Deviasi Sumber Daya

Refaktor Kode

Penyebaran Sumber Daya dengan Cepat

Pemulihan Sumber Daya dengan Cepat

Perintah impor Terraform

Perintah <a class="ne-link" data-href="https://developer.hashicorp.com/terraform/cli/commands/import" href="https://developer.hashicorp.com/terraform/cli/commands/import" id="653ac62fdfgjr" target="_blank">terraform import</a> mengimpor sumber daya dengan menentukan alamat sumber daya dan ID sumber daya, serta menerima beberapa parameter konfigurasi.

Prasyarat

  • Siapkan lingkungan runtime Terraform. Anda dapat memilih salah satu dari metode berikut:

    • Cloud Shell: Alibaba Cloud Cloud Shell telah dipra-instal dengan komponen Terraform dan dikonfigurasi kredensial identitas. Anda dapat menjalankan perintah Terraform langsung di Cloud Shell. Metode ini cocok untuk akses cepat dan mudah ke Terraform.

    • Instal dan Konfigurasikan Terraform Secara Lokal: Metode ini cocok untuk skenario dengan konektivitas jaringan yang buruk atau ketika Anda memerlukan lingkungan pengembang kustom.

  • Berikan izin read-only untuk sumber daya terkait ke akun aktif.

Penggunaan

Format perintah adalah terraform import [options] <address> <id>.

  • Alamat Sumber Daya: Formatnya adalah <resource_type>.<resource_name>. Ini mencakup jenis sumber daya dan nama, dan berfungsi sebagai pengenal infrastruktur dalam file status.

    • Sebagai contoh, alamat sumber daya untuk VPC dalam cuplikan konfigurasi berikut adalah alicloud_vpc.default.

    resource "alicloud_vpc" "default" {
      vpc_name   = "tf-example"
      cidr_block = "10.0.0.0/8"
    }
  • ID Sumber Daya: ID sumber daya adalah parameter input yang digunakan untuk mengidentifikasi sumber daya secara unik dan meminta informasi dari server. Untuk informasi lebih lanjut tentang format ID sumber daya, lihat Dokumentasi Penyedia untuk setiap sumber daya.

    • Sebagai contoh, ID sumber daya untuk alicloud_security_group adalah ID grup keamanan. ID sumber daya untuk alicloud_security_group_rule mengikuti format tertentu.

    image.png

  • Opsi Konfigurasi: Perintah impor Terraform menerima berbagai opsi. Untuk informasi lebih lanjut, lihat instruksi penggunaan resmi.

Contoh

Contoh berikut menunjukkan cara mengimpor instance Layanan Penyimpanan Objek (OSS):

  1. Buat direktori kerja. Di direktori tersebut, buat file konfigurasi bernama main.tf dan definisikan alamat sumber daya yang akan diimpor.

    resource "alicloud_oss_bucket" "default"{ }
  2. ID sumber daya alicloud_oss_bucket adalah nama bucket.

  3. Inisialisasi lingkungan runtime.

    terraform init
  4. Anda dapat menjalankan perintah impor.

    # Ganti ini dengan nama bucket Anda
    terraform import alicloud_oss_bucket.default oss-bucket-import

    Keluaran berikut menunjukkan impor berhasil:

    alicloud_oss_bucket.default: Importing from ID "oss-bucket-import"...
    alicloud_oss_bucket.default: Import prepared!
      Prepared alicloud_oss_bucket for import
    alicloud_oss_bucket.default: Refreshing state... [id=oss-bucket-import]
    
    Import successful!
    
    The resources that were imported are shown above. These resources are now in
    your Terraform state and will henceforth be managed by Terraform.
    
  5. Setelah Anda menjalankan terraform import, properti tidak ditambahkan secara otomatis ke template. Anda harus menambahkannya secara manual. Anda dapat menjalankan terraform show untuk melihat semua properti sumber daya saat ini:

    # alicloud_oss_bucket.default:
    resource "alicloud_oss_bucket" "default" {
        acl               = "private"
        bucket            = "oss-bucket-import"
        creation_date     = "2024-11-22"
        extranet_endpoint = "oss-cn-beijing.aliyuncs.com"
        id                = "oss-bucket-import"
        intranet_endpoint = "oss-cn-beijing-internal.aliyuncs.com"
        location          = "oss-cn-beijing"
        owner             = "1511928*****"
        redundancy_type   = "ZRS"
        resource_group_id = "rg-acf***"
        storage_class     = "Standard"
        tags              = {}
    
        access_monitor {
            status = "Disabled"
        }
    }

    Setelah Anda menambahkan informasi di atas ke template Anda dan menghapus properti read-only seperti yang dijelaskan di alicloud_oss_bucket, Anda dapat menggunakan Terraform untuk mengelola sumber daya Anda.

Blok impor Terraform

Terraform v1.5.0 dan versi lebih baru mendukung impor sumber daya menggunakan blok `import`. Anda dapat menulis blok `import` di file konfigurasi Anda untuk menentukan ID dan alamat sumber daya yang akan diimpor. Kemudian, Anda dapat menjalankan perintah terraform plan dan terraform apply untuk melihat pratinjau dan mengeksekusi impor.

Untuk informasi lebih lanjut, lihat dokumentasi resmi.

Prasyarat

  • Siapkan lingkungan runtime Terraform. Anda dapat memilih salah satu dari metode berikut:

    Catatan

    Fitur ini memerlukan Terraform v1.5.0 atau lebih baru. Pastikan lingkungan Anda menggunakan versi yang kompatibel.

    • Cloud Shell: Alibaba Cloud Cloud Shell telah dipra-instal dengan komponen Terraform dan dikonfigurasi kredensial identitas. Anda dapat menjalankan perintah Terraform langsung di Cloud Shell. Metode ini cocok untuk akses cepat dan mudah ke Terraform.

    • Instal dan Konfigurasikan Terraform Secara Lokal: Metode ini cocok untuk skenario dengan konektivitas jaringan yang buruk atau ketika Anda memerlukan lingkungan pengembang kustom.

  • Berikan izin read-only untuk sumber daya terkait ke akun aktif.

Penggunaan

Sintaksnya adalah sebagai berikut:

import {
  to = alicloud_oss_bucket.example
  id = "oss-bucket-import"
}

# Opsional
# resource "alicloud_oss_bucket" "example" {
#   # (argumen sumber daya lainnya...)
# }

Dibandingkan dengan perintah impor, blok impor memiliki dua keuntungan:

  1. Menghasilkan file konfigurasi secara otomatis. Anda dapat mengimpor sumber daya ke alamat sumber daya yang sudah didefinisikan dalam konfigurasi. Anda juga dapat menggunakan parameter -generate-config-out untuk menghasilkan konfigurasi secara otomatis. Ini menghemat Anda dari harus menulis konfigurasi secara manual.

  2. Impor Batch. Dalam blok `import`, Anda dapat menggunakan for_each untuk mengimpor sumber daya secara batch. Jika sumber daya memiliki atribut serupa, Anda dapat mengimpornya ke alamat sumber daya yang sama dan membedakannya berdasarkan indeks.

Catatan

Catatan bahwa Anda tidak dapat menggunakan kedua fitur ini secara bersamaan. CLI Terraform saat ini tidak mendukung penghasilan konfigurasi secara otomatis untuk sma sumber daya yang menggunakan for_each.image.png

Contoh

Contoh berikut menunjukkan cara mengimpor instance OSS menggunakan blok impor:

  1. Buat direktori kerja. Di direktori tersebut, buat file konfigurasi bernama main.tf. Tulis blok impor untuk menentukan ID dan alamat sumber daya yang akan diimpor.

    import {
      to = alicloud_oss_bucket.default
      id = "oss-bucket-import"
    }
  2. Inisialisasi lingkungan runtime.

    terraform init
  3. Jalankan perintah terraform plan untuk melihat pratinjau template sumber daya yang akan diimpor. Gunakan parameter -generate-config-out untuk menghasilkan template secara otomatis.

    terraform plan -generate-config-out=generated.tf

    Informasi berikut ditampilkan:

    alicloud_oss_bucket.default: Preparing import... [id=oss-bucket-import]
    alicloud_oss_bucket.default: Refreshing state... [id=oss-bucket-import]
    
    Terraform will perform the following actions:
    
      # alicloud_oss_bucket.default will be imported
      # (config will be generated)
        resource "alicloud_oss_bucket" "default" {
            acl               = "private"
            bucket            = "oss-bucket-import"
            creation_date     = "2024-11-22"
            extranet_endpoint = "oss-cn-beijing.aliyuncs.com"
            id                = "oss-bucket-import"
            intranet_endpoint = "oss-cn-beijing-internal.aliyuncs.com"
            location          = "oss-cn-beijing"
            owner             = "15119****"
            redundancy_type   = "ZRS"
            resource_group_id = "rg-acfmzaq*****"
            storage_class     = "Standard"
            tags              = {}
    
            access_monitor {
                status = "Disabled"
            }
        }
    
    Plan: 1 to import, 0 to add, 0 to change, 0 to destroy.
    ╷
    │ Warning: Config generation is experimental
    │ 
    │ Generating configuration during import is currently experimental, and the generated configuration
    │ format may change in future versions.
    ╵
    
    ─────────────────────────────────────────────────────────────────────────────────────────────────────
    
    Terraform has generated configuration and written it to generated.tf. Please review the configuration
    and edit it as necessary before adding it to version control.
    
    Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly
    these actions if you run "terraform apply" now.
  4. Setelah Anda mengonfirmasi rencana, jalankan perintah terraform apply untuk melakukan impor.

    terraform apply 

    Masukkan yes saat diminta. Keluaran berikut menunjukkan bahwa impor berhasil:

    ......
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value: yes
    
    alicloud_oss_bucket.default: Importing... [id=oss-bucket-import]
    alicloud_oss_bucket.default: Import complete [id=oss-bucket-import]
    
    Apply complete! Resources: 1 imported, 0 added, 0 changed, 0 destroyed.

Alat Terraformer

Selain fitur Terraform asli, Anda dapat menggunakan alat open-source Terraformer untuk mengimpor sumber daya dari akun Anda ke dalam template Terraform secara batch dengan cepat. Alat Terraformer open-source hanya mendukung subset sumber daya dari setiap penyedia cloud. Penyedia harus melakukan pengembangan kustom untuk menambahkan dukungan untuk sumber daya spesifik mereka.

Anda dapat menggunakan alat Terraformer dengan dua cara:

  1. Terraformer Open-source: Versi asli Terraformer, yang mendukung impor sumber daya dari beberapa penyedia cloud.

  2. Alibaba Cloud Terraformer: Versi yang ditingkatkan dari Terraformer yang hanya mendukung impor sumber daya dari Alibaba Cloud.

Fitur

Terraformer Open-source

Alibaba Cloud Terraformer

Lihat daftar produk yang didukung untuk impor

Lihat daftar jenis sumber daya yang didukung untuk impor

Filter berdasarkan wilayah

Filter berdasarkan mengecualikan wilayah tertentu

Filter berdasarkan zona

Filter berdasarkan mengecualikan zona tertentu

Filter berdasarkan produk

Filter berdasarkan mengecualikan produk tertentu

Filter berdasarkan jenis sumber daya

Filter berdasarkan mengecualikan jenis sumber daya tertentu

Filter berdasarkan daftar ID sumber daya

Filter berdasarkan mengecualikan daftar ID sumber daya tertentu

Filter berdasarkan nama sumber daya

Filter berdasarkan kelompok sumber daya

Filter berdasarkan tag

Menghasilkan dependensi sumber daya secara otomatis

Menghasilkan variabel secara otomatis

Menghasilkan output secara otomatis

Terraformer Open-source

Prasyarat
  1. Unduh dan instal Terraformer

    Paket penerapan Terraformer open-source tersedia sebagai paket komprehensif untuk semua penyedia atau sebagai paket individu untuk setiap penyedia. Unduh paket yang Anda butuhkan. Contoh berikut menunjukkan cara mengunduh paket di Linux dan macOS. Untuk informasi lebih lanjut, lihat Instalasi.

    • Pengguna Linux

    export PROVIDER=all
    curl -LO "https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-linux-amd64"
    chmod +x terraformer-${PROVIDER}-linux-amd64
    sudo mv terraformer-${PROVIDER}-linux-amd64 /usr/local/bin/terraformer
    • Pengguna macOS

    export PROVIDER=all
    curl -LO "https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-darwin-amd64"
    chmod +x terraformer-${PROVIDER}-darwin-amd64
    sudo mv terraformer-${PROVIDER}-darwin-amd64 /usr/local/bin/terraformer
  2. Dependensi

    1. Berikan izin read-only untuk sumber daya terkait ke akun saat ini.

    2. Instal Terraform

      Catatan

      Anda dapat melewati langkah ini jika menjalankan perintah di Cloud Shell.

      Untuk informasi lebih lanjut, lihat Instal dan Konfigurasikan Terraform Secara Lokal.

    3. Unduh penyedia terkait. Anda dapat mengonfigurasi penyedia dengan salah satu dari dua cara berikut:

      • Inisialisasi penyedia di direktori tempat Anda menjalankan perintah Terraformer.

      • Unduh penyedia ke jalur ~/.terraform.d/plugins/.

    4. Konfigurasikan kredensial akses. Terraformer saat ini hanya mendukung autentikasi dengan membaca profil lokal. Secara default, kredensial pertama dalam profil digunakan untuk impor. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses Alibaba Cloud, lihat Konfigurasikan Kredensial.

Penggunaan

Contoh berikut menggunakan terraformer-all-darwin-amd64 v0.8.24.

Terraformer mendukung empat perintah: help, import, plan, and version.

  1. help: Menampilkan detail tentang perintah.

    image.png

  2. version: Menampilkan nomor versi saat ini.

    image.png

  3. import: Mengimpor sumber daya untuk penyedia tertentu.

    image.png

  4. plan: Melihat pratinjau sumber daya yang akan diimpor untuk penyedia tertentu.

Contoh

Contoh berikut menunjukkan cara mengimpor semua VPC Alibaba Cloud di wilayah China (Hangzhou).

  1. Buat direktori untuk menyimpan template dan file status yang diimpor.

    mkdir example && cd example
  2. Jalankan perintah berikut:

    terraformer-all-darwin-arm64 import alicloud --resources=vpc --regions=cn-hangzhou --path-pattern={output} --path-output=./     
    • --resources: Menentukan koleksi sumber daya yang akan diimpor.

    • --regions: Menentukan wilayah tempat sumber daya berada.

    • --path-pattern: Menentukan pola untuk struktur direktori yang dihasilkan.

    • --path-output: Menentukan jalur keluaran untuk file yang dihasilkan.

  3. File template yang dihasilkan adalah sebagai berikut. Secara default, informasi wilayah ditambahkan ke jalur direktori. Untuk menekan semua template sumber daya menjadi satu file, tentukan parameter --compact. Parameter ini mengeluarkan semua sumber daya ke file resources.tf.

    └── cn-hangzhou
        ├── outputs.tf
        ├── provider.tf
        ├── terraform.tfstate
        ├── variables.tf
        ├── vpc.tf
        └── vswitch.tf
    
    2 directories, 6 files
  4. Jika versi Terraform lokal Anda adalah >=0.13.0, Anda harus menjalankan perintah berikut untuk memodifikasi file status agar kompatibel dengan versi Terraform baru.

    terraform state replace-provider -auto-approve "registry.terraform.io/-/alicloud" "aliyun/alicloud"

Alibaba Cloud Terraformer - aliterraformer (Direkomendasikan)

aliterraformer didasarkan pada Terraformer open-source dan menambahkan dukungan untuk lebih banyak sumber daya. Ini juga meningkatkan konfigurasi kredensial akses dan fitur dimensi impor.

Prasyarat
  1. Unduh dan instal

    aliterraformer disimpan di Alibaba Cloud Object Storage Service (OSS). Anda dapat mengunduhnya dari lokasi berikut:

    macOS

    # amd64
    wget https://terraform-share.oss-cn-hangzhou.aliyuncs.com/aliterraformer/aliterraformer_darwin_amd64.zip
    
    # arm64
    wget https://terraform-share.oss-cn-hangzhou.aliyuncs.com/aliterraformer/aliterraformer_darwin_arm64.zip

    Linux

    # amd64
    wget https://terraform-share.oss-cn-hangzhou.aliyuncs.com/aliterraformer/aliterraformer_linux_amd64.zip
    
    # arm
    wget https://terraform-share.oss-cn-hangzhou.aliyuncs.com/aliterraformer/aliterraformer_linux_arm.zip
    
    # arm64
    wget https://terraform-share.oss-cn-hangzhou.aliyuncs.com/aliterraformer/aliterraformer_linux_arm64.zip

    Windows

    # amd64
    wget https://terraform-share.oss-cn-hangzhou.aliyuncs.com/aliterraformer/aliterraformer_windows_amd64.zip
    
    # 386
    wget https://terraform-share.oss-cn-hangzhou.aliyuncs.com/aliterraformer/aliterraformer_windows_386.zip

    Sebagai contoh, di macOS, ekstrak file setelah mengunduh:

    unzip aliterraformer_darwin_amd64.zip
    chmod +x aliterraformer
    sudo mv aliterraformer /usr/local/bin/aliterraformer
  2. Dependensi

    Sama seperti Terraformer open-source, Anda harus menyiapkan file terraform dan terraform-provider-alicloud serta mengonfigurasi kontrol akses.

    1. Berikan izin read-only untuk sumber daya terkait ke akun Resource Access Management (RAM).

    2. Instal Terraform

      Untuk informasi lebih lanjut, lihat Instal dan Konfigurasikan Terraform Secara Lokal. Anda dapat melewati langkah ini jika menjalankan perintah di Cloud Shell.

    3. Unduh terraform-provider-alicloud

      Anda dapat menyetel versi penyedia untuk impor. Struktur direktori cache yang dibuat oleh perintah init berbeda untuk versi sebelum v0.13.0 dibandingkan dengan versi v0.13.0 dan lebih baru. Contoh berikut menunjukkan cara membaca direktori untuk versi v0.13.0 dan lebih baru:

      # 1. Set menggunakan variabel lingkungan TF_DATA_TFER_DIR
      <$TF_DATA_TFER_DIR>/providers/registry.terraform.io/aliyun/alicloud/1.239.0/darwin_arm64/terraform-provider-alicloud_v1.239.0
      
      # 2. Set di direktori tersembunyi direktori kerja saat ini
      .terraform/providers/registry.terraform.io/aliyun/alicloud/1.239.0/darwin_arm64/terraform-provider-alicloud_v1.239.0
      
      # 3. Set di direktori tersembunyi direktori root pengguna
      <HOME>/.terraform.d/plugins/registry.terraform.io/aliyun/alicloud/1.239.0/darwin_arm64/terraform-provider-alicloud_v1.239.0
    4. Konfigurasikan kredensial akses

      Selain menggunakan profil, Anda dapat menyetel kredensial akses di aliterraformer menggunakan variabel lingkungan dan parameter perintah:

      # 1. Menggunakan variabel lingkungan ALICLOUD_ACCESS_KEY dan ALICLOUD_SECRET_KEY
      $ export ALICLOUD_ACCESS_KEY=xxxx
      $ export ALICLOUD_SECRET_KEY=xxxxx
      
      # 2. Dengan meneruskan parameter perintah --access-key dan --secret-key
      $ aliterraformer import alicloud --access-key=xxxx --secret-key=xxx ...
      
      # 3. Dengan menyetel dan meneruskan AK melalui mekanisme profil
      $ aliterraformer import alicloud --profile=default ...
Penggunaan

aliterraformer mendukung lima perintah: help, version, products, resources, import. Ini menambahkan perintah products, resources ke Terraformer open-source asli.

  1. help: Lihat detail tentang perintah yang didukung.

    aliterraformer help

    image.png

  2. version: Lihat versi Terraformer saat ini.

    aliterraformer version
  3. products: Lihat daftar produk yang didukung versi saat ini untuk impor.

    aliterraformer products

    image.png

  4. resources: Lihat daftar sumber daya untuk produk yang didukung versi saat ini untuk impor. Gunakan -p untuk menentukan produk.

    aliterraformer resources -p <productName>

    image.png

    image.png

  5. import: Melakukan operasi impor. Saat Anda mengimpor sumber daya Alibaba Cloud, Anda harus menentukan alicloud. Jalankan perintah berikut untuk melihat parameter yang didukung untuk mengimpor sumber daya Alibaba Cloud:

    aliterraformer import alicloud -h

    image.png

    Saat melakukan impor, Anda harus terlebih dahulu mendefinisikan koleksi sumber daya yang akan diimpor. Anda kemudian dapat menyaring sumber daya ini dan mengekstrak properti tertentu sebagai parameter.

    • Buat koleksi sumber daya:

      Perintah impor menyediakan empat bendera untuk mendefinisikan ruang lingkup sumber daya yang akan diimpor: <--products>, <--resources>, <--excludes-products>, dan <--excludes>. Anda dapat menggabungkan bendera ini untuk membangun koleksi sumber daya. Contoh berikut menunjukkan cara menggunakan bendera ini:

      • Impor sumber daya tertentu

        # Impor VPC, vSwitch, dan instance ECS
        aliterraformer import alicloud -r=vpc,vswitch,instance
      • Impor produk tertentu

        # Impor semua sumber daya di bawah produk ACK dan ALB
        aliterraformer import alicloud --products=ACK,ALB
      • Impor produk dan sumber daya tertentu

        # Impor semua sumber daya di bawah produk ACK dan ECS, serta semua VPC dan vSwitch
        aliterraformer import alicloud --products=ACK,ECS -r=vpc,vswitch
      • Impor produk tertentu, tetapi kecualikan beberapa sumber daya dalam produk tersebut

        # Impor semua sumber daya di bawah ACK kecuali alicloud_cs_kubernetes
        aliterraformer import alicloud --products=ACK --excludes=cs_kubernetes
      • Impor semua sumber daya dari semua produk

        # Memasukkan ALL untuk produk berarti semua produk
        aliterraformer import alicloud --products=ALL
      • Impor semua sumber daya dari semua produk, tetapi kecualikan produk tertentu

        # Impor semua produk kecuali VPNGateway dan WAF
        aliterraformer import alicloud --products=ALL --excludes-products=VPNGateway,WAF
      • Impor semua sumber daya dari semua produk, tetapi kecualikan produk dan sumber daya tertentu

        # Impor semua produk kecuali VPNGateway dan WAF, dan kecualikan sumber daya alicloud_cs_kubernetes
        aliterraformer import alicloud --products=ALL --excludes-products=VPNGateway,WAF --excludes=cs_kubernetes
    • Menyaring sumber daya

      Format untuk parameter ini adalah --filter=Type1.AttrKey=AttrValue1;AttrValue2,Type2.AttrKey=AttrValue1;AttrValue2. Jika Anda menghilangkan Type, kondisi filter berlaku untuk semua sumber daya.

      • Impor VPC dengan ID vpc-123

        # Untuk menentukan beberapa nilai, pisahkan dengan titik koma: --filter="vpc.id=vpc-123;vpc-456"
        aliterraformer import alicloud -r=vpc --filter="vpc.id=vpc-123"
      • Impor VPC dan vSwitch yang keduanya bernama tf-example

        aliterraformer import alicloud -r=vpc,vswitch --filter="vpc.vpc_name=tf-example,vswitch.vswitch_name=tf-example"
      • Impor VPC dan instance ECS yang keduanya termasuk dalam kelompok sumber daya rg-12345

        aliterraformer import alicloud -r=vpc,instance --filter="resource_group_id=rg-12345"
    • Ekstrak properti sebagai variabel menggunakan output-variables

      Format untuk parameter ini adalah r1:attr1,attr2;r2:attr1,attr2,attr3.

      • Ekstrak vpc_id dan vswitch_id dari instance ECS sebagai variabel

        aliterraformer import alicloud -r=instance --output-variables="instance:vpc_id,vswitch_id"
Contoh

Contoh berikut menunjukkan cara mengimpor VPC, vSwitch, dan instance ECS dengan ID VPC vpc-12345 di wilayah China (Hangzhou), dan mengekstrak zone_id dari vSwitch sebagai variabel:

  1. Buat direktori untuk menyimpan template dan file status yang diimpor.

    mkdir example && cd example
  2. Buat perintah impor.

    aliterraformer import alicloud \
        --regions=cn-hangzhou \
        -r=vpc,vswitch,instance \
        --filter="vpc.id=vpc-12345,vswitch.vpc_id=vpc-12345,instance.vpc_id=vpc-12345" \
        --output-variables="vswitch:zone_id" \
        --path-output=example               \
        --path-pattern={output}            \
        --compact
    • --path-output: Menentukan folder impor.

    • --path-pattern: Menentukan format struktur direktori untuk template sumber daya yang diimpor. Format default adalah {output}/{provider}/{service}/. Format lain yang tersedia termasuk {output}/{provider}/ dan {output}/. Sebagai contoh, jika Anda menentukan --path-pattern={output}, semua template ditempatkan dalam satu folder.

    • --compact: Jika parameter ini tidak ditentukan, sumber daya disimpan dalam file {service}.tf terpisah. Jika parameter ini ditentukan, semua sumber daya disimpan dalam file resources.tf.

  3. Setelah impor, file berikut dihasilkan di direktori example:

    .
    ├── outputs.tf
    ├── provider.tf
    ├── resources.tf
    ├── terraform.tfstate
    └── variables.tf

    Jika Anda tidak menentukan --path-pattern={output}, struktur direktori adalah sebagai berikut:

    .
    └── alicloud
        ├── instance
        │   ├── provider.tf
        │   ├── terraform.tfstate
        │   └── variables.tf
        ├── vpc
        │   ├── outputs.tf
        │   ├── provider.tf
        │   ├── terraform.tfstate
        │   ├── variables.tf
        │   └── vpc.tf
        └── vswitch
            ├── outputs.tf
            ├── provider.tf
            ├── terraform.tfstate
            ├── variables.tf
            └── vswitch.tf
  4. Jika versi Terraform lokal Anda adalah >=0.13.0, Anda harus menjalankan perintah berikut untuk memodifikasi file status agar kompatibel dengan versi Terraform baru.

    terraform state replace-provider -auto-approve "registry.terraform.io/-/alicloud" "aliyun/alicloud"

Umpan balik dan saran

Jika Anda memiliki pertanyaan atau saran tentang tutorial ini, Anda dapat berkomunikasi dengan insinyur kami di grup DingTalk (ID Grup: 34240022836). Anda juga dapat mengirimkan masalah di halaman GitHub Terraform Provider Alibaba Cloud. Kami akan menangani umpan balik Anda.