Vorhandene Terraform-Konfiguration importieren

Mit dem Application Design Center können Sie Ihre vorhandenenGoogle Cloud -Terraform-Konfigurationen für mehrere Produkte unverändert in eine Anwendungsvorlage importieren, ohne Ihren Code in einzelne Komponentenmodule umstrukturieren oder ihn zuerst in einem Katalog veröffentlichen zu müssen.

Im Gegensatz zu Terraform-Modulen für ein einzelnes Produkt, die Sie als Katalogkomponenten importieren und im Design-Canvas verbinden, ist eine Terraform-Konfiguration für mehrere Produkte ein Stammmodul, das Ressourcen für mehrere Google Cloud -Produkte bereitstellt. Informationen zum Importieren von Einzelproduktmodulen als Komponenten finden Sie unter Komponenten importieren.

Wenn Sie vorhandene Terraform-Konfigurationen in das App Design Center importieren, können Sie Folgendes tun:

  • Bringen Sie vorhandene Terraform-Konfigurationen in die Verwaltung des Anwendungslebenszyklus von App Design Center und registrieren Sie bereitgestellte Ressourcen automatisch in App Hub.
  • Versionieren Sie Ihre Terraform-Konfigurationen, indem Sie unveränderliche Versionen von Anwendungsvorlagen erstellen.
  • Anwendungen mit Infrastructure Manager als Vorabversion ansehen und bereitstellen oder die Terraform-Dateien nach Cloud Storage exportieren.

Nachdem Sie eine Vorlagenversion erstellt haben, können Sie sie auf eine der folgenden Arten verwenden:

  • Direkt bereitstellen: Erstellen Sie eine Anwendung aus der Version, rufen Sie eine Vorschau auf, um einen Bewertungsbericht zu erhalten, und stellen Sie sie bereit. Sie müssen die Vorlage nicht in einem Katalog veröffentlichen, freigeben oder zuerst eine geteilte Vorlage finden.
  • Über Ihren Katalog wiederverwenden: Veröffentlichen Sie die Version in Ihrem Katalog, fügen Sie sie als Komponente zu einer zusammengesetzten Anwendungsvorlage hinzu und exportieren Sie die Terraform-Konfiguration der zusammengesetzten Vorlage. Weitere Informationen finden Sie unter Anwendungsvorlage in einem Katalog veröffentlichen.

Hinweis

Bitten Sie Ihren Administrator, Ihnen die erforderlichen Rollen für den für die Verwaltung von Anwendungen konfigurierten Ordner oder das Verwaltungsprojekt zuzuweisen, wie in der folgenden Tabelle aufgeführt, um die Aufgaben in diesem Dokument auszuführen:

Aufgabe Erforderliche Rollen
Anwendungsvorlagen und Vorlagenversionen erstellen, importieren, Snapshots erstellen und exportieren Application Design Center Admin (roles/designcenter.admin) oder
Application Design Center User (roles/designcenter.user)
Anwendungen erstellen, bereitstellen und exportieren Application Admin (roles/designcenter.applicationAdmin) oder
Application Editor (roles/designcenter.applicationEditor)

Weitere Informationen zu Rollen finden Sie unter Zugriffssteuerung mit Identity and Access Management.

Speichern Sie Ihr Terraform-Stammmodul (.tf-Dateien und alle unterstützenden Dateien, z. B. .json-Dateien) in einer der folgenden Quellen:

  • Ein Cloud Storage-Bucket.
  • Ein Developer Connect-Repository.
  • Ein öffentliches Git-Repository.
  • Eine lokale YAML- oder JSON-Datei, die die Dateien enthält.

Terraform in eine Anwendungsvorlage importieren

