Bereitstellungsgruppen verwalten

In dieser Anleitung erfahren Sie, wie Sie Bereitstellungsgruppen erstellen, verwalten und löschen.

Eine Bereitstellungsgruppe ist eine Sammlung von Bereitstellungen, die in einem gerichteten azyklischen Graphen angeordnet sind. Verwenden Sie Bereitstellungsgruppen, um zugehörige Bereitstellungen als einzelne logische Ressource zu verwalten. Sie können Bereitstellungen in topologischer Reihenfolge anwenden oder in umgekehrter topologischer Reihenfolge löschen.

Hinweis

  1. Prüfen Sie, ob Infra Manager aktiviert und die Google Cloud CLI installiert und initialisiert ist.
  2. Sie benötigen Identity and Access Management-Rolle Config Admin (roles/config.admin).
  3. Prüfen Sie, ob Ihr Projekt eine Bereitstellung hat, oder erstellen Sie eine. Führen Sie den folgenden Befehl aus, um ein Test-Deployment zum Erstellen von Deployment-Gruppen zu erstellen:

    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-resources
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellung, die Sie zum Erstellen einer Bereitstellungsgruppe erstellen müssen. Beispiel: us-central1
    • NEW_DEPLOYMENT_ID: Die ID einer Bereitstellung. Sie benötigen eine vorhandene Bereitstellung, um eine Bereitstellungsgruppe zu erstellen. Ersetzen Sie EXISTING_DEPLOYMENT_ID durch NEW_DEPLOYMENT_ID in den folgenden Abschnitten.
    • SERVICE_ACCOUNT: die ID des Dienstkontos, das Sie zum Erstellen des Deployments verwenden.

Bereitstellungsgruppe erstellen

Eine Bereitstellungsgruppe ist eine Sammlung von Bereitstellungen, die von Infra Manager als eine logische Einheit verwaltet werden.

Wenn Sie eine Bereitstellungsgruppe erstellen, ist jede Bereitstellung, die Sie der Gruppe hinzufügen, eine Bereitstellungseinheit.

So erstellen Sie eine Bereitstellungsgruppe mit der REST API:

  1. Senden Sie eine POST-Anfrage an den deploymentGroups-Endpunkt:

    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"]
            }
          ]
        }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1
    • DEPLOYMENT_GROUP_ID: die ID der Bereitstellungsgruppe, die Sie erstellen möchten.
    • DEPLOYMENT_UNIT_ID_1: Die ID der Bereitstellungseinheit, die der Bereitstellungsgruppe hinzugefügt werden soll.
    • EXISTING_DEPLOYMENT_ID: die ID eines vorhandenen Deployments, das Sie zum Erstellen einer Deployment-Einheit der Deployment-Gruppe verwenden.
    • DEPLOYMENT_UNIT_ID_2: Die ID einer zweiten Bereitstellungseinheit, die der Bereitstellungsgruppe hinzugefügt werden soll. Sie können Definitionen für jede Bereitstellungseinheit hinzufügen, die Sie Ihrer Bereitstellungsgruppe hinzufügen möchten.
    • Optional: DEPENDENT_UNIT_ID: die ID der Bereitstellungseinheit, die als Abhängigkeit dient. Diese Abhängigkeit muss vor der definierten Einheit bereitgestellt und danach wieder aufgehoben werden.
  2. Senden Sie eine GET-Anfrage an den deploymentGroup-Endpunkt:

    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"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1.
    • DEPLOYMENT_GROUP_ID: Die ID der neuen Bereitstellungsgruppe.

Bereitstellungsgruppe bereitstellen

Wenn Sie die in einer Bereitstellungsgruppe referenzierten Bereitstellungen anwenden möchten, müssen Sie die Gruppe bereitstellen. Beim Bereitstellen werden die Bereitstellungen in der Reihenfolge angewendet, die durch die deploymentUnits-Struktur definiert ist. Wenn Sie während dieses Vorgangs ein Deployment erstellen oder aktualisieren müssen, können Sie die Definition im deploymentSpecs-Objekt Ihrer Bereitstellungsanfrage angeben.

So stellen Sie eine Bereitstellungsgruppe mit der REST API bereit:

  1. Senden Sie eine POST-Anfrage an den provision-Endpunkt:

    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
                }
            }
          }
        }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1
    • DEPLOYMENT_GROUP_ID: Die ID der neuen Bereitstellungsgruppe.
    • DEPLOYMENT_UNIT_ID_2: Die ID einer zweiten Bereitstellungseinheit, die der Bereitstellungsgruppe hinzugefügt werden soll. Sie können Definitionen für jede Bereitstellungseinheit hinzufügen, die Sie Ihrer Bereitstellungsgruppe hinzufügen möchten.
    • DEPLOYMENT_ID_2: Die String-ID der zweiten Bereitstellungseinheit, die der Bereitstellungsgruppe hinzugefügt werden soll.
    • EXISTING_DEPLOYMENT_ID: Die ID eines vorhandenen Deployments.
    • SERVICE_ACCOUNT: Die String-ID des Dienstkontos, das Sie zum Bereitstellen der Bereitstellungsgruppe verwenden.
  2. So senden Sie eine GET-Anfrage an den Operations-Endpunkt über die REST API:

     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"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1
    • OPERATION_ID: die Vorgangs-ID, die Sie abfragen möchten. Beispiel: operation-1000000000000-64d67ecd2868c-caa044f9-6b48677e.
  3. Infra Manager verwendet einen Vorgang mit langer Ausführungszeit (Long-Running Operation, LRO), um den Bereitstellungsfortschritt anzuzeigen. Eine erfolgreiche Antwort gibt an, dass die Bereitstellung abgeschlossen ist:

    {
      "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"
            }
          ]
        }
      }
    }
    

    Wobei:

    • OP_ID: die Vorgangs-ID. Von Infra Manager generiert.
    • EXISTING_DEPLOYMENT_ID: Die ID des Deployments, das von Infra Manager vor DEPLOYMENT_UNIT_ID_1 bereitgestellt wird.

