Mengimpor dan mengekspor resource Google Cloud yang ada secara massal


Halaman ini menjelaskan perintah config-connector bulk-export dan cara menggunakannya untuk mengekspor resource Google Cloud ke file YAML Config Connector yang selanjutnya dapat Anda impor ke Config Connector.

config-connector bulk-export penggunaan Fungsi Ekspor Inventaris Aset Cloud untuk menemukan resource Google Cloud yang ada. Anda dapat memberikan Ekspor Inventaris Aset Cloud atau config-connector dapat melakukan ekspor untuk Anda.

Inventaris Aset Cloud mengekspor struktur JSON. Setiap struktur memiliki nama resource, jenis Inventaris Aset, dan resource ancestor-nya: project, folder, dan organisasi. Untuk menemukan jenis yang didukung oleh inventaris aset, lihat Jenis aset yang didukung.

Sebelum memulai

  1. Menginstal config-connector tool

  2. Jika Anda ingin menggunakan alat config-connector untuk mengekspor langsung dari Inventaris Aset Cloud, aktifkan Cloud Asset Inventory API di Google Cloud Project Identity dengan gcloud.

    gcloud services enable cloudasset.googleapis.com
    

Contoh ekspor massal

Dalam contoh ini, Anda membuat PubSubTopic dengan Google Cloud CLI, mengimpornya ke Config Connector.

  1. Buat topik bernama sample-topic dengan Google Cloud CLI:

    gcloud pubsub topics create sample-topic
    

    Anda menerima konfirmasi bahwa topik telah dibuat.

    Created topic [projects/PROJECT_ID/topics/sample-topic].
    

    Dalam output, PROJECT_ID diganti dengan project Google Cloud Anda.

  2. Mendapatkan nama resource Google Cloud topik dan menyimpannya ke dalam variabel lingkungan dengan perintah berikut:

    TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")
    
  3. Untuk mengidentifikasi objek, alat config-connector menggunakan JSON Inventaris Aset Cloud Google. Menyimpan struktur JSON aset topik ke dalam lingkungan variabel:

    TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'
    
  4. Teruskan aset ke config-connector bulk-export dengan menjalankan perintah berikut:

    echo ${TOPIC_ASSET} | config-connector bulk-export
    

    Output-nya adalah resource Config Connector dalam format YAML.

    ---
    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
      annotations:
        cnrm.cloud.google.com/project-id: PROJECT_ID
      name: sample-topic
    ...
    

    Dalam output, PROJECT_ID diganti dengan project Google Cloud Anda.

  5. Anda dapat meneruskan resource ini ke Config Connector dengan kubectl apply -f -. Untuk meneruskan resource secara langsung, jalankan perintah berikut:

    echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f -  --namespace CC_NAMESPACE
    

    Mengganti CC_NAMESPACE dengan namespace yang Config Connector mengelola resource.

    Konektor Konfigurasi mendapatkan resource.

  6. Memastikan bahwa Config Connector mengelola resource dengan kubectl describe:

    kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
    

    Mengganti CC_NAMESPACE dengan namespace yang Config Connector mengelola resource.

Pembersihan

Anda dapat menghapus PubSubTopic dengan config-connector bulk-export dan kubectl delete.

echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE

Mengganti CC_NAMESPACE dengan namespace yang Config Connector mengelola resource.

Menemukan resource untuk diimpor

Saat mengimpor resource, Anda dapat melakukan Mengekspor Inventaris Aset Cloud dan menyediakan hasil ke config-connector bulk-export atau membuat config-connector bulk-export menayangkannya di situs Anda nama Anda.

Mengimpor dari ekspor Inventaris Aset Cloud

Anda dapat menyediakan ekspor inventaris aset dengan memberikan jalur ke file lokal yang berisi ekspor atau menyisipkan hasil ekspor ke config-connector tentang STDIN.

Mengimpor dari file lokal

Anda dapat memberikan ekspor inventaris aset ke config-connector bulk-export menggunakan file lokal dengan parameter --input.

config-connector bulk-export --input ASSET_INVENTORY_EXPORT

Ganti ASSET_INVENTORY_EXPORT dengan nama file Inventaris Aset Cloud Anda ekspor.

Mengimpor dari STDIN

Untuk memberikan ekspor inventaris aset di STDIN, teruskan hasil ekspor ke config-connector bulk-export. Misalnya, jika ekspor Anda berada dalam file lokal bernama export.json, teruskan konten file ke config-connector bulk-export tanpa yang menyediakan salah satu parameter ekspor.

cat export.json | config-connector bulk-export

Memfilter ekspor Inventaris Aset di STDIN

Untuk memfilter ekspor inventaris aset, Anda dapat menggunakan Alat dan pipa jq untuk memasukkan hasil ke config-connector bulk-export. Misalnya, jika Anda hanya ingin mengimpor Aset PubSubTopic dari file EXPORT_FILE, jalankan perintah berikut berikut:

cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export

Mengekspor inventaris dengan config-connector

Alat config-connector bulk-export dapat mengekspor resource dari Google Cloud Hierarki resource.

