Panduan ini membantu Anda memahami cara membuat, mengelola, dan menghapus grup deployment.
Grup deployment adalah kumpulan deployment yang disusun dalam grafik asiklik berarah. Gunakan grup deployment untuk mengelola deployment terkait sebagai satu resource logis. Anda dapat menerapkan deployment dalam urutan topologi, atau menghapusnya dalam urutan topologi terbalik.
Sebelum memulai
- Pastikan Infra Manager diaktifkan, dan Google Cloud CLI diinstal dan diinisialisasi.
- Pastikan Anda memiliki peran Identity and Access Management Config Admin (
roles/config.admin). Pastikan project Anda memiliki deployment yang ada, atau buat deployment. Untuk membuat deployment pengujian untuk membuat grup deployment, jalankan perintah berikut:
gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/NEW_DEPLOYMENT_ID \ --service-account=SERVICE_ACCOUNT \ --git-source-repo="https://github.com/terraform-google-modules/terraform-google-network" \ --git-source-directory="examples/simple_project_with_regional_network" \ --git-source-ref="v6.0.1" \ --input-values=network_name=test-network,project_id=PROJECT_ID \ --import-existing-resourcesGanti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi deployment
yang perlu Anda buat untuk membuat grup deployment. Misalnya,
us-central1. - NEW_DEPLOYMENT_ID: ID deployment. Anda memerlukan deployment yang ada untuk membuat grup deployment.
Ganti
EXISTING_DEPLOYMENT_IDdenganNEW_DEPLOYMENT_IDdi bagian berikut. - SERVICE_ACCOUNT: ID akun layanan yang Anda gunakan untuk membuat deployment.
Membuat grup deployment
Grup deployment adalah kumpulan deployment yang dikelola Infra Manager sebagai satu unit logis.
Saat Anda membuat grup deployment, setiap deployment yang Anda tambahkan ke grup adalah unit deployment.
Anda dapat membuat grup deployment di masing-masing region (seperti
us-central1) atau di multi-region (seperti us). Semua unit deployment dalam
grup deployment harus berada di project dan lokasi yang sama dengan
grup deployment itu sendiri. Orkestrasi lintas region dalam satu grup deployment
tidak didukung.
Untuk membuat grup deployment, gunakan REST API sebagai berikut:
Kirim permintaan
POSTke endpointdeploymentGroups:curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/?deployment_group_id=DEPLOYMENT_GROUP_ID" \ --data '{ "deploymentUnits": [ { "id": "DEPLOYMENT_UNIT_ID_1", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/EXISTING_DEPLOYMENT_ID" }, { "id": "DEPLOYMENT_UNIT_ID_2", "dependencies": ["DEPENDENT_UNIT_ID"] } ] }'Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment. Misalnya,
us-central1. - DEPLOYMENT_GROUP_ID: ID grup deployment yang ingin Anda buat.
- DEPLOYMENT_UNIT_ID_1: ID unit deployment yang akan ditambahkan ke grup deployment.
- EXISTING_DEPLOYMENT_ID: ID deployment yang ada yang Anda gunakan untuk membuat unit deployment dari grup deployment.
- DEPLOYMENT_UNIT_ID_2: ID unit deployment kedua yang akan ditambahkan ke grup deployment. Anda dapat menambahkan definisi untuk setiap unit deployment yang ingin ditambahkan ke grup deployment.
- Opsional: DEPENDENT_UNIT_ID: ID unit deployment yang berfungsi sebagai dependensi. Dependensi ini harus disediakan sebelum unit yang ditentukan, dan dihentikan penyediaannya setelah itu.
Kirim permintaan
GETke endpointdeploymentGroup:curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID"Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment. Contoh,
us-central1. - DEPLOYMENT_GROUP_ID: ID grup deployment baru.
Menyediakan grup deployment
Untuk menerapkan deployment yang dirujuk dalam grup deployment,
Anda harus menyediakan grup. Penyediaan menerapkan deployment
dalam urutan yang ditentukan oleh struktur deploymentUnits. Jika perlu membuat
atau mengupdate deployment selama proses ini, Anda dapat memberikan definisinya
dalam objek deploymentSpecs permintaan penyediaan.
Untuk menyediakan grup deployment, gunakan REST API sebagai berikut:
Kirim permintaan
POSTke endpointprovision:curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID:provision" \ --data '{ "deploymentSpecs": { "DEPLOYMENT_UNIT_ID_2": { "deploymentId": "DEPLOYMENT_ID_2", "deployment": { "terraformBlueprint": { "gitSource": { "directory": "examples/simple_project_with_regional_network", "ref": "v6.0.1", "repo": "https://github.com/terraform-google-modules/terraform-google-network" }, "inputValues": { "network_name": { "inputValue": "test-network" } }, "externalValues": { "project_id": { "deploymentSource": { "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/EXISTING_DEPLOYMENT_ID", "outputName": "project_id" } } } }, "serviceAccount": "SERVICE_ACCOUNT", "importExistingResources": true } } } }'Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment. Misalnya,
us-central1. - DEPLOYMENT_GROUP_ID: ID grup deployment baru.
- DEPLOYMENT_UNIT_ID_2: ID unit deployment kedua yang akan ditambahkan ke grup deployment. Anda dapat menambahkan definisi untuk setiap unit deployment yang ingin ditambahkan ke grup deployment.
- DEPLOYMENT_ID_2: ID string unit deployment kedua yang akan ditambahkan ke grup deployment.
- EXISTING_DEPLOYMENT_ID: ID deployment yang ada.
- SERVICE_ACCOUNT: ID string akun layanan yang Anda gunakan untuk menyediakan grup deployment.
Untuk mengirim permintaan
GETke endpoint operasi, gunakan REST API sebagai berikut:curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment. Misalnya,
us-central1. - OPERATION_ID: ID operasi yang ingin
Anda kueri. Misalnya,
operation-1000000000000-64d67ecd2868c-caa044f9-6b48677e
Infra Manager menggunakan operasi yang berjalan lama (LRO) untuk menampilkan progres penyediaan. Respons yang berhasil menunjukkan bahwa penyediaan telah selesai:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OP_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.config.v1.OperationMetadata", "createTime": "2026-02-24T01:27:57.045161236Z", "target": "projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1", "provisionDeploymentGroupMetadata": { "step": "PROVISIONING_DEPLOYMENT_UNITS", "deploymentUnitProgresses": [ { "unitId": "DEPLOYMENT_UNIT_ID_1", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/EXISTING_DEPLOYMENT_ID", "state": "APPLYING_DEPLOYMENT", "intent": "UPDATE_DEPLOYMENT", "deploymentOperationSummary": { "build": "56c739c7-cf42-457c-a889-0e0c139cf7b3", "logs": "gs://path/to/log", "content": "gs://path/to/content", "artifacts": "gs://path/to/artifacts" } }, { "unitId": "DEPLOYMENT_UNIT_ID_2", "state": "QUEUED", "intent": "CREATE_DEPLOYMENT" } ] } } }Dengan:
- OP_ID: ID operasi. Dibuat oleh Infra Manager.
- EXISTING_DEPLOYMENT_ID: ID deployment yang akan disediakan oleh Infra Manager sebelum
DEPLOYMENT_UNIT_ID_1.
Mencantumkan revisi grup deployment
Infra Manager membuat revisi grup deployment setelah operasi provision
atau deprovision selesai.
Untuk mencantumkan revisi grup deployment, gunakan REST API sebagai berikut:
Kirim permintaan
GETke endpointrevisions:curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID/revisions"Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment. Misalnya,
us-central1. - DEPLOYMENT_GROUP_ID: ID grup deployment yang revisinya ingin Anda cantumkan.
Memperbarui grup deployment
Untuk memperbarui grup deployment, ubah definisi grup deployment Anda. Anda dapat menyediakan definisi yang diperbarui secara opsional ke grup deployment.
Untuk memperbarui grup deployment, gunakan REST API sebagai berikut:
Kirim permintaan
PATCHke endpointdeploymentGroups:curl \ -X PATCH \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID" \ --data '{ "deploymentUnits": [ { "id": "DEPLOYMENT_UNIT_ID_3" } ] }'Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment. Misalnya,
us-central1. - DEPLOYMENT_GROUP_ID: ID grup deployment yang ingin Anda perbarui.
- DEPLOYMENT_UNIT_ID_3: ID untuk deployment yang akan diperbarui.
Opsional: Sediakan grup deployment yang diperbarui. Kirim permintaan
POSTke endpointprovision:curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID:provision" \ --data '{ "deploymentSpecs": { "DEPLOYMENT_UNIT_ID_3": { "deploymentId": "EXISTING_DEPLOYMENT_ID", "deployment": { "terraformBlueprint": { "gitSource": { "directory": "examples/simple_project_with_regional_network", "ref": "v6.0.1", "repo": "https://github.com/terraform-google-modules/terraform-google-network" }, "inputValues": { "network_name": { "inputValue": "test-network" }, "project_id": { "inputValue": "PROJECT_ID" } } }, "serviceAccount": "SERVICE_ACCOUNT", "importExistingResources": true } } } }'Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment. Misalnya,
us-central1. - DEPLOYMENT_GROUP_ID: ID grup deployment yang ingin Anda perbarui.
- DEPLOYMENT_UNIT_ID_3: ID unit deployment pihak ketiga yang akan ditambahkan ke grup deployment.
- EXISTING_DEPLOYMENT_ID: ID deployment yang ada.
- SERVICE_ACCOUNT: ID string akun layanan yang Anda gunakan untuk memperbarui grup deployment.
Saat Anda menyediakan grup deployment, perubahan berdasarkan revisi terakhir yang berhasil diterapkan ke deployment dalam grup deployment.
Jika Anda menghapus deployment dari definisi grup deployment, lalu menyediakan deployment tersebut, deployment yang dihapus akan dihapus beserta resource-nya.
Respons yang berhasil menunjukkan bahwa penyediaan telah selesai.
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OP_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.config.v1.OperationMetadata", "createTime": "2026-02-26T20:03:26.580085899Z", "target": "projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1", "provisionDeploymentGroupMetadata": { "step": "PROVISIONING_DEPLOYMENT_UNITS", "deploymentUnitProgresses": [ { "unitId": "revisions/REVISION_ID/deploymentUnits/DEPLOYMENT_UNIT_ID_2", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID_2", "state": "DELETING_DEPLOYMENT", "intent": "CLEAN_UP", "deploymentOperationSummary": { "deploymentStep": "VALIDATING_REPOSITORY" } }, { "unitId": "revisions/REVISION_ID/deploymentUnits/DEPLOYMENT_UNIT_ID_1", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/NEW_DEPLOYMENT_NAME", "state": "QUEUED", "intent": "CLEAN_UP" }, { "unitId": "DEPLOYMENT_UNIT_ID_3", "state": "QUEUED", "intent": "RECREATE_DEPLOYMENT" } ] } }, "done": false }Dengan:
- OP_ID: merepresentasikan ID operasi. Dibuat oleh Infra Manager.
- REVISION_ID: merepresentasikan ID revisi. Dibuat oleh Infra Manager.
Mencabut penyediaan grup deployment
Batalkan penyediaan grup deployment untuk menghapus semua deployment yang direferensikannya, dan semua deployment yang merupakan bagian dari revisi terakhir yang berhasil (tetapi telah dihapus).
Untuk membatalkan penyediaan grup deployment, gunakan REST API sebagai berikut:
Kirim permintaan
POSTke endpointdeprovision:curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID:deprovision" \ --data '{ "deletePolicy": "DELETE", "force": true }'Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment.
Misalnya,
us-central1. - DEPLOYMENT_GROUP_ID: ID grup deployment yang ingin Anda batalkan penyediaannya.
Respons yang berhasil menunjukkan bahwa penghapusan penyediaan telah selesai.
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OP_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.config.v1.OperationMetadata", "createTime": "2026-02-26T20:12:46.929574561Z", "endTime": "2026-02-26T20:14:04.390333218Z", "target": "projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1", "provisionDeploymentGroupMetadata": { "step": "SUCCEEDED", "deploymentUnitProgresses": [ { "unitId": "DEPLOYMENT_UNIT_ID", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_NAME_3", "state": "SUCCEEDED", "deploymentOperationSummary": { "deploymentStep": "SUCCEEDED" } } ] } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.config.v1.DeploymentGroup", "name": "projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID", "createTime": "2026-02-24T01:21:14.001716666Z", "updateTime": "2026-02-26T20:12:46.931142650Z", "state": "ACTIVE", "deploymentUnits": [ { "id": "DEPLOYMENT_UNIT_ID_3" } ], "provisioningState": "DEPROVISIONED" } }
Menghapus grup deployment
Setelah Anda membatalkan penyediaan grup deployment, metadatanya akan tetap ada. Untuk menghapus metadata, Anda harus menghapus grup deployment.
Untuk menghapus grup deployment, gunakan REST API sebagai berikut:
Kirim permintaan
DELETEke endpointdeploymentGroups. Tetapkanforceketruejika ada revisi.curl \ -X DELETE \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID" \ --data '{ "force": true }'Ganti kode berikut:
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: Google Cloud lokasi grup deployment. Misalnya,
us-central1. - DEPLOYMENT_GROUP_ID: ID grup deployment yang ingin Anda hapus.
Langkah berikutnya
- Pelajari lebih lanjut Infra Manager.
- Lihat referensi API Infrastructure Manager.