Entwurf erstellen und hochladen

Ein Blueprint ist eine Terraform-Konfiguration, die als Open Container Initiative (OCI)-Image verpackt ist. Die Terraform-Konfiguration gibt die Infrastruktur und Anwendung an, die von der SaaS-Laufzeit auf Google Cloudbereitgestellt werden.

Auf dieser Seite wird beschrieben, wie Sie ein OCI-Image aus vorhandenen Terraform-Konfigurationen erstellen und in SaaS Runtime hochladen.

Weitere Informationen zu diesen Terraform-Konfigurationen finden Sie unter Blueprints in der SaaS-Laufzeit.

Hinweise

  1. Achten Sie darauf, dass Sie die SaaS-Laufzeit aktiviert haben.
  2. Prüfen Sie, ob Sie in dem Projekt, das Sie für die SaaS-Laufzeit verwenden, ein Artifact Registry-Repository haben, das auf das Docker-Format eingestellt ist. Weitere Informationen finden Sie unter Repository für die SaaS-Laufzeit erstellen.
  3. Identifizieren Sie die Terraform-Konfigurationen, die Sie mit der SaaS-Laufzeit bereitstellen möchten.

Entwurf erstellen und hochladen

Wenn Sie die Terraform-Konfigurationen mit der SaaS-Laufzeit auf Google Cloud bereitstellen möchten, müssen Sie Folgendes tun:

  • Verpacken Sie die Terraform-Konfigurationen in OCI-Images. Diese OCI-Images werden als Blueprints bezeichnet.
  • Speichern Sie diese OCI-Images im Artifact Registry-Repository, das Sie ermittelt oder eingerichtet haben.

Je nachdem, wie Sie den Blueprint erstellen und hochladen, können Sie alle Schritte manuell ausführen oder die SaaS-Laufzeit kann einige der Schritte übernehmen.

Sie können das OCI-Image mit einer der folgenden Methoden erstellen und in das Repository hochladen:

  • Laden Sie ein ZIP-Archiv mit der Terraform-Konfiguration hoch. Die SaaS-Laufzeit verwendet das ZIP-Archiv, um das OCI-Image zu erstellen.

    Weitere Informationen finden Sie im folgenden Abschnitt: ZIP-Archiv hochladen.

  • Verbinden Sie ein Git-Repository mit den Terraform-Dateien. Die SaaS-Laufzeit verwendet die Dateien, um das OCI-Image zu erstellen. Die SaaS-Laufzeit verwendet dann Cloud Build, um den Blueprint zu erstellen und hochzuladen, wenn Sie Ihr Repository aktualisieren.

    Weitere Informationen finden Sie im folgenden Abschnitt: Verbindung zu einem Git-Repository herstellen.

  • Erstellen Sie das OCI-Image lokal und übertragen Sie es per Push in das Repository in Artifact Registry.

    Weitere Informationen finden Sie im folgenden Abschnitt: Image manuell erstellen und per Push übertragen.

  • Erstellung und Push des OCI-Images in ein Repository in Artifact Registry automatisieren. Durch die Automatisierung dieses Prozesses können Sie die SaaS-Laufzeit in eine CI/CD-Pipeline einbinden.

    Weitere Informationen finden Sie im folgenden Abschnitt: Blueprint-Erstellung automatisieren.

ZIP-Archiv hochladen

Sie können ein ZIP-Archiv der Terraform-Dateien erstellen. Sie laden dieses Archiv in die SaaS-Laufzeit hoch, wenn Sie einen Release oder eine Art von Einheit erstellen. Die SaaS-Laufzeit verwendet das ZIP-Archiv, um das erforderliche OCI-Image zu erstellen.

So stellen Sie einen Blueprint über ein ZIP-Archiv bereit:

  1. Wechseln Sie zu Ihrem Terraform-Projektverzeichnis.
  2. Erstellen Sie ein ZIP-Archiv mit der Terraform-Konfiguration.
    • Achten Sie auf Folgendes:
      • Das ZIP-Archiv enthält nur Ihre Terraform-Dateien. Beispiele: main.tf, variables.tf, outputs.tf, versions.tf und Module.
      • Das ZIP-Archiv enthält nicht unnötige Dateien, z. B. .git-Verzeichnisse oder ein Dockerfile.
    • Der Befehl zum Erstellen eines ZIP-Archivs kann so aussehen: zip terraform-files.zip main.tf outputs.tf variables.tf versions.tf
  3. Laden Sie das ZIP-Archiv hoch, wenn Sie einen Release erstellen oder einen Einheitentyp erstellen.