Mengekspor project Anda

Untuk mengekspor semua resource dari project Anda, gunakan parameter --project.

config-connector bulk-export --project PROJECT_ID

Ganti PROJECT_ID dengan project Google Cloud Anda.

Mengekspor folder Anda

Untuk mengekspor semua resource dari folder, gunakan parameter --folder.

config-connector bulk-export --folder FOLDER_NUMBER

Ganti FOLDER_NUMBER dengan nomor folder Google Cloud Anda.

Mengekspor organisasi Anda

Untuk mengekspor semua resource dari organisasi Anda, gunakan --organization .

config-connector bulk-export --organization ORGANIZATION_ID

Ganti ORGANIZATION_ID dengan ID organisasi Google Cloud Anda.

Lokasi Cloud Storage

Lokasi output ekspor inventaris aset adalah URI Cloud Storage. Kapan config-connector bulk-export melakukan ekspor, lalu menggunakan bucket Cloud Storage. Secara default, config-connector bulk-export membuat bucket sementara. Anda juga dapat menentukan nama bucket.

Bucket Cloud Storage sementara

Jika Anda tidak memberikan parameter --storage-key, config-connector bulk-export akan membuat bucket Cloud Storage sementara atas nama Anda. Tujuan bucket dibuat di lokasi default untuk bucket penyimpanan; US multi-region. Bucket akan dihapus saat ekspor selesai.

Menentukan bucket sementara

Untuk menentukan bucket, gunakan URI Cloud Storage dengan storage-key . Jika URI hanya berupa nama bucket, nama akan dibuat untuk objek penyimpanan ekspor. Jika URI adalah jalur lengkap ke objek penyimpanan, maka jalur lengkap digunakan.

config-connector bulk-export --storage-key gs://BUCKET_NAME

Output

Output dari perintah config-connector bulk-export akan Resource Config Connector dalam format YAML. File YAML ditulis ke STDOUT secara {i>default<i}. Anda bisa mengarahkan output resource ke file dengan output.

Output ke satu file

Saat Anda menetapkan parameter --output, config-connector bulk-export akan menulis hasilnya ke file tunggal jika salah satu kondisi berikut terpenuhi:

  • File yang disebutkan oleh output sudah ada dan merupakan File regular.
  • File yang ditentukan oleh output tidak ada dan direktori induk yang direpresentasikan oleh output memang ada.

Output ke direktori

config-connector menulis hasilnya ke beberapa file saat --output parameter adalah direktori yang berakhiran /. config-connector bulk-export membuat satu per sumber daya, dan nama file sesuai dengan nama sumber dayanya.

config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/

Ganti PROJECT_ID dengan project Google Cloud Anda.

Misalnya, untuk menghasilkan output aset dari project my-project ke sample jalankan perintah berikut:

config-connector bulk-export --project my-project --on-error continue --output sample/

Resource yang didukung

Anda dapat mencetak daftar resource untuk alat config-connector bersama dengan format nama resource dengan menjalankan perintah berikut:

config-connector print-resources

Opsi command line

Perintah config-connector bulk-export memiliki opsi berikut:

config-connector bulk-export
    --input FILENAME \
    --output FILENAME \
    --storage-key gs://BUCKET_NAME \
    --project PROJECT_ID \
    --folder FOLDER_NUMBER \
    --organization ORGANIZATION_ID \
    --oauth2-token TOKEN \
    --on-error [halt | continue | ignore] \
    --iam-format [policy | policymember | none] \
    --filter-deleted-iam-members [true | false] \
    --verbose
  • --input: File input Inventaris Aset Cloud.
  • --output: Jalur file output opsional yang menonaktifkan output standar. Ketika seorang {i>file<i}, hasilnya berisi semua {i>output<i} perintah; ketika sebuah direktori, direktori akan berisi file baru untuk setiap sumber daya dalam {i>output<i}.
  • --storage-key: Menargetkan bucket Cloud Storage sementara untuk diekspor.
  • --project: ID project Google Cloud yang akan diekspor
  • --folder: ID folder Google Cloud yang akan diekspor
  • --organization: ID organisasi Google Cloud yang akan diekspor.
  • --oauth2-token: Token OAUTH2 sebagai Google Cloud Identity. Secara default, config-connector menggunakan Kredensial default Google Cloud CLI.
  • --on-error: Mengontrol perilaku saat terjadi error yang dapat dipulihkan. Opsi adalah 'lanjutkan', 'halt', atau 'abaikan'.
    • halt: menghentikan eksekusi pada error apa pun (default)
    • continue: melanjutkan pemrosesan resource, cetak error ke STDERR
    • ignore: lanjutkan memproses resource dan jangan mencetak error
  • --iam-format: Menentukan jenis output resource IAM dengan ekspor Anda. Opsinya adalah policy (default), policymember, atau none.
  • --filter-deleted-iam-members: Menentukan apakah akan memfilter akun utama IAM yang dihapus. Opsinya adalah true atau false. Nilai defaultnya adalah false.
  • --verbose: Mengaktifkan logging panjang.

Langkah selanjutnya