Wenn Sie benutzerdefinierte Terraform-Module in das Application Design Center importieren, können Sie Ihre eigenen wiederverwendbaren Google Cloud -Konfigurationen als Komponenten in Ihre Anwendungsvorlagen einfügen. Wenn Sie ein Terraform-Modul importieren, erstellt das App Design Center eine Komponentenvorlage im Katalog Ihres Bereichs, damit Entwickler Ihre festgelegten Designentscheidungen und Richtlinien wiederverwenden können.
Hintergrundinformationen zum Erstellen von Terraform-Modulen für Google Cloudfinden Sie hier:
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 |
|---|---|
| Terraform-Module als benutzerdefinierte Komponenten importieren | Application Design Center Admin (roles/designcenter.admin) oderApplication Design Center User ( roles/designcenter.user) |
Weitere Informationen zu Rollen finden Sie unter Zugriffssteuerung mit IAM.
Module konfigurieren und importieren
Führen Sie die folgenden Schritte aus, um eine Verbindung zu GitHub herzustellen, eine Metadatendatei zu erstellen und ein Terraform-Modul zu importieren.
Über Developer Connect mit Ihrem Repository verbinden
Erstellen Sie eine Developer Connect-Verbindung zum GitHub-Repository, in dem Sie Ihre Google Cloud Terraform-Module speichern. Sie verwenden diese Verbindung beim Importieren.
Erstellen Sie eine Developer Connect-Verbindung.
Eine Anleitung finden Sie unter Verbindung zu GitHub herstellen.
Erstellen Sie einen Developer Connect-Repository-Link.
Eine Anleitung finden Sie unter Repository-Links zu vorhandenen Verbindungen hinzufügen.
Optional: Metadaten des Terraform-Moduls vorbereiten
Wenn Sie Ihr Terraform-Modul importieren, können Sie Ihre eigenen Metadaten angeben oder eine Metadatendatei vom App Design Center erstellen lassen.
Hier ist ein Beispiel für eine metadata.yaml-Datei, die Sie für ein Dienstkonto erstellen könnten:
spec:
info:
actuationTool:
flavor: Terraform
version: ">= 1.3"
interfaces: # Optional
variables:
- name: service_account
connections:
- source:
source: github.com/terraform-google/terraform-google-service-accounts
version: ">= 4.4"
spec:
outputExpr: email
requirements:
roles: # Optional after IAM integrations
- level: Project
roles:
- roles/iam.serviceAccountUser
- roles/iap.admin
- roles/run.admin
- roles/iam.serviceAccountAdmin
providerVersions:
- source: hashicorp/google
version: ">= 6, < 7"
- source: hashicorp/google-beta
version: ">= 6, < 7"
ui: # Optional
input:
variables:
ca_root_module:
name: ca_root_module
title: CA Root Module
service_account:
name: service_account
title: Service Account
Aus Ihrem Repository importieren
Sie können eine App Design Center-Komponente erstellen, indem Sie ein Terraform-Modul importieren, das auf einem einzelnen Google Cloud -Produkt basiert. Wenn Sie Änderungen an Ihrem Terraform-Modul in Ihrem Repository vornehmen, wiederholen Sie diese Schritte, um Ihre Änderungen zu importieren.
So importieren Sie Ihr Terraform-Modul:
Suchen Sie den Katalog, in dem Sie die Komponente erstellen möchten.
gcloud design-center spaces catalogs list \ --project=PROJECT \ --location=LOCATION \ --space=SPACEErsetzen Sie Folgendes:
PROJECT: Die ID Ihres Verwaltungsprojekts.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.
Weitere Informationen finden Sie unter gcloud design-center spaces catalogs list.
Erstellen Sie eine Katalogvorlage im privaten Katalog Ihres Space.
gcloud design-center spaces catalogs templates create COMPONENT_TEMPLATE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template-category=component-templateErsetzen Sie Folgendes:
COMPONENT_TEMPLATE: Die Vorlagen-ID für die Komponentenvorlage, die Sie erstellen möchten.PROJECT: Die ID Ihres Verwaltungsprojekts.CATALOG: Ihre Katalog-ID.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.
Weitere Informationen finden Sie unter gcloud design-center spaces catalogs templates create.
Erstellen Sie eine Katalogvorlagenversion basierend auf dem Terraform-Modul in Ihrem Repository.
gcloud design-center spaces catalogs templates revisions create REVISION \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template=COMPONENT_TEMPLATE \ --developer-connect-repo=DEVELOPER_CONNECT_REPO \ --developer-connect-repo-ref=DEVELOPER_CONNECT_REPO_REF \ --developer-connect-repo-dir=DEVELOPER_CONNECT_REPO_DIR \ --metadata=METADATAErsetzen Sie Folgendes:
REVISION: Die Revisions-ID für die Version, die Sie erstellen möchten.PROJECT: Die ID Ihres Verwaltungsprojekts.CATALOG: Ihre Katalog-ID.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.COMPONENT_TEMPLATE: Die Vorlagen-ID, die Sie im vorherigen Schritt erstellt haben.DEVELOPER_CONNECT_REPO: Das Developer Connect-Repository, das als Quelle verwendet werden soll. Beispiel:projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo.DEVELOPER_CONNECT_REPO_REF: Der Git-Zweig oder das Git-Tag im Repository. Beispiel:refs/tags/v1.0.0oderrefs/heads/mainDEVELOPER_CONNECT_REPO_DIR: Das Verzeichnis im Repository. Beispiel:modules/my-product.- So geben Sie die Metadaten des Terraform-Moduls an:
- Wenn Sie Ihre eigene Metadatendatei verwenden möchten, ersetzen Sie
METADATAdurch Ihremetadata.yaml-Datei. - Wenn Sie Metadatendateien in Ihrem Repository automatisch verwenden möchten, lassen Sie das Flag „--metadata“ unspezifiziert.
- Wenn Sie Ihre eigene Metadatendatei verwenden möchten, ersetzen Sie
Weitere Informationen finden Sie unter gcloud design-center spaces catalogs templates revisions create.
Katalog für andere Gruppenbereiche freigeben
gcloud design-center spaces catalogs shares create SHARE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --destination-space=DESTINATION_SPACEErsetzen Sie Folgendes:
SHARE: Die Freigabe-ID für die Freigabe, die Sie erstellen möchten.PROJECT: Die ID Ihres Verwaltungsprojekts.CATALOG: Ihre Katalog-ID.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.DESTINATION_SPACE: Die ID des Ziel-Space.
Weitere Informationen finden Sie unter gcloud design-center spaces catalogs shares create.
Anwendungsvorlage mit importierten Komponenten erstellen
Erstellen Sie eine Anwendungsvorlage mit Ihren importierten Komponenten und den von Google bereitgestellten Komponenten.
Neue Anwendungsvorlage erstellen
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACEErsetzen Sie Folgendes:
APPLICATION_TEMPLATE: Die Vorlagen-ID für die Anwendungsvorlage, die Sie erstellen möchten.PROJECT: Die ID Ihres Verwaltungsprojekts.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.
Weitere Informationen finden Sie unter gcloud design-center spaces application-templates create.
Ermitteln Sie die Vorlagenversions-URIs für die Komponenten, die Sie der Vorlage hinzufügen möchten.
gcloud design-center spaces shared-templates list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --uriErsetzen Sie Folgendes:
PROJECT: Die ID Ihres Verwaltungsprojekts.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.
Weitere Informationen finden Sie unter gcloud design-center spaces shared-templates list.
Fügen Sie Ihrer Anwendungsvorlage eine Komponente hinzu.
gcloud design-center spaces application-templates components create COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URIErsetzen Sie Folgendes:
COMPONENT: Die Komponenten-ID für die Komponente, die Sie der Vorlage hinzufügen möchten.PROJECT: Die ID Ihres Verwaltungsprojekts.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.APPLICATION_TEMPLATE: Die Vorlagen-ID für die Anwendungsvorlage, der Sie die Komponente hinzufügen.SHARED_TEMPLATE_URI: Der URI der geteilten Vorlage der Komponente. Beispiel:projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.
Weitere Informationen finden Sie unter gcloud design-center spaces application-templates components create.
Fügen Sie Ihrer Vorlage eine zweite Komponente hinzu.
gcloud design-center spaces application-templates components create COMPONENT_2 \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI_2Ersetzen Sie Folgendes:
COMPONENT_2: Die Komponenten-ID für die zweite Komponente, die Sie der Vorlage hinzufügen möchten.PROJECT: Die ID Ihres Verwaltungsprojekts.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.APPLICATION_TEMPLATE: Die Vorlagen-ID für die Anwendungsvorlage, der Sie die Komponente hinzufügen.SHARED_TEMPLATE_URI_2: Der URI der zweiten Komponente der geteilten Vorlage. Beispiel:projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.
Weitere Informationen finden Sie unter gcloud design-center spaces application-templates components create.
Erstellen Sie eine Verbindung zwischen den beiden Komponenten.
gcloud design-center spaces application-templates components connections create CONNECTION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --component=COMPONENT \ --destination-component-uri=SHARED_TEMPLATE_URI_2Ersetzen Sie Folgendes:
CONNECTION: Die Verbindungs-ID für die Verbindung, die Sie der Vorlage hinzufügen möchten.PROJECT: Die ID Ihres Verwaltungsprojekts.LOCATION: Ihre Standort-ID.SPACE: Ihre Space-ID.APPLICATION_TEMPLATE: Die Vorlagen-ID für die Anwendungsvorlage, der Sie die Komponente hinzufügen.SHARED_TEMPLATE_URI_2: Der URI der zweiten Komponente der geteilten Vorlage. Beispiel:projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.
Weitere Informationen finden Sie unter gcloud design-center spaces application-templates components connections create.
Nächste Schritte
- Erstellen Sie vor der Bereitstellung eine Anwendung.
- Anwendungen bereitstellen
- Exportieren Sie Ihren Terraform-Code.