In questo tutorial imparerai a creare un file di configurazione Terraform ed eseguire il provisioning di un'istanza di blocchi note gestiti dall'utente in Vertex AI in modalità Account di servizio.
Utilizza i seguenti strumenti per completare i passaggi di questo tutorial:
Terraform CLI: Terraform è preinstallato in Cloud Shell. Non è necessario installare Terraform separatamente per utilizzare i comandi Terraform CLI.
Editor di Cloud Shell: utilizza l'editor di Cloud Shell per creare e gestire il file di configurazione Terraform e gestire la struttura delle cartelle.
Terminale Cloud Shell: utilizza il terminale Cloud Shell per eseguire i seguenti comandi Terraform CLI, ad esempio
terraform init
,terraform plan
,terraform apply
eterraform destroy
.
Prima di iniziare
Prima di poter creare l'infrastruttura per le risorse Vertex AI utilizzando Terraform, configurare un progetto Google Cloud e una completamente gestito di Google Cloud. Questa sezione descrive anche come attivare l'API Vertex AI, utilizzata da Terraform per interagire con le risorse del progetto.
- 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.
Ruoli obbligatori
Se hai creato tu il progetto, hai
Proprietario (roles/owner
)
Ruolo IAM sul progetto, che include tutte le autorizzazioni richieste. Passa alla sezione successiva.
Se non hai creato il progetto, continua in questa sezione.
Per assicurarti che il tuo account utente disponga delle autorizzazioni necessarie per creare un'istanza di blocchi note Vertex AI Workbench gestiti dall'utente utilizzando Terraform, chiedi all'amministratore di concedere al tuo account utente i seguenti ruoli IAM sul progetto:
-
Amministratore Notebooks (
roles/notebooks.admin
) per creare ed eliminare istanze in Vertex AI Workbench. -
Utente account di servizio (
roles/iam.serviceAccountUser
) per eseguire operazioni come account di servizio. Questo tutorial non specifica un account di servizio, quindi la tua istanza di blocchi note gestiti dall'utente utilizza l'account di servizio predefinito di Compute Engine. -
consumer di Service Usage (
roles/serviceusage.serviceUsageConsumer
) per l'ispezione degli stati dei servizi e delle operazioni e l'utilizzo di quota e fatturazione per le risorse di progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di fornire il tuo account utente le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
Crea la struttura delle cartelle e il file di configurazione di Terraform
-
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.
- Nel terminale Cloud Shell, esegui questo comando per impostare la home directory come directory attiva:
cd
- Esegui questo comando per creare una nuova cartella denominata
terraform
:
mkdir terraform
- Avvia l'editor di Cloud Shell.
- Nel riquadro Explorer, fai clic con il pulsante destro del mouse sulla cartella
terraform
, quindi fai clic su Nuovo file. - Inserisci
main.tf
come nome file e fai clic su OK.
Definisci l'infrastruttura nel file di configurazione Terraform
Apri il file
main.tf
nell'editor di Cloud Shell.Sostituisci i segnaposto PROJECT_NAME e LOCATION nel seguente esempio di configurazione di Terraform, quindi copia l'esempio nel file
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: inserisci l'ID progetto Google Cloud.
LOCATION: inserisci una regione e una zona per l'istanza di blocchi note gestiti dall'utente. Ad esempio,
us-west2-b
. Per ottenere le migliori prestazioni di rete, seleziona la regione geograficamente più vicina a te. Vedi le posizioni dei blocchi note gestiti dall'utente disponibili.
Salva il file
main.tf
.
Inizializza la directory di lavoro contenente il file di configurazione di Terraform
Per aprire il terminale Cloud Shell, nella barra degli strumenti della Nell'editor di Cloud Shell, fai clic su Apri terminale.
Nel terminale Cloud Shell, esegui questo comando per impostare la cartella
terraform
come directory di lavoro corrente:cd ~/terraform
Esegui questo comando:
terraform init
Terraform inizializza la directory di lavoro. Le seguenti l'output visualizzato:
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.
Visualizza l'anteprima del piano di esecuzione in base alla configurazione Terraform
Il piano di esecuzione di Terraform indica le modifiche che Terraform intende apportare all'infrastruttura e ai servizi Vertex AI.
Esegui questo comando per visualizzare il piano di esecuzione di Terraform.
terraform plan
Se viene richiesto di autorizzare Cloud Shell, fai clic su Autorizza. Per impostazione predefinita, Cloud Shell utilizza le credenziali dell'utente al momento dell'autorizzazione.
Vedrai un output simile al seguente:
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
indica l'ID progetto Google Cloud che hai specificato.us-west2-b
indica la regione e la zona per l'istanza di blocchi note gestiti dall'utente specificata.
Applica le modifiche proposte nel piano di esecuzione
Esegui il seguente comando per applicare le modifiche del piano di esecuzione all'infrastruttura Vertex AI e creare l'istanza di notebook gestita dall'utente:
terraform apply
Vedrai un output simile al seguente:
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
indica l'ID progetto Google Cloud che hai specificato.us-west2-b
indica la regione e la zona per l'istanza di blocchi note gestiti dall'utente specificata.
Digita
yes
e premi Invio. Verrà visualizzato un output simile al seguente:Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Visualizzare l'istanza di notebook gestita dall'utente
Nella console Google Cloud, vai alla pagina Blocchi note gestiti dall'utente.
Vai a Blocchi note gestiti dall'utente
Il nuovo notebook denominato "notebooks-instance-basic" viene visualizzato nella tabella. Tieni presente che potrebbero essere necessari alcuni minuti per il provisioning della nuova istanza di notebook gestita dall'utente dopo l'esecuzione di terraform apply
.
Pulizia del progetto
Esegui la pulizia delle risorse Google Cloud che hai creato durante questo tutorial. Per evitare addebiti imprevisti da alcune risorse:
Nel terminale Cloud Shell, esegui il seguente comando per impostare la cartella
terraform
come directory di lavoro corrente:cd ~/terraform
Per eliminare le risorse Vertex AI che hai creato in base alla tua configurazione Terraform, esegui questo comando:
terraform destroy
Verrà visualizzato un output simile al seguente:
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
indica l'ID progetto Google Cloud che hai specificato.us-west2-b
indica la regione e la zona per l'istanza di blocchi note gestiti dall'utente specificata.
Digita
yes
e premi Invio. Verrà visualizzato un output simile al seguente:Destroy complete! Resources: 2 destroyed.
Per verificare che l'istanza di blocchi note gestiti dall'utente sia stata eliminata, vai alla pagina Blocchi note gestiti dall'utente.
Per eliminare la cartella
terraform
e i relativi contenuti, fai clic con il tasto destro del mouse sulla cartellaterraform
nel riquadro Explorer e poi su Elimina.Quando richiesto, fai clic su OK per confermare.
Altri modi per utilizzare Terraform in Vertex AI
Questo tutorial ti ha mostrato come utilizzare Terraform creando un solo file di configurazione ed eseguendo il provisioning dell'infrastruttura in base a una risorsa Terraform. Puoi utilizzare Terraform anche nei seguenti modi:
Aggiungi più risorse Terraform allo stesso file di configurazione Terraform. Per un elenco delle risorse Terraform per Vertex AI, vedi Risorse Terraform disponibili per Vertex AI.
Creare una struttura di directory che comprenda più cartelle e file di configurazione di Terraform. Ad esempio, puoi creare una cartella e un file di configurazione Terraform separati per ogni tipo di risorsa Terraform.
Passaggi successivi
Scopri di più sulla risorsa Terraform
google_notebooks_instance
nel registro Terraform.Scopri di più sui notebook gestiti dall'utente e su Vertex AI Workbench.
Installa Terraform sull'interfaccia a riga di comando locale.
Scopri di più su Terraform sul sito web per sviluppatori Terraform.
Consulta la documentazione delle risorse Terraform nel registro Terraform.