En esta guía, se explica cómo crear, administrar y borrar grupos de implementación.
Un grupo de implementación es una colección de implementaciones dispuestas en un gráfico acíclico dirigido. Usa grupos de implementación para administrar implementaciones relacionadas como un solo recurso lógico. Puedes aplicar implementaciones en orden topológico o borrarlas en orden topológico inverso.
Antes de comenzar
- Asegúrate de que Infra Manager esté habilitado y de que Google Cloud CLI esté instalado y se haya inicializado.
- Asegúrate de tener el rol Administrador de configuración (
roles/config.admin) de Identity and Access Management. Asegúrate de que tu proyecto tenga una implementación existente o crea una. Para crear una implementación de prueba para crear grupos de implementación, ejecuta el siguiente 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-resourcesReemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación de la implementación que debes crear para formar un grupo de implementación. Por ejemplo,
us-central1. - NEW_DEPLOYMENT_ID: ID de una implementación. Necesitas una implementación existente para crear un grupo de implementación.
Reemplaza
EXISTING_DEPLOYMENT_IDporNEW_DEPLOYMENT_IDen las siguientes secciones. - SERVICE_ACCOUNT: Es el ID de la cuenta de servicio que usas para crear la implementación.
Crea un grupo de implementación
Un grupo de implementación es un conjunto de implementaciones que Infra Manager administra como una sola unidad lógica.
Cuando creas un grupo de implementación, cada implementación que agregas al grupo es una unidad de implementación.
Para crear un grupo de implementación, usa la API de REST de la siguiente manera:
Envía una solicitud
POSTal extremodeploymentGroups: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"] } ] }'Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación. Por ejemplo,
us-central1. - DEPLOYMENT_GROUP_ID: Es el ID del grupo de implementación que deseas crear.
- DEPLOYMENT_UNIT_ID_1: Es el ID de la unidad de implementación que se agregará al grupo de implementación.
- EXISTING_DEPLOYMENT_ID: Es el ID de una implementación existente que usas para crear una unidad de implementación del grupo de implementación.
- DEPLOYMENT_UNIT_ID_2: Es el ID de una segunda unidad de implementación que se agregará al grupo de implementación. Puedes agregar definiciones para cada unidad de implementación que desees agregar a tu grupo de implementación.
- Opcional: DEPENDENT_UNIT_ID: Es el ID de la unidad de implementación que actúa como dependencia. Esta dependencia debe aprovisionarse antes de la unidad definida y desaprovisionarse después de ella.
Envía una solicitud
GETal extremodeploymentGroup: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"Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación. Por ejemplo:
us-central1. - DEPLOYMENT_GROUP_ID: Es el ID del nuevo grupo de implementación.
Aprovisiona un grupo de implementación
Para aplicar las implementaciones a las que se hace referencia en un grupo de implementación, debes aprovisionar el grupo. El aprovisionamiento aplica las implementaciones en el orden definido por la estructura deploymentUnits. Si necesitas crear o actualizar una implementación durante este proceso, puedes proporcionar su definición en el objeto deploymentSpecs de tu solicitud de aprovisionamiento.
Para aprovisionar un grupo de implementación, usa la API de REST de la siguiente manera:
Envía una solicitud
POSTal extremoprovision: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 } } } }'Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación. Por ejemplo,
us-central1. - DEPLOYMENT_GROUP_ID: Es el ID del nuevo grupo de implementación.
- DEPLOYMENT_UNIT_ID_2: Es el ID de una segunda unidad de implementación que se agregará al grupo de implementación. Puedes agregar definiciones para cada unidad de implementación que desees agregar a tu grupo de implementación.
- DEPLOYMENT_ID_2: Es el ID de cadena de la segunda unidad de implementación que se agregará al grupo de implementación.
- EXISTING_DEPLOYMENT_ID: Es el ID de una implementación existente.
- SERVICE_ACCOUNT: Es el ID de cadena de la cuenta de servicio que usas para aprovisionar el grupo de implementación.
Para enviar una solicitud
GETal extremo de operaciones, usa la API de REST de la siguiente manera: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"Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación. Por ejemplo,
us-central1. - OPERATION_ID: Es el ID de la operación que deseas consultar. Por ejemplo,
operation-1000000000000-64d67ecd2868c-caa044f9-6b48677e
Infra Manager usa una operación de larga duración (LRO) para mostrar el progreso del aprovisionamiento. Una respuesta correcta indica que el aprovisionamiento se completó:
{ "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" } ] } } }Aquí:
- OP_ID: Es el ID de la operación. Generado por Infra Manager.
- EXISTING_DEPLOYMENT_ID: Es el ID de la implementación que Infra Manager aprovisionará antes de
DEPLOYMENT_UNIT_ID_1.
Enumera las revisiones de un grupo de implementación
Infra Manager crea una revisión del grupo de implementación después de que se completa una operación de provision o deprovision.
Para enumerar las revisiones de un grupo de implementación, usa la API de REST de la siguiente manera:
Envía una solicitud
GETal extremorevisions: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"Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación. Por ejemplo,
us-central1. - DEPLOYMENT_GROUP_ID: Es el ID del grupo de implementación para el que deseas enumerar las revisiones.
Actualiza un grupo de implementación
Para actualizar un grupo de implementación, cambia su definición. De manera opcional, puedes aprovisionar la definición actualizada en el grupo de implementación.
Para actualizar un grupo de implementación, usa la API de REST de la siguiente manera:
Envía una solicitud
PATCHal extremodeploymentGroups: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" } ] }'Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación. Por ejemplo,
us-central1. - DEPLOYMENT_GROUP_ID: Es el ID del grupo de implementación que deseas actualizar.
- DEPLOYMENT_UNIT_ID_3: Es el ID de la implementación que se actualizará.
Opcional: Aprovisiona el grupo de implementación actualizado. Envía una solicitud
POSTal extremoprovision: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 } } } }'Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación. Por ejemplo,
us-central1. - DEPLOYMENT_GROUP_ID: Es el ID del grupo de implementación que deseas actualizar.
- DEPLOYMENT_UNIT_ID_3: Es el ID de una tercera unidad de implementación que se agregará al grupo de implementación.
- EXISTING_DEPLOYMENT_ID: Es el ID de una implementación existente.
- SERVICE_ACCOUNT: Es el ID de cadena de la cuenta de servicio que usas para actualizar el grupo de implementación.
Cuando aprovisionas un grupo de implementación, los cambios basados en la última revisión exitosa se aplican a las implementaciones dentro del grupo de implementación.
Si quitas una implementación de la definición del grupo de implementación y, luego, la aprovisionas, se borrará la implementación quitada junto con sus recursos.
Una respuesta correcta indica que se completó el aprovisionamiento.
{ "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 }Aquí:
- OP_ID: Representa el ID de la operación. Generado por Infra Manager.
- REVISION_ID: Representa el ID de revisión. Generado por Infra Manager.
Desaprovisiona un grupo de implementación
Anula el aprovisionamiento de un grupo de implementación para borrar todas las implementaciones a las que se hace referencia y las implementaciones que formaron parte de la última revisión exitosa (pero que se borraron desde entonces).
Para cancelar el aprovisionamiento de un grupo de implementación, usa la API de REST de la siguiente manera:
Envía una solicitud
POSTal extremodeprovision: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 }'Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación.
Por ejemplo,
us-central1. - DEPLOYMENT_GROUP_ID: Es el ID del grupo de implementación que deseas desaprovisionar.
Una respuesta correcta indica que se completó la cancelación del aprovisionamiento.
{ "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" } }
Borra un grupo de implementación
Después de anular el aprovisionamiento de un grupo de implementación, sus metadatos permanecen. Para quitar los metadatos, debes borrar el grupo de implementación.
Para borrar un grupo de implementación, usa la API de REST de la siguiente manera:
Envía una solicitud
DELETEal extremodeploymentGroups. Estableceforceentruesi existen revisiones.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 }'Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la Google Cloud ubicación del grupo de implementación. Por ejemplo,
us-central1. - DEPLOYMENT_GROUP_ID: Es el ID del grupo de implementación que deseas borrar.
¿Qué sigue?
- Obtén más información sobre Infra Manager.
- Consulta la referencia de la API de Infrastructure Manager.