In dieser Anleitung erfahren Sie, wie Sie eine Terraform-Konfigurationsdatei erstellen und eine vom Nutzer verwaltete Notebookinstanz in Vertex AI im Dienstkontomodus bereitstellen.
Verwenden Sie dazu folgende Tools:
Terraform-Befehlszeile: Terraform ist in Cloud Shell vorinstalliert. Sie müssen Terraform nicht separat installieren, um die Terraform-Befehlszeilenbefehle verwenden zu können.
Cloud Shell-Editor: Verwenden Sie den Cloud Shell-Editor, um Ihre Terraform-Konfigurationsdatei zu erstellen und zu verwalten, und um Ihre Ordnerstruktur zu verwalten.
Cloud Shell-Terminal: Verwenden Sie das Cloud Shell-Terminal, um Terraform-Befehlszeilenbefehle wie
terraform init
,terraform plan
terraform apply
undterraform destroy
auszuführen.
Vorbereitung
Bevor Sie mit Terraform die Infrastruktur für Vertex AI-Ressourcen erstellen können, richten Sie ein Google Cloud-Projekt und eine Entwicklungsumgebung ein. In diesem Abschnitt wird auch beschrieben, wie die Vertex AI API aktiviert wird, über die Terraform mit den Ressourcen in Ihrem Projekt interagiert.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Erforderliche Rollen
Wenn Sie das Projekt erstellt haben, haben Sie die IAM-Rolle Inhaber (roles/owner
) für das Projekt, die alle erforderlichen Berechtigungen enthält. Fahren Sie mit dem nächsten Abschnitt fort.
Wenn Sie das Projekt nicht selbst erstellt haben, fahren Sie mit diesem Abschnitt fort.
Bitten Sie Ihren Administrator, Ihrem Nutzerkonto die folgenden IAM-Rollen für das Projekt zuzuweisen, um sicherzustellen, dass Ihr Nutzerkonto über die erforderlichen Berechtigungen verfügt, um eine nutzerverwaltete Notebookinstanz von Vertex AI Workbench mithilfe von Terraform zu erstellen:
-
„Notebooks Admin“ (
roles/notebooks.admin
) zum Erstellen und Löschen von Instanzen in Vertex AI Workbench -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) zum Ausführen von Vorgängen als Dienstkonto. In dieser Anleitung wird kein Dienstkonto angegeben, sodass Ihre nutzerverwaltete Notebookinstanz das Compute Engine-Standarddienstkonto verwendet. -
Service Usage-Nutzer (
roles/serviceusage.serviceUsageConsumer
) zur Überprüfung von Dienststatus und Vorgängen sowie zur Nutzung von Kontingent und Abrechnung für Projektressourcen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Ihr Administrator kann Ihrem Nutzerkonto möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
Ordnerstruktur und Terraform-Konfigurationsdatei erstellen
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus, um das Basisverzeichnis als aktives Verzeichnis festzulegen:
cd
- Führen Sie den folgenden Befehl aus, um einen neuen Ordner mit dem Namen
terraform
zu erstellen:
mkdir terraform
- Starten Sie den Cloud Shell-Editor.
- Klicken Sie im Bereich Explorer mit der rechten Maustaste auf den Ordner
terraform
und dann auf Neue Datei. - Geben Sie
main.tf
als Dateinamen ein und klicken Sie auf OK.
Infrastruktur in der Terraform-Konfigurationsdatei definieren
Öffnen Sie die Datei
main.tf
im Cloud Shell-Editor.Ersetzen Sie die Platzhalter PROJECT_NAME und LOCATION im folgenden Terraform-Konfigurationsbeispiel und kopieren Sie das Beispiel in die Datei
main.tf
:resource "google_project_service" "notebooks" { provider = google service = "notebooks.googleapis.com" disable_on_destroy = false } resource "google_notebooks_instance" "basic_instance" { project = "PROJECT_ID" name = "notebooks-instance-basic" provider = google location = "LOCATION" machine_type = "e2-medium" vm_image { project = "deeplearning-platform-release" image_family = "tf-ent-2-9-cu113-notebooks" } depends_on = [ google_project_service.notebooks ] }
PROJECT_ID: Geben Sie die Google Cloud-Projekt-ID ein.
LOCATION: Geben Sie eine Region und eine Zone für die vom Nutzer verwaltete Notebookinstanz ein. Beispiel:
us-west2-b
. Wählen Sie für eine optimale Netzwerkleistung die Region aus, die Ihnen geografisch am nächsten liegt. Prüfen Sie die verfügbaren Standorte für vom Nutzer verwaltete Notebooks.
Speichern Sie die Datei
main.tf
.
Arbeitsverzeichnis mit der Terraform-Konfigurationsdatei initialisieren
Klicken Sie zum Öffnen des Cloud Shell-Terminals in der Symbolleiste des Cloud Shell-Editors auf Terminal öffnen.
Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus, um den Ordner
terraform
als aktuelles Arbeitsverzeichnis festzulegen:cd ~/terraform
Führen Sie dazu diesen Befehl aus:
terraform init
Terraform initialisiert das Arbeitsverzeichnis. Die Ausgabe sieht so aus:
Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
Vorschau des Ausführungsplans basierend auf der Terraform-Konfiguration
Der Terraform-Ausführungsplan gibt die Änderungen an, die Terraform an der Infrastruktur und den Diensten von Vertex AI vornehmen möchte.
Führen Sie den folgenden Befehl aus, um sich den Terraform-Ausführungsplan anzusehen.
terraform plan
Wenn Sie zur Autorisierung von Cloud Shell aufgefordert werden, klicken Sie auf Autorisieren. Cloud Shell verwendet bei der Autorisierung standardmäßig die Anmeldedaten des Nutzers.
Die Ausgabe sollte in etwa so aussehen:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following
symbols:
+ create
Terraform will perform the following actions:
# google_notebooks_instance.basic_instance will be created
+ resource "google_notebooks_instance" "basic_instance" {
+ create_time = (known after apply)
+ id = (known after apply)
+ labels = (known after apply)
+ location = "us-west2-b"
+ machine_type = "e2-medium"
+ name = "notebooks-instance-basic"
+ network = (known after apply)
+ project = "my_project"
+ proxy_uri = (known after apply)
+ service_account = (known after apply)
+ state = (known after apply)
+ subnet = (known after apply)
+ update_time = (known after apply)
+ shielded_instance_config {
+ enable_integrity_monitoring = (known after apply)
+ enable_secure_boot = (known after apply)
+ enable_vtpm = (known after apply)
}
+ vm_image {
+ image_family = "tf-ent-2-9-cu113-notebooks"
+ project = "deeplearning-platform-release"
}
}
# google_project_service.notebooks will be created
+ resource "google_project_service" "notebooks" {
+ disable_on_destroy = false
+ id = (known after apply)
+ project = (known after apply)
+ service = "notebooks.googleapis.com"
}
Plan: 2 to add, 0 to change, 0 to destroy.
my_project
gibt die von Ihnen angegebene Google Cloud-Projekt-ID an.us-west2-b
gibt die Region und Zone für die von Nutzern verwaltete Notebookinstanz an, die Sie angegeben haben.
Im Ausführungsplan vorgeschlagenen Änderungen anwenden
Führen Sie den folgenden Befehl aus, um die Änderungen aus dem Ausführungsplan auf die Vertex AI-Infrastruktur anzuwenden und die vom Nutzer verwaltete Notebookinstanz zu erstellen:
terraform apply
Die Ausgabe sollte in etwa so aussehen:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # google_notebooks_instance.basic_instance will be created + resource "google_notebooks_instance" "basic_instance" { + create_time = (known after apply) + id = (known after apply) + labels = (known after apply) + location = "us-west2-b" + machine_type = "e2-medium" + name = "notebooks-instance-basic" + network = (known after apply) + project = "my_project" + proxy_uri = (known after apply) + service_account = (known after apply) + state = (known after apply) + subnet = (known after apply) + update_time = (known after apply) + shielded_instance_config { + enable_integrity_monitoring = (known after apply) + enable_secure_boot = (known after apply) + enable_vtpm = (known after apply) } + vm_image { + image_family = "tf-ent-2-9-cu113-notebooks" + project = "deeplearning-platform-release" } } # google_project_service.notebooks will be created + resource "google_project_service" "notebooks" { + disable_on_destroy = false + id = (known after apply) + project = (known after apply) + service = "notebooks.googleapis.com" } Plan: 2 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:
my_project
gibt die von Ihnen angegebene Google Cloud-Projekt-ID an.us-west2-b
gibt die Region und Zone für die von Nutzern verwaltete Notebookinstanz an, die Sie angegeben haben.
Geben Sie
yes
ein und drücken Sie die Eingabetaste. Die Ausgabe sollte in etwa so aussehen:Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Nutzerverwaltete Notebookinstanz aufrufen
Rufen Sie in der Google Cloud Console die Seite Nutzerverwaltete Notebooks auf.
Zu "Nutzerverwaltete Notebooks"
Das neue Notebook mit dem Namen "notebooks-instance-basic" wird in der Tabelle aufgeführt. Beachten Sie, dass die Bereitstellung der neuen nutzerverwalteten Notebookinstanz einige Minuten dauern kann, nachdem terraform apply
ausgeführt wurde.
Projekt bereinigen
Bereinigen Sie die Google Cloud-Ressourcen, die Sie in dieser Anleitung erstellt haben. Mit den folgenden Schritten vermeiden Sie unerwartete Kosten für einige Ressourcen:
Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus, um den Ordner
terraform
als aktuelles Arbeitsverzeichnis festzulegen:cd ~/terraform
Führen Sie den folgenden Befehl aus, um die von Ihrer Terraform-Konfiguration erstellten Vertex AI-Ressourcen zu löschen:
terraform destroy
Die Ausgabe sollte in etwa so aussehen:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: - destroy Terraform will perform the following actions: # google_notebooks_instance.basic_instance will be destroyed - resource "google_notebooks_instance" "basic_instance" { - create_time = "2022-12-01T21:14:05.065893475Z" -> null - id = "projects/my_project/locations/us-west2-b/instances/notebooks-instance-basic" -> null - install_gpu_driver = false -> null - labels = { - "goog-caip-notebook" = "" } -> null - location = "us-west2-b" -> null - machine_type = "e2-medium" -> null - name = "notebooks-instance-basic" -> null - network = "https://www.googleapis.com/compute/v1/projects/my_project/global/networks/default" -> null - no_proxy_access = false -> null - no_public_ip = false -> null - project = "my_project" -> null - service_account = "329223940713-compute@developer.gserviceaccount.com" -> null - service_account_scopes = [] -> null - state = "PROVISIONING" -> null - subnet = "https://www.googleapis.com/compute/v1/projects/my_project/regions/us-west2/subnetworks/default" -> null - tags = [] -> null - update_time = "2022-12-01T21:14:19.048432376Z" -> null - shielded_instance_config { - enable_integrity_monitoring = true -> null - enable_secure_boot = false -> null - enable_vtpm = true -> null } - vm_image { - image_family = "tf-ent-2-9-cu113-notebooks" -> null - project = "deeplearning-platform-release" -> null } } # google_project_service.notebooks will be destroyed - resource "google_project_service" "notebooks" { - disable_on_destroy = false -> null - id = "my_project/notebooks.googleapis.com" -> null - project = "my_project" -> null - service = "notebooks.googleapis.com" -> null } Plan: 0 to add, 0 to change, 2 to destroy. Do you really want to destroy all resources? Terraform will destroy all your managed infrastructure, as shown above. There is no undo. Only 'yes' will be accepted to confirm. Enter a value:
my_project
gibt die von Ihnen angegebene Google Cloud-Projekt-ID an.us-west2-b
gibt die Region und Zone für die von Nutzern verwaltete Notebookinstanz an, die Sie angegeben haben.
Geben Sie
yes
ein und drücken Sie die Eingabetaste. Die Ausgabe sollte in etwa so aussehen:Destroy complete! Resources: 2 destroyed.
Überprüfen Sie, ob die vom Nutzer verwaltete Notebookinstanz gelöscht wurde. Öffnen Sie dazu die Seite Nutzerverwaltete Notebooks.
Klicken Sie mit der rechten Maustaste auf den Ordner
terraform
im Bereich Explorer und dann auf Löschen, um den Ordnerterraform
und seinen Inhalt zu löschen.Wenn Sie dazu aufgefordert werden, klicken Sie zur Bestätigung auf OK.
Weitere Möglichkeiten zur Verwendung von Terraform in Vertex AI
In dieser Anleitung erfahren Sie, wie Sie Terraform verwenden können, indem Sie nur eine Konfigurationsdatei erstellen und eine Infrastruktur auf Basis einer einzigen Terraform-Ressource bereitstellen. Sie können Terraform auch auf folgende Arten verwenden:
Fügen Sie derselben Terraform-Konfigurationsdatei mehrere Terraform-Ressourcen hinzu. Eine Liste der Terraform-Ressourcen für Vertex AI finden Sie unter Für Vertex AI verfügbare Terraform-Ressourcen.
Erstellen Sie eine Verzeichnisstruktur, die mehrere Ordner und Terraform-Konfigurationsdateien enthält. Beispielsweise können Sie einen separaten Ordner und eine separate Terraform-Konfigurationsdatei für jeden Terraform-Ressourcentyp erstellen.
Nächste Schritte
Weitere Informationen zur Terraform-Ressource
google_notebooks_instance
in der Terraform-RegistryWeitere Informationen zu nutzerverwalteten Notebooks und Vertex AI Workbench
Terraform in Ihrer lokalen Befehlszeilenschnittstelle installieren
Weitere Informationen zu Terraform auf der Terraform-Entwicklerwebsite.
Weitere Informationen in der Terraform-Ressourcendokumentation in der Terraform-Registry