Überarbeitungen einer Bereitstellungsgruppe auflisten

Infra Manager erstellt nach Abschluss eines provision- oder deprovision-Vorgangs eine Überarbeitung der Bereitstellungsgruppe.

So listen Sie Überarbeitungen von Bereitstellungsgruppen mit der REST API auf:

  1. Senden Sie eine GET-Anfrage an den revisions-Endpunkt:

    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"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1
    • DEPLOYMENT_GROUP_ID: die ID der Bereitstellungsgruppe, für die Sie Revisionen auflisten möchten.

Bereitstellungsgruppe aktualisieren

Wenn Sie eine Bereitstellungsgruppe aktualisieren möchten, ändern Sie die Definition der Bereitstellungsgruppe. Optional können Sie die aktualisierte Definition für die Bereitstellungsgruppe bereitstellen.

So aktualisieren Sie eine Bereitstellungsgruppe mit der REST API:

  1. Senden Sie eine PATCH-Anfrage an den deploymentGroups-Endpunkt:

    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"
            }
          ]
        }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1
    • DEPLOYMENT_GROUP_ID: Die ID der Bereitstellungsgruppe, die Sie aktualisieren möchten.
    • DEPLOYMENT_UNIT_ID_3: Die ID der zu aktualisierenden Bereitstellung.
  2. Optional: Stellen Sie die aktualisierte Bereitstellungsgruppe bereit. Senden Sie eine POST-Anfrage an den provision-Endpunkt:

    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
                }
            }
          }
        }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1
    • DEPLOYMENT_GROUP_ID: Die ID der Bereitstellungsgruppe, die Sie aktualisieren möchten.
    • DEPLOYMENT_UNIT_ID_3: Die ID einer dritten Bereitstellungseinheit, die der Bereitstellungsgruppe hinzugefügt werden soll.
    • EXISTING_DEPLOYMENT_ID: die ID einer vorhandenen Bereitstellung.
    • SERVICE_ACCOUNT: Die String-ID des Dienstkontos, mit dem Sie die Bereitstellungsgruppe aktualisieren.

    Wenn Sie eine Bereitstellungsgruppe bereitstellen, werden Änderungen, die auf der letzten erfolgreichen Revision basieren, auf Bereitstellungen in der Bereitstellungsgruppe angewendet.

    Wenn Sie ein Deployment aus der Definition der Deployment-Gruppe entfernen und dann bereitstellen, wird das entfernte Deployment zusammen mit seinen Ressourcen gelöscht.

  3. Eine erfolgreiche Antwort gibt an, dass die Bereitstellung abgeschlossen ist.

    {
      "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
    }
    

    Wobei:

    • OP_ID: steht für die Vorgangs-ID. Von Infra Manager generiert.
    • REVISION_ID: steht für die Revisions-ID. Generiert von Infra Manager.

Bereitstellung einer Bereitstellungsgruppe aufheben

Wenn Sie die Bereitstellung einer Bereitstellungsgruppe aufheben, werden alle Bereitstellungen gelöscht, auf die verwiesen wird, sowie alle Bereitstellungen, die Teil der letzten erfolgreichen Überarbeitung waren (aber inzwischen gelöscht wurden).

So heben Sie die Bereitstellung einer Bereitstellungsgruppe mit der REST API auf:

  1. Senden Sie eine POST-Anfrage an den deprovision-Endpunkt:

    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
        }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1
    • DEPLOYMENT_GROUP_ID: Die ID der Bereitstellungsgruppe, die Sie aufheben möchten.
  2. Eine erfolgreiche Antwort gibt an, dass die Bereitstellung aufgehoben wurde.

    {
      "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"
      }
    }
    

Bereitstellungsgruppe löschen

Nachdem Sie eine Bereitstellungsgruppe aufgehoben haben, bleiben die zugehörigen Metadaten erhalten. Wenn Sie die Metadaten entfernen möchten, müssen Sie die Bereitstellungsgruppe löschen.

So löschen Sie eine Bereitstellungsgruppe mit der REST API:

  1. Senden Sie eine DELETE-Anfrage an den deploymentGroups-Endpunkt. Setzen Sie force auf true, wenn Überarbeitungen vorhanden sind.

    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
        }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • LOCATION: Der Google Cloud Standort der Bereitstellungsgruppe. Beispiel: us-central1
    • DEPLOYMENT_GROUP_ID: die ID der Bereitstellungsgruppe, die Sie löschen möchten.

Nächste Schritte