Este guia ajuda você a entender como criar, gerenciar e excluir grupos de implantação.
Um grupo de implantação é uma coleção de implantações organizadas em um gráfico acíclico direcionado. Use grupos de implantação para gerenciar implantações relacionadas como um único recurso lógico. É possível aplicar implantações em ordem topológica ou excluí-las em ordem topológica inversa.
Antes de começar
- Confirme se o Infra Manager está ativado, e se a Google Cloud CLI está instalada e inicializada.
- Confirme se você tem o papel de administrador de configuração (
roles/config.admin) do Identity and Access Management. Confirme se o projeto tem uma implantação ou crie uma. Para criar uma implantação de teste para criar grupos de implantação, execute o seguinte 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-resourcesSubstitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização da implantação
que você precisa criar para formar um grupo de implantação. Por exemplo,
us-central1. - NEW_DEPLOYMENT_ID: o ID de uma
implantação. Você precisa de uma implantação para criar um grupo de implantação.
Substitua
EXISTING_DEPLOYMENT_IDporNEW_DEPLOYMENT_IDnas seções a seguir. - SERVICE_ACCOUNT: o ID da conta de serviço que você está usando para criar a implantação.
Criar um grupo de implantação
Um grupo de implantação é uma coleção de implantações que o Infra Manager gerencia como uma única unidade lógica.
Ao criar um grupo de implantação, cada implantação adicionada ao grupo é uma unidade de implantação.
Para criar um grupo de implantação, use a API REST da seguinte maneira:
Envie uma solicitação
POSTpara o 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"] } ] }'Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação. Por exemplo,
us-central1. - DEPLOYMENT_GROUP_ID: o ID do grupo de implantação que você quer criar.
- DEPLOYMENT_UNIT_ID_1: o ID da unidade de implantação a ser adicionada ao grupo de implantação.
- EXISTING_DEPLOYMENT_ID: o ID de uma implantação existente que você usa para criar uma unidade de implantação do grupo de implantação.
- DEPLOYMENT_UNIT_ID_2: o ID de uma segunda unidade de implantação a ser adicionada ao grupo de implantação. É possível adicionar definições para cada unidade de implantação que você quer adicionar ao grupo de implantação.
- Opcional: DEPENDENT_UNIT_ID: o ID da unidade de implantação que serve como dependência. Essa dependência precisa ser provisionada antes da unidade definida e desprovisionada depois dela.
Envie uma solicitação
GETpara o 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"Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação. Por exemplo,
us-central1. - DEPLOYMENT_GROUP_ID: o ID do novo grupo de implantação.
Provisionar um grupo de implantação
Para aplicar as implantações referenciadas em um grupo de implantação, é necessário provisionar o grupo. O provisionamento aplica as implantações na ordem definida pela estrutura deploymentUnits. Se você precisar criar ou atualizar uma implantação durante esse processo, poderá fornecer a definição dela no objeto deploymentSpecs da solicitação de provisionamento.
Para provisionar um grupo de implantação, use a API REST da seguinte maneira:
Envie uma solicitação
POSTpara o 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 } } } }'Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação. Por exemplo,
us-central1. - DEPLOYMENT_GROUP_ID: o ID do novo grupo de implantação.
- DEPLOYMENT_UNIT_ID_2: o ID de uma segunda unidade de implantação a ser adicionada ao grupo de implantação. É possível adicionar definições para cada unidade de implantação que você quer adicionar ao grupo de implantação.
- DEPLOYMENT_ID_2: o ID de string da segunda unidade de implantação a ser adicionada ao grupo de implantação.
- EXISTING_DEPLOYMENT_ID: o ID de uma implantação.
- SERVICE_ACCOUNT: o ID de string da conta de serviço que você está usando para provisionar o grupo de implantação.
Para enviar uma solicitação
GETao endpoint de operações, use a API REST da seguinte maneira: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"Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação. Por exemplo,
us-central1. - OPERATION_ID: o ID da operação que você
quer consultar. Por exemplo,
operation-1000000000000-64d67ecd2868c-caa044f9-6b48677e
O Infra Manager usa uma operação de longa duração (LRO, na sigla em inglês) para mostrar o progresso do provisionamento. Uma resposta bem-sucedida indica que o provisionamento foi concluído:
{ "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" } ] } } }Em que:
- OP_ID: o ID da operação. Gerado pelo Infra Manager.
- EXISTING_DEPLOYMENT_ID: o ID da implantação que
o Infra Manager vai provisionar antes de
DEPLOYMENT_UNIT_ID_1.
Listar revisões de um grupo de implantação
O Infra Manager cria uma revisão do grupo de implantação após a conclusão de uma operação provision
ou deprovision.
Para listar revisões do grupo de implantação, use a API REST da seguinte maneira:
Envie uma solicitação
GETpara o 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"Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação. Por exemplo,
us-central1. - DEPLOYMENT_GROUP_ID: o ID do grupo de implantação para o qual você quer listar revisões.
Atualizar um grupo de implantação
Para atualizar um grupo de implantação, mude a definição dele. Opcionalmente, provisione a definição atualizada para o grupo de implantação.
Para atualizar um grupo de implantação, use a API REST da seguinte maneira:
Envie uma solicitação
PATCHpara o 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" } ] }'Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação. Por exemplo,
us-central1. - DEPLOYMENT_GROUP_ID: o ID do grupo de implantação que você quer atualizar.
- DEPLOYMENT_UNIT_ID_3: o ID da implantação a ser atualizada.
Opcional: provisione o grupo de implantação atualizado. Envie uma solicitação
POSTpara o 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 } } } }'Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação. Por exemplo,
us-central1. - DEPLOYMENT_GROUP_ID: o ID do grupo de implantação que você quer atualizar.
- DEPLOYMENT_UNIT_ID_3: o ID de uma terceira unidade de implantação a ser adicionada ao grupo de implantação.
- EXISTING_DEPLOYMENT_ID: o ID de uma implantação existente.
- SERVICE_ACCOUNT: o ID de string da conta de serviço que você está usando para atualizar o grupo de implantação.
Ao provisionar um grupo de implantação, as mudanças com base na última revisão bem-sucedida são aplicadas às implantações dentro do grupo de implantação.
Se você remover uma implantação da definição do grupo de implantação e provisionar, a implantação removida será excluída junto com os recursos.
Uma resposta bem-sucedida indica que o provisionamento foi concluído.
{ "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 }Em que:
- OP_ID: representa o ID da operação. Gerado pelo Infra Manager.
- REVISION_ID: representa o ID da revisão. Gerado pelo Infra Manager.
Desprovisionar um grupo de implantação
Desprovisione um grupo de implantação para excluir todas as implantações referenciadas e as implantações que faziam parte da última revisão bem-sucedida (mas foram excluídas desde então).
Para desprovisionar um grupo de implantação, use a API REST da seguinte maneira:
Envie uma solicitação
POSTpara o 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 }'Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação.
Por exemplo,
us-central1. - DEPLOYMENT_GROUP_ID: o ID do grupo de implantação que você quer desprovisionar.
Uma resposta bem-sucedida indica que o desprovisionamento foi concluído.
{ "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" } }
Excluir um grupo de implantação
Depois de desprovisionar um grupo de implantação, os metadados dele permanecem. Para remover os metadados, é necessário excluir o grupo de implantação.
Para excluir um grupo de implantação, use a API REST da seguinte maneira:
Envie uma solicitação
DELETEpara o endpointdeploymentGroups. Definaforcecomotruese houver revisões.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 }'Substitua:
- PROJECT_ID: o ID doprojeto. Google Cloud
- LOCATION: a Google Cloud localização do grupo de implantação. Por exemplo,
us-central1. - DEPLOYMENT_GROUP_ID: o ID do grupo de implantação que você quer excluir.
A seguir
- Saiba mais sobre Infra Manager.
- Consulte a referência da API Infrastructure Manager.