Führen Sie die folgenden Schritte mit der Google Cloud CLI aus, um eine Anwendungsvorlage zu erstellen, Ihre vorhandene Terraform-Konfiguration zu importieren und eine unveränderliche Vorlagenversion zu erstellen.

  1. Erstellen Sie eine Anwendungsvorlage in Ihrem Space.

    gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
        --project=PROJECT \
        --location=LOCATION \
        --space=SPACE \
        --display-name=DISPLAY_NAME
    

    Ersetzen Sie Folgendes:

    • APPLICATION_TEMPLATE: Die ID für die Anwendungsvorlage, die Sie erstellen möchten.
    • PROJECT: Die ID Ihres Verwaltungsprojekts.
    • LOCATION: Ihre Standort-ID.
    • SPACE: Ihre Space-ID.
    • DISPLAY_NAME: Ein Anzeigename für die Anwendungsvorlage.

    Weitere Informationen finden Sie unter gcloud design-center spaces application-templates create.

  2. Importieren Sie Ihre Terraform-Konfiguration aus einer der folgenden Quellen in die Anwendungsvorlage:

    • Führen Sie den folgenden Befehl aus, um aus einem Cloud Storage-Bucket zu importieren:

      gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \
          --project=PROJECT \
          --location=LOCATION \
          --space=SPACE \
          --gcs-uri=GCS_URI \
          --raw-terraform-import-enabled
      
    • Führen Sie den folgenden Befehl aus, um aus einem Developer Connect-Repository zu importieren:

      gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \
          --project=PROJECT \
          --location=LOCATION \
          --space=SPACE \
          --developer-connect-repo-uri=DEVELOPER_CONNECT_REPO_URI \
          --developer-connect-branch=DEVELOPER_CONNECT_BRANCH \
          --developer-connect-dir=DEVELOPER_CONNECT_DIR \
          --raw-terraform-import-enabled
      
    • Führen Sie den folgenden Befehl aus, um aus einem öffentlichen Git-Repository zu importieren:

      gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \
          --project=PROJECT \
          --location=LOCATION \
          --space=SPACE \
          --git-source-repo=GIT_SOURCE_REPO \
          --git-source-ref-tag=GIT_SOURCE_REF_TAG \
          --git-source-dir=GIT_SOURCE_DIR \
          --raw-terraform-import-enabled
      
    • Führen Sie den folgenden Befehl aus, um eine lokale YAML- oder JSON-Datei mit einer IaCModule-Nutzlast zu importieren:

      gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \
          --project=PROJECT \
          --location=LOCATION \
          --space=SPACE \
          --iac-module-from-file=IAC_MODULE_FILE \
          --raw-terraform-import-enabled
      

    Ersetzen Sie Folgendes:

    • APPLICATION_TEMPLATE: Die ID der Anwendungsvorlage.
    • PROJECT: Die ID Ihres Verwaltungsprojekts.
    • LOCATION: Ihre Standort-ID.
    • SPACE: Ihre Space-ID.
    • GCS_URI: Der Cloud Storage-URI, der Ihre Terraform-Dateien enthält, im Format gs://BUCKET_NAME/FOLDER_PATH.
    • DEVELOPER_CONNECT_REPO_URI: Der URI des Developer Connect-Repository-Links im Format projects/PROJECT/locations/LOCATION/connections/CONNECTION/gitRepositoryLinks/REPO_LINK.
    • DEVELOPER_CONNECT_BRANCH: Der Zweigname in Ihrem Developer Connect-Repository. Alternativ können Sie --developer-connect-ref-tag oder --developer-connect-commit-sha angeben.
    • DEVELOPER_CONNECT_DIR: Der Verzeichnispfad in Ihrem Developer Connect-Repository.
    • GIT_SOURCE_REPO: Die HTTPS-URL des öffentlichen Git-Repositorys.
    • GIT_SOURCE_REF_TAG: Die Git-Referenz oder das Git-Tag im öffentlichen Git-Repository.
    • GIT_SOURCE_DIR: Der Verzeichnispfad im öffentlichen Git-Repository.
    • IAC_MODULE_FILE: Der Pfad zu einer lokalen YAML- oder JSON-Datei, die Ihre Terraform-Dateien enthält.
  3. Erstellen Sie einen Snapshot der Anwendungsvorlage, um eine unveränderliche Version der Anwendungsvorlage zu generieren, mit der Sie Anwendungen erstellen und bereitstellen können.

    gcloud design-center spaces application-templates snapshot APPLICATION_TEMPLATE \
        --project=PROJECT \
        --location=LOCATION \
        --space=SPACE
    

    Ersetzen Sie Folgendes:

    • APPLICATION_TEMPLATE: Die ID der Anwendungsvorlage.
    • PROJECT: Die ID Ihres Verwaltungsprojekts.
    • LOCATION: Ihre Standort-ID.
    • SPACE: Ihre Space-ID.

    Die Ausgabe enthält den URI der erstellten Anwendungsvorlagenversion im Format projects/PROJECT/locations/LOCATION/spaces/SPACE/applicationTemplates/APPLICATION_TEMPLATE/revisions/REVISION.