Die SaaS-Laufzeit verwendet das ZIP-Archiv, um das erforderliche OCI-Image zu erstellen, und verschiebt es in das Artifact Registry-Repository.

Mit einem Git-Repository verbinden

Wenn Sie Ihre Terraform-Konfiguration in einem Git-Repository speichern, können Sie die SaaS-Laufzeit mit diesem Repository verbinden. SaaS Runtime verwendet die Dateien, um das erforderliche OCI-Image zu erstellen, wenn Sie eine Einheit erstellen oder eine Version erstellen.

So stellen Sie einen Blueprint über ein Git-Repository bereit:

  1. Achten Sie darauf, dass sich Ihre Terraform-Dateien im Stammverzeichnis Ihres Git-Repositorys befinden.
  2. Stellen Sie eine Verbindung zu Ihrem Git-Repository her, wenn Sie ein Release erstellen oder wenn Sie eine Art von Einheit erstellen.

Die SaaS-Laufzeit verwendet Developer Connect, um eine Verbindung zum Git-Repository herzustellen. Weitere Informationen zu Developer Connect finden Sie in der Developer Connect-Dokumentation.

Die SaaS-Laufzeit verwendet die Terraform-Dateien aus dem Git-Repository, um das erforderliche OCI-Image zu erstellen, und pusht es in das Artifact Registry-Repository.

Diese Integration automatisiert die Erstellung von Blueprints, wenn Sie Ihren Terraform-Code in Ihrem Repository aktualisieren. Wenn es Änderungen im verknüpften Git-Repository gibt, verwendet die SaaS-Laufzeit die geänderten Dateien, um automatisch ein neues OCI-Image zu erstellen, und überträgt es dann in das Artifact Registry-Repository.

Image manuell erstellen und übertragen

Mit dieser Methode haben Sie die Möglichkeit, den Prozess der Blueprint-Erstellung genau zu steuern.

So erstellen Sie einen Blueprint manuell:

  1. Erstellen Sie im Stammverzeichnis Ihrer Terraform-Dateien eine Datei namens Dockerfile mit folgendem Inhalt:

    # syntax=docker/dockerfile:1-labs
    FROM scratch
    COPY --exclude=Dockerfile --exclude=.git --exclude=.gitignore . /
    

    In diesem Dockerfile wird ein minimales Basis-Image (scratch) verwendet. Fügen Sie dem Befehl dockerignore hinzu, um irrelevante Dateien auszuschließen, z. B.:

    • die Dockerfile selbst
    • das Verzeichnis .git
    • die Datei .gitignore
  2. Wenn Sie keinen Docker-Builder haben, erstellen Sie einen docker-container-Builder mit docker buildx mit dem folgenden Befehl:

    docker buildx create --name container --driver=docker-container
    
  3. Führen Sie den folgenden docker buildx build-Befehl in Ihrem Terraform-Verzeichnis aus, um den Blueprint zu erstellen und per Push in die Artifact Registry zu übertragen:

    IMAGE_NAME=us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:TAG
    ENGINE_TYPE=inframanager
    ENGINE_VERSION=TERRAFORM_VERSION
    
    docker buildx build -t $IMAGE_NAME \
      --builder=container \
      --push \
      --annotation "com.easysaas.engine.type=$ENGINE_TYPE" \
      --annotation "com.easysaas.engine.version=$ENGINE_VERSION" \
      --provenance=false .
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID.
    • REPOSITORY_NAME: Der Name Ihres Artifact Registry-Repositorys.
    • IMAGE_NAME: Ein Name für Ihr Blueprint-Image.
    • TAG: Ein Tag für Ihre Image-Version (z. B. latest oder v1.0.0). Wenn Sie ein aussagekräftiges Tag auswählen, können Sie Versionen des Blueprints effektiv verwalten.
    • TERRAFORM_VERSION: Die unterstützte Version von Terraform, die verwendet werden soll. Eine Liste der von Infrastructure Manager unterstützten Versionen finden Sie unter Unterstützte Terraform-Versionen.

    Ein Befehl könnte so aussehen:

    IMAGE_NAME=us-docker.pkg.dev/saas-docs-testing/blueprints-repo/my-terraform-blueprint:v1.0.0
    ENGINE_TYPE=inframanager
    ENGINE_VERSION=1.5.7
    
    docker buildx build -t $IMAGE_NAME \
      --builder=container \
      --push \
      --annotation "com.easysaas.engine.type=$ENGINE_TYPE" \
      --annotation "com.easysaas.engine.version=$ENGINE_VERSION" \
      --provenance=false .
    

