Questa guida ti aiuta a capire come creare, gestire ed eliminare i gruppi di deployment.
Un gruppo di deployment è una raccolta di deployment disposti in un grafo aciclico orientato. Utilizza i gruppi di deployment per gestire i deployment correlati come una singola risorsa logica. Puoi applicare i deployment in ordine topologico o eliminarli in ordine topologico inverso.
Prima di iniziare
- Assicurati che Infra Manager sia abilitato e che Google Cloud CLI sia installato e inizializzato.
- Assicurati di disporre del ruolo Identity and Access Management Config Admin (
roles/config.admin). Assicurati che il progetto abbia un deployment esistente o creane uno. Per creare un deployment di test per la creazione di gruppi di deployment, esegui questo comando:
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-resourcesSostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del deployment
che devi creare per formare un gruppo di deployment. Ad esempio:
us-central1. - NEW_DEPLOYMENT_ID: l'ID di un
deployment. Per creare un gruppo di deployment, devi disporre di un deployment esistente.
Sostituisci
EXISTING_DEPLOYMENT_IDconNEW_DEPLOYMENT_IDnelle seguenti sezioni. - SERVICE_ACCOUNT: l'ID del account di servizio che utilizzi per creare il deployment.
Crea un gruppo di deployment
Un gruppo di deployment è una raccolta di deployment che Infra Manager gestisce come una singola unità logica.
Quando crei un gruppo di deployment, ogni deployment che aggiungi al gruppo è un'unità di deployment.
Per creare un gruppo di deployment, utilizza l'API REST come segue:
Invia una richiesta
POSTall'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"] } ] }'Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment. Ad esempio:
us-central1. - DEPLOYMENT_GROUP_ID: l'ID del gruppo di deployment che vuoi creare.
- DEPLOYMENT_UNIT_ID_1: l'ID dell'unità di deployment da aggiungere al gruppo di deployment.
- EXISTING_DEPLOYMENT_ID: l'ID di un deployment esistente che utilizzi per creare un'unità di deployment del gruppo di deployment.
- DEPLOYMENT_UNIT_ID_2: l'ID di una seconda unità di deployment da aggiungere al gruppo di deployment. Puoi aggiungere definizioni per ogni unità di deployment che vuoi aggiungere al gruppo di deployment.
- (Facoltativo) DEPENDENT_UNIT_ID: l'ID dell'unità di implementazione che funge da dipendenza. Questa dipendenza deve essere sottoposta a provisioning prima dell'unità definita e deprovisioning dopo.
Invia una richiesta
GETall'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"Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment. Ad
esempio,
us-central1. - DEPLOYMENT_GROUP_ID: l'ID del nuovo gruppo di deployment.
Esegui il provisioning di un gruppo di deployment
Per applicare i deployment a cui viene fatto riferimento in un gruppo di deployment,
devi eseguire il provisioning del gruppo. Il provisioning applica i deployment
nell'ordine definito dalla struttura di deploymentUnits. Se devi creare
o aggiornare un deployment durante questa procedura, puoi fornire la relativa definizione
nell'oggetto deploymentSpecs della richiesta di provisioning.
Per eseguire il provisioning di un gruppo di deployment, utilizza l'API REST come segue:
Invia una richiesta
POSTall'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 } } } }'Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment. Ad esempio:
us-central1. - DEPLOYMENT_GROUP_ID: l'ID del nuovo gruppo di deployment.
- DEPLOYMENT_UNIT_ID_2: l'ID di una seconda unità di deployment da aggiungere al gruppo di deployment. Puoi aggiungere definizioni per ogni unità di deployment che vuoi aggiungere al gruppo di deployment.
- DEPLOYMENT_ID_2: l'ID stringa della seconda unità di deployment da aggiungere al gruppo di deployment.
- EXISTING_DEPLOYMENT_ID: l'ID di un deployment esistente.
- SERVICE_ACCOUNT: l'ID stringa del account di servizio che utilizzi per eseguire il provisioning del gruppo di deployment.
Per inviare una richiesta
GETall'endpoint delle operazioni, utilizza l'API REST nel seguente modo: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"Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment. Ad esempio:
us-central1. - OPERATION_ID: l'ID operazione che
vuoi interrogare. Ad esempio,
operation-1000000000000-64d67ecd2868c-caa044f9-6b48677e
Infra Manager utilizza un'operazione a lunga esecuzione (LRO) per mostrare l'avanzamento del provisioning. Una risposta corretta indica che il provisioning è stato completato:
{ "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" } ] } } }Dove:
- OP_ID: l'ID operazione. Generato da Infra Manager.
- EXISTING_DEPLOYMENT_ID: l'ID del deployment che
Infra Manager eseguirà il provisioning prima di
DEPLOYMENT_UNIT_ID_1.
Elenca le revisioni di un gruppo di deployment
Infra Manager crea una revisione del gruppo di deployment al termine di un'operazione provision
o deprovision.
Per elencare le revisioni del gruppo di deployment, utilizza l'API REST come segue:
Invia una richiesta
GETall'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"Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment. Ad esempio:
us-central1. - DEPLOYMENT_GROUP_ID: l'ID del gruppo di deployment per cui vuoi elencare le revisioni.
Aggiorna un gruppo di deployment
Per aggiornare un gruppo di deployment, modifica la definizione del gruppo di deployment. Se vuoi, puoi eseguire il provisioning della definizione aggiornata nel gruppo di deployment.
Per aggiornare un gruppo di deployment, utilizza l'API REST come segue:
Invia una richiesta
PATCHall'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" } ] }'Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment. Ad esempio:
us-central1. - DEPLOYMENT_GROUP_ID: l'ID del gruppo di deployment che vuoi aggiornare.
- DEPLOYMENT_UNIT_ID_3: l'ID del deployment da aggiornare.
(Facoltativo) Esegui il provisioning del gruppo di deployment aggiornato. Invia una richiesta
POSTall'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 } } } }'Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment. Ad esempio:
us-central1. - DEPLOYMENT_GROUP_ID: l'ID del gruppo di deployment che vuoi aggiornare.
- DEPLOYMENT_UNIT_ID_3: l'ID di una terza unità di deployment da aggiungere al gruppo di deployment.
- EXISTING_DEPLOYMENT_ID: l'ID di un deployment esistente.
- SERVICE_ACCOUNT: l'ID stringa del account di servizio che utilizzi per aggiornare il gruppo di deployment.
Quando esegui il provisioning di un gruppo di deployment, le modifiche basate sull'ultima revisione riuscita vengono applicate ai deployment all'interno del gruppo di deployment.
Se rimuovi un deployment dalla definizione del gruppo di deployment e poi esegui il provisioning, il deployment rimosso verrà eliminato insieme alle relative risorse.
Una risposta positiva indica che il provisioning è stato completato.
{ "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 }Dove:
- OP_ID: rappresenta l'ID operazione. Generato da Infra Manager.
- REVISION_ID: rappresenta l'ID revisione. Generato da Infra Manager.
Eseguire il deprovisioning di un gruppo di deployment
Esegui il deprovisioning di un gruppo di deployment per eliminare tutti i deployment a cui fa riferimento e tutti i deployment che facevano parte dell'ultima revisione riuscita (ma che sono stati eliminati).
Per eseguire il deprovisioning di un gruppo di deployment, utilizza l'API REST come segue:
Invia una richiesta
POSTall'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 }'Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment.
Ad esempio:
us-central1. - DEPLOYMENT_GROUP_ID: l'ID del gruppo di deployment di cui vuoi eseguire il deprovisioning.
Una risposta positiva indica che il deprovisioning è stato completato.
{ "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" } }
Eliminare un gruppo di deployment
Dopo aver deprovisionato un gruppo di deployment, i relativi metadati rimangono. Per rimuovere i metadati, devi eliminare il gruppo di deployment.
Per eliminare un gruppo di deployment, utilizza l'API REST come segue:
Invia una richiesta
DELETEall'endpointdeploymentGroups. Impostaforcesutruese esistono revisioni.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 }'Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la Google Cloud posizione del gruppo di deployment. Ad esempio:
us-central1. - DEPLOYMENT_GROUP_ID: l'ID del gruppo di deployment che vuoi eliminare.
Passaggi successivi
- Scopri di più su Infra Manager.
- Consulta il riferimento API Infrastructure Manager.