Anwendung aus der Vorlage erstellen und bereitstellen

Nachdem Sie eine Snapshot-Version Ihrer importierten Terraform-Vorlage erstellt haben, können Sie einen Anwendungsentwurf erstellen, Werte für Eingabevariablen angeben und die Anwendung bereitstellen.

  1. Erstellen Sie einen Anwendungsentwurf aus der Version der Anwendungsvorlage.

    gcloud design-center spaces applications create APPLICATION \
        --project=PROJECT \
        --location=LOCATION \
        --space=SPACE \
        --source-application-template-revision=SOURCE_APPLICATION_TEMPLATE_REVISION \
        --deployment-project=DEPLOYMENT_PROJECT \
        --deployment-region=DEPLOYMENT_REGION \
        --app-parameters=APP_PARAMETERS \
        --scope-type=SCOPE_TYPE
    

    Ersetzen Sie Folgendes:

    • APPLICATION: Die ID der Anwendung, die Sie erstellen möchten.
    • PROJECT: Die ID Ihres Verwaltungsprojekts.
    • LOCATION: Ihre Standort-ID.
    • SPACE: Ihre Space-ID.
    • SOURCE_APPLICATION_TEMPLATE_REVISION: Der URI der Anwendungsvorlagenversion, der vom Befehl snapshot zurückgegeben wird.
    • DEPLOYMENT_PROJECT: Die Zielprojekt-ID, in der Ihre Terraform-Ressourcen bereitgestellt werden.
    • DEPLOYMENT_REGION: Die Zielregion, in der Ihre Terraform-Ressourcen bereitgestellt werden.
    • APP_PARAMETERS: Optional. Geben Sie Schlüssel/Wert-Paare für Variablen für Ihr Terraform-Stammmodul ein (z. B. key=KEY,value=VALUE) oder den Pfad zu einer YAML- oder JSON-Datei, die Ihre Anwendungsparameter enthält.
    • SCOPE_TYPE: Der Bereich für Ihre Anwendung, entweder regional oder global.

    Weitere Informationen zum Verwalten von Anwendungen finden Sie unter Anwendungen verwalten.

  2. Sehen Sie sich eine Vorschau Ihrer Anwendung an und stellen Sie sie bereit. Eine detaillierte Anleitung finden Sie unter Anwendungen bereitstellen.

Terraform-Code nach Cloud Storage exportieren

Sie können die Terraform-Dateien aus einer Anwendungsvorlage, einer Anwendungsvorlagenversion oder einer Anwendung in einen Cloud Storage-Bucket exportieren. Exportieren Sie, wenn Sie Terraform mit Ihren eigenen CI/CD-Tools ausführen oder eine Kopie in der Versionsverwaltung speichern möchten.

  • Führen Sie den folgenden Befehl aus, um Terraform-Dateien aus einem Entwurf einer Anwendungsvorlage zu exportieren:

    gcloud design-center spaces application-templates export APPLICATION_TEMPLATE \
        --project=PROJECT \
        --location=LOCATION \
        --space=SPACE \
        --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI
    
  • Führen Sie den folgenden Befehl aus, um Terraform-Dateien aus einer Version einer Anwendungsvorlage zu exportieren:

    gcloud design-center spaces application-templates revisions export REVISION \
        --application-template=APPLICATION_TEMPLATE \
        --project=PROJECT \
        --location=LOCATION \
        --space=SPACE \
        --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI
    
  • Führen Sie den folgenden Befehl aus, um Terraform-Dateien aus einer Anwendung zu exportieren (einschließlich zz_adc_inputs.auto.tfvars.json, die mit Ihren konfigurierten Anwendungsparametern gefüllt ist):

    gcloud design-center spaces applications export APPLICATION \
        --project=PROJECT \
        --location=LOCATION \
        --space=SPACE \
        --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI
    

Ersetzen Sie Folgendes:

  • APPLICATION_TEMPLATE: Die ID der Anwendungsvorlage.
  • REVISION: Die Revisions-ID der Anwendungsvorlage.
  • APPLICATION: Die Anwendungs-ID.
  • PROJECT: Die ID Ihres Verwaltungsprojekts.
  • LOCATION: Ihre Standort-ID.
  • SPACE: Ihre Space-ID.
  • ARTIFACT_LOCATION_GCS_URI: Der Cloud Storage-Ziel-URI im Format gs://BUCKET_NAME/EXPORT_FOLDER.

Nächste Schritte