Das OCI-Image befindet sich im Artifact Registry-Repository.

Wenn Sie dieses Bild mit der SaaS-Laufzeit verwenden möchten, wählen Sie es aus, wenn Sie ein Release erstellen oder eine Art von Einheit erstellen.

Blueprint-Erstellung automatisieren

Sie können das Erstellen des OCI-Images und das Hochladen in Artifact Registry mit Cloud Build automatisieren. Sie können einen Trigger einrichten, damit das OCI-Image automatisch erstellt und in Artifact Registry übertragen wird, wenn der Terraform-Code geändert wird.

So richten Sie diese Automatisierung ein:

  1. Erstellen Sie im Stammverzeichnis Ihres Terraform-Repositorys eine cloudbuild.yaml-Datei mit der folgenden Konfiguration:

    steps:
    - id: 'Create Dockerfile'
      name: 'bash'
      args: ['-c', 'echo -e "# syntax=docker/dockerfile:1-labs\nFROM scratch\nCOPY --exclude=Dockerfile.Blueprint --exclude=.git --exclude=.gitignore . /" > Dockerfile.Blueprint']
    - id: 'Create docker-container driver'
      name: 'docker'
      args: ['buildx', 'create', '--name', 'container', '--driver=docker-container']
    - id: 'Build and Push docker image'
      name: 'docker'
      args: ['buildx', 'build', '-t', '${_IMAGE_NAME}', '--builder=container', '--push', '--annotation', 'com.easysaas.engine.type=${_ENGINE_TYPE}','--annotation', 'com.easysaas.engine.version=${_ENGINE_VERSION}', '--provenance=false','-f', 'Dockerfile.Blueprint', '.']
    serviceAccount: '${_SERVICE_ACCOUNT}'
    substitutions:
      _SERVICE_ACCOUNT: 'projects/PROJECT_ID/serviceAccounts/CLOUD_BUILD_SERVICE_ACCOUNT'
      _IMAGE_NAME: 'us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:latest'
      _ENGINE_TYPE: 'inframanager'
      _ENGINE_VERSION: 'TERRAFORM_VERSION'
    options:
      logging: CLOUD_LOGGING_ONLY
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID.
    • CLOUD_BUILD_SERVICE_ACCOUNT: Der vollständige Name Ihres Cloud Build-Dienstkontos. Weitere Informationen zur SaaS-Laufzeit und zu Dienstkonten finden Sie unter SaaS-Laufzeit-Dienstkonten.
    • REPOSITORY_NAME: Der Name Ihres Artifact Registry-Repositorys.
    • IMAGE_NAME: Ein Name für Ihr Blueprint-Image.
    • TAG: Ein Tag für Ihre Image-Version (z. B. latest oder v1.0.0). Wenn Sie ein aussagekräftiges Tag auswählen, können Sie Versionen des Blueprints effektiv verwalten.
    • TERRAFORM_VERSION: Die unterstützte Version von Terraform, die verwendet werden soll. Eine Liste der von Infrastructure Manager unterstützten Versionen finden Sie unter Unterstützte Terraform-Versionen.
  2. Starten Sie den Cloud Build-Job mit dem Befehl gcloud builds submit aus dem Verzeichnis, das Ihre cloudbuild.yaml-Datei enthält:

    gcloud builds submit --config=cloudbuild.yaml --substitutions=_IMAGE_NAME='us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:TAG'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID.
    • REPOSITORY_NAME: Der Name Ihres Artifact Registry-Repositorys.
    • IMAGE_NAME: Ein Name für Ihr Blueprint-Image
    • TAG: Ein Tag für Ihre Image-Version (z. B. latest oder v1.0.0). Wenn Sie ein aussagekräftiges Tag auswählen, können Sie Versionen des Blueprints effektiv verwalten.
  3. Sie können einen Trigger einrichten, damit das OCI-Image automatisch erstellt und in Artifact Registry übertragen wird, wenn der Terraform-Code geändert wird. Weitere Informationen finden Sie unter Build-Trigger erstellen und verwalten.

Das OCI-Image befindet sich jetzt im Artifact Registry-Repository.

Wenn Sie dieses Bild mit der SaaS-Laufzeit verwenden möchten, wählen Sie es aus, wenn Sie ein Release erstellen oder eine Art von Einheit erstellen.

Nächste Schritte