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
- Achten Sie darauf, dass Sie die SaaS-Laufzeit aktiviert haben.
- 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.
- 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 festlegen.
- Details zu den Anforderungen an die Terraform-Konfiguration finden Sie unter Blueprint-Anforderungen.
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:
- Wechseln Sie zu Ihrem Terraform-Projektverzeichnis.
- 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.tfund Module. - Das ZIP-Archiv enthält nicht unnötige Dateien, z. B.
.git-Verzeichnisse oder ein 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 auf Folgendes:
- 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:
- Achten Sie darauf, dass sich Ihre Terraform-Dateien im Stammverzeichnis Ihres Git-Repositorys befinden.
- 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:
Erstellen Sie im Stammverzeichnis Ihrer Terraform-Dateien eine Datei namens
Dockerfilemit folgendem Inhalt:# syntax=docker/dockerfile:1-labs FROM scratch COPY --exclude=Dockerfile --exclude=.git --exclude=.gitignore . /In diesem
Dockerfilewird ein minimales Basis-Image (scratch) verwendet. Fügen Sie dem Befehldockerignorehinzu, um irrelevante Dateien auszuschließen, z. B.:- die
Dockerfileselbst - das Verzeichnis
.git - die Datei
.gitignore
- die
Wenn Sie keinen Docker-Builder haben, erstellen Sie einen
docker-container-Builder mitdocker buildxmit 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 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.latestoderv1.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:
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 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.latestoderv1.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.
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-ImageTAG: Ein Tag für Ihre Image-Version (z. B.latestoderv1.0.0). Wenn Sie ein aussagekräftiges Tag auswählen, können Sie Versionen des Blueprints effektiv verwalten.
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
- Weitere Informationen zur SaaS-Laufzeit finden Sie unter SaaS-Laufzeit – Übersicht.
- Weitere Informationen zu Blueprints finden Sie unter Blueprints in der SaaS-Laufzeit.
- Wenn Sie mit der SaaS-Laufzeit beginnen möchten, lesen Sie zuerst den Artikel SaaS-Angebot erstellen.