Mengekspor dan melihat hasil pratinjau

Halaman ini menjelaskan cara mengekspor dan meninjau hasil pratinjau. Pratinjau mendeskripsikan tindakan untuk menggerakkan konfigurasi Terraform tertentu. Sebelum membuat deployment baru atau mengupdate deployment, Anda dapat melihat pratinjau deployment untuk memverifikasi apa yang direncanakan untuk diubah.

Jika Anda belum membuat pratinjau yang ingin dilihat, lihat Melihat pratinjau deployment.

Halaman ini mengasumsikan bahwa Anda sudah memahami Terraform. Untuk mengetahui detailnya, lihat Terraform dan Infrastructure Manager.

Sebelum memulai

  1. Aktifkan Infra Manager.
  2. Pastikan Anda memiliki izin IAM yang diperlukan untuk mengekspor pratinjau: roles/config.admin.
  3. Buat deployment pratinjau.

Mengekspor hasil pratinjau

Untuk meninjau hasil pratinjau, ekspor terlebih dahulu hasilnya. Kemudian, lihat hasil yang diekspor menggunakan alat yang sesuai.

Untuk mengekspor pratinjau, statusnya harus SUCCEEDED atau STALE. Anda dapat melihat status pratinjau saat ini menggunakan perintah describe atau list.

Ekspor hasil pratinjau dan simpan secara lokal menggunakan perintah berikut:

gcloud infra-manager previews export projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID

Ganti:

  • PROJECT_ID: project ID tempat Infrastructure Manager berjalan.
  • LOCATION: lokasi tempat Infra Manager berjalan. Lihat Lokasi Infrastructure Manager untuk mengetahui daftar lokasi yang valid.
  • PREVIEW_ID: ID pratinjau yang Anda tentukan. Lihat Nama pratinjau untuk mengetahui detail tentang batasan pada ID pratinjau.

Melihat hasil pratinjau

Hasil diekspor dalam dua format: file rencana biner, dan representasi JSON. Anda dapat menggunakan salah satu format untuk meninjau hasilnya. Untuk melihat hasilnya, gunakan alat yang sesuai untuk format tersebut.

Meninjau file rencana biner

Untuk melihat file rencana biner:

  1. Pastikan Anda telah menginstal Terraform CLI.

  2. Pastikan konfigurasi Terraform yang Anda gunakan untuk membuat pratinjau ada secara lokal dan diinisialisasi dengan terraform init.

  3. Cetak rencana yang diusulkan menggunakan terraform show.

Meninjau representasi JSON

Untuk melihat representasi JSON, Anda dapat menggunakan IDE atau alat seperti jq.

Untuk menerapkan batasan kebijakan, Anda dapat menggunakan representasi JSON dengan alat seperti Terraform vet.

Melihat detail perubahan dan penyimpangan resource

Anda dapat menggunakan pratinjau untuk melihat penyimpangan resource untuk deployment Anda. Melihat penyimpangan resource untuk deployment Anda berguna untuk memverifikasi bahwa perubahan pada konfigurasi Anda memang diinginkan, dan untuk merangkum bagaimana deployment Anda akan berubah saat deployment Anda diupdate dengan pratinjau tertentu.

Saat membuat pratinjau, Anda menggunakan Infra Manager API untuk melihat perubahan pada resource saat memperbarui deployment.

Melihat penyimpangan resource

Untuk melihat penyimpangan resource, panggil ListResourceDrifts:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts"

Ganti:

  • PROJECT_ID: ID project Google Cloud tempat deployment pratinjau Anda berada.
  • LOCATION: Region atau zona deployment pratinjau Anda.
  • PREVIEW_ID: ID deployment pratinjau Anda.

Hasilnya akan terlihat seperti:

{
    "resourceDrifts": [
        {
            "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID",
            "terraformInfo": {
                "address": "google_resource_type.resource_name",
                "type": "google_resource_type",
                "resourceName": "resource_name",
                "provider": "registry.terraform.io/hashicorp/google"
            },
            "propertyDrifts": [
                {
                    "path": "$.json_path_to_property_field",
                    "before": "config-defined-state",
                    "after": "remote-state"
                }
            ]
        }
    ]
}

Melihat detail penyimpangan

Untuk melihat detail penyimpangan, panggil GetResourceDrift:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID"

Ganti:

  • PROJECT_ID: ID project Google Cloud tempat deployment pratinjau Anda berada.
  • LOCATION: Region atau zona deployment pratinjau Anda.
  • PREVIEW_ID: ID deployment pratinjau Anda.
  • RESOURCE_DRIFT_ID: ID penyimpangan Anda.

Hasilnya akan terlihat seperti:

{
    "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID",
    "terraformInfo": {
        "address": "google_resource_type.resource_name",
        "type": "google_resource_type",
        "resourceName": "resource_name",
        "provider": "registry.terraform.io/hashicorp/google"
    },
    "propertyDrifts": [
        {
            "path": "$.json_path_to_property_field",
            "before": "config-defined-state",
            "after": "remote-state"
        }
    ]
}

Melihat pratinjau perubahan referensi

Anda dapat menggunakan pratinjau untuk memeriksa perubahan resource jika Anda memperbarui deployment dari pratinjau.

Melihat perubahan resource

Untuk melihat pengaruh deployment pratinjau terhadap resource Anda, panggil ListResourceChanges:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges"

Ganti:

  • PROJECT_ID: ID project Google Cloud tempat deployment pratinjau Anda berada.
  • LOCATION: Region atau zona deployment pratinjau Anda.
  • PREVIEW_ID: ID deployment pratinjau Anda.
  • RESOURCE_CHANGE_ID: ID perubahan resource Anda.

Hasilnya akan terlihat seperti:

{
    "resourceChanges": [
        {
            "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID",
            "terraformInfo": {
                "address": "google_resource_type.resource_name",
                "type": "google_resource_type",
                "resourceName": "resource_name",
                "provider": "registry.terraform.io/hashicorp/google",
                "actions": [
                    "update"
                ]
            },
            "intent": "UPDATE",
            "propertyChanges": [
                {
                    "path": "$.json_path_to_property_field1",
                    "before": "true"
                },
                {
                    "path": "$.json_path_to_property_field2",
                    "before": "old value",
                    "after": "new value"
                }
            ]
        }
    ]
}

Melihat detail perubahan resource

Untuk melihat detail perubahan resource, panggil GetResourceChange:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID"

Ganti:

  • PROJECT_ID: ID project Google Cloud tempat deployment pratinjau Anda berada.
  • LOCATION: Region atau zona deployment pratinjau Anda.
  • PREVIEW_ID: ID deployment pratinjau Anda.
  • RESOURCE_CHANGE_ID: ID perubahan resource Anda.

Hasilnya akan terlihat seperti:

{
    "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID",
    "terraformInfo": {
        "address": "google_resource_type.resource_name",
        "type": "google_resource_type",
        "resourceName": "resource_name",
        "provider": "registry.terraform.io/hashicorp/google",
        "actions": [
            "update"
        ]
    },
    "intent": "UPDATE",
    "propertyChanges": [
        {
            "path": "$.json_path_to_property_field1",
            "before": "true"
        },
        {
            "path": "$.json_path_to_property_field2",
            "before": "old value",
            "after": "new value"
        }
    ]
}

Langkah berikutnya