Terraform verwenden, um eine vom Nutzer verwaltete Notebookinstanz zu erstellen

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 und terraform destroy auszuführen.

Hinweis

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.

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the 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

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  1. Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus, um das Basisverzeichnis als aktives Verzeichnis festzulegen:
    cd
  2. Führen Sie den folgenden Befehl aus, um einen neuen Ordner mit dem Namen terraform zu erstellen:
    mkdir terraform
  3. Starten Sie den Cloud Shell-Editor.
  4. Klicken Sie im Bereich Explorer mit der rechten Maustaste auf den Ordner terraform und dann auf Neue Datei.
  5. Geben Sie main.tf als Dateinamen ein und klicken Sie auf OK.

Infrastruktur in der Terraform-Konfigurationsdatei definieren

  1. Öffnen Sie die Datei main.tf im Cloud Shell-Editor.

  2. 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.

  3. Speichern Sie die Datei main.tf.

Arbeitsverzeichnis mit der Terraform-Konfigurationsdatei initialisieren

  1. Klicken Sie zum Öffnen des Cloud Shell-Terminals in der Symbolleiste des Cloud Shell-Editors auf Terminal öffnen.

  2. Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus, um den Ordner terraform als aktuelles Arbeitsverzeichnis festzulegen:

    cd ~/terraform
    
  3. Führen Sie dazu diesen Befehl aus:

    terraform init
    
  4. 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

  1. 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
    
  2. 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.

  3. 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:

  1. Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus, um den Ordner terraform als aktuelles Arbeitsverzeichnis festzulegen:

    cd ~/terraform
    
  2. Führen Sie den folgenden Befehl aus, um die von Ihrer Terraform-Konfiguration erstellten Vertex AI-Ressourcen zu löschen:

    terraform destroy
    
  3. 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.

  4. Geben Sie yes ein und drücken Sie die Eingabetaste. Die Ausgabe sollte in etwa so aussehen:

    Destroy complete! Resources: 2 destroyed.
    
  5. Überprüfen Sie, ob die vom Nutzer verwaltete Notebookinstanz gelöscht wurde. Öffnen Sie dazu die Seite Nutzerverwaltete Notebooks.

    Zu "Nutzerverwaltete Notebooks"

  6. Starten Sie den Cloud Shell-Editor.

  7. Klicken Sie mit der rechten Maustaste auf den Ordner terraform im Bereich Explorer und dann auf Löschen, um den Ordner terraform und seinen Inhalt zu löschen.

  8. 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