Ein Blueprint ist eine Terraform-Konfiguration, die als OCI-Image (Open Container Initiative) verpackt ist. Die Terraform-Konfiguration gibt die Infrastruktur und Anwendung an, die von der SaaS-Laufzeit bereitgestellt werden Google Cloud.
Auf dieser Seite wird beschrieben, wie Sie ein OCI-Image aus vorhandenen Terraform-Konfigurationen erstellen und wie Sie diese in die SaaS-Laufzeit hochladen.
Weitere Informationen zu diesen Terraform-Konfigurationen finden Sie unter Blueprints in der SaaS-Laufzeit.
Hinweis
- Achten Sie darauf, dass Sie die SaaS-Laufzeit aktiviert haben.
- Achten Sie darauf, dass Sie in dem Projekt, das Sie für die SaaS-Laufzeit verwenden, ein Artifact Registry-Repository haben, das auf das Docker-Format festgelegt ist. Weitere Informationen finden Sie unter Repository für die SaaS-Laufzeit erstellen.
- Identifizieren Sie die Terraform-Konfigurationen, die Sie mit der SaaS-Laufzeit bereitstellen möchten.
- Weitere Informationen dazu, wie Sie das SaaS-Angebot mithilfe von Blueprints modellieren, finden Sie unter Modell des SaaS-Angebots bestimmen
- Weitere Informationen zu den Anforderungen an die Terraform-Konfiguration finden Sie unter Blueprint-Anforderungen.
Blueprint erstellen und hochladen
Wenn Sie die Terraform-Konfigurationen mit der SaaS-Laufzeit bereitstellen möchten, müssen Sie Folgendes tun: Google Cloud
- Verpacken Sie die Terraform-Konfigurationen in OCI-Images. Diese OCI-Images werden als Blueprints bezeichnet.
- Platzieren Sie diese OCI-Images im Artifact Registry-Repository, das Sie identifiziert oder eingerichtet haben.
Je nachdem, wie Sie den Blueprint erstellen und hochladen, können Sie alle Schritte manuell ausführen oder einige Schritte von der SaaS-Laufzeit ausführen lassen.
Sie können das OCI-Image mit einer der folgenden Methoden erstellen und in das Repository hochladen:
Laden Sie ein ZIP-Archiv hoch, das die Terraform-Konfiguration enthält. 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, das die Terraform-Dateien enthält. 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: Mit einem Git-Repository verbinden.
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 übertragen.
Automatisieren Sie die Erstellung und Übertragung des OCI-Images in ein Repository in Artifact Registry. 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 eine 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 mit einem ZIP-Archiv bereit:
- Wechseln Sie zum Verzeichnis Ihres Terraform-Projekts.
- Erstellen Sie ein ZIP-Archiv mit der Terraform-Konfiguration.
- Achten Sie darauf, dass:
- Das ZIP-Archiv enthält nur Ihre Terraform-Dateien. Beispiele:
main.tf,variables.tf,outputs.tf,versions.tfund Module. - Das ZIP-Archiv enthält keine unnötigen Dateien, z. B.
.git-Verzeichnisse oder eine Dockerfile.
- Das ZIP-Archiv enthält nur Ihre Terraform-Dateien. Beispiele:
- Der Befehl zum Erstellen eines ZIP-Archivs kann so aussehen:
zip terraform-files.zip main.tf outputs.tf variables.tf versions.tf
- Achten Sie darauf, dass:
- Laden Sie das ZIP-Archiv hoch, wenn Sie eine Release oder wenn Sie eine Art von Einheit erstellen.
Die SaaS-Laufzeit verwendet das ZIP-Archiv, um das erforderliche OCI-Image zu erstellen, und überträgt es per Push 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. Die SaaS-Laufzeit verwendet die Dateien, um das erforderliche OCI-Image zu erstellen, wenn Sie eine Art von Einheit oder eine Release erstellen.
So stellen Sie einen Blueprint mit einem Git-Repository bereit:
- Achten Sie darauf, dass sich Ihre Terraform-Dateien im Stammverzeichnis Ihres Git-Repositorys befinden.
- Verbinden Sie Ihr Git-Repository mit der SaaS-Laufzeit, wenn Sie eine Release 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 überträgt es per Push in das Artifact Registry-Repository.
Diese Integration automatisiert die Blueprint-Erstellung, 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 es dann per Push in das Artifact Registry-Repository zu übertragen.
Image manuell erstellen und übertragen
Mit dieser Methode haben Sie eine detaillierte Kontrolle über die Blueprint-Erstellung.
So erstellen Sie einen Blueprint manuell:
Erstellen Sie im Stammverzeichnis Ihrer Terraform-Dateien eine Datei mit dem Namen
Dockerfileund dem folgenden Inhalt:# syntax=docker/dockerfile:1-labs FROM scratch COPY --exclude=Dockerfile --exclude=.git --exclude=.gitignore . /Diese
Dockerfileverwendet ein minimales Basis-Image (scratch). Fügen Sie dem Befehldockerignorehinzu, um irrelevante Dateien auszuschließen, z. B.:- die
Dockerfileselbst - das
.git-Verzeichnis - die
.gitignore-Datei
- die
Wenn Sie keinen Docker-Builder haben, erstellen Sie mit
docker buildxeinendocker-container-Builder mit dem folgenden Befehl:docker buildx create --name container --driver=docker-containerFühren Sie den folgenden
docker buildx build-Befehl in Ihrem Terraform-Verzeichnis aus, um den Blueprint zu erstellen und per Push in 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.latestoderv1.0.0). Wenn Sie ein beschreibendes 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 kann 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 Image mit der SaaS-Laufzeit verwenden möchten, wählen Sie es aus, wenn Sie eine Release erstellen oder wenn Sie eine Art von Einheit erstellen.
Blueprint-Erstellung automatisieren
Sie können die Erstellung des OCI-Images und die Übertragung per Push in Artifact Registry mit Cloud Build automatisieren. Sie können einen Trigger einrichten, sodass das OCI-Image automatisch erstellt und per Push in Artifact Registry übertragen wird, wenn der Terraform-Code geändert wird.
So richten Sie diese Automatisierung ein:
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_ONLYErsetzen 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 Dienstkonten der SaaS-LaufzeitREPOSITORY_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.latestoderv1.0.0). Wenn Sie ein beschreibendes 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.
Starten Sie den Cloud Build-Job mit dem Befehl
gcloud builds submitaus dem Verzeichnis, das Ihrecloudbuild.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.latestoderv1.0.0). Wenn Sie ein beschreibendes Tag auswählen, können Sie Versionen des Blueprints effektiv verwalten.
Sie können einen Trigger einrichten, sodass das OCI-Image automatisch erstellt und per Push 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 Image mit der SaaS-Laufzeit verwenden möchten, wählen Sie es aus, wenn Sie eine Release erstellen oder wenn Sie eine Art von Einheit erstellen.
Nächste Schritte
- Weitere Informationen zur SaaS-Laufzeit finden Sie unter SaaS-Laufzeit – Übersicht.
- Weitere Informationen zu Blueprints finden Sie unter Blueprints in der SaaS-Laufzeit.
- Informationen zu den ersten Schritten mit der SaaS-Laufzeit finden Sie unter SaaS-Angebot erstellen.