Programar a execução de um notebook

Nesta página, mostramos como programar a execução de um notebook no Colab Enterprise.

Visão geral

É possível agendar um notebook para execução imediata uma vez ou de maneira recorrente.

Ao programar a execução do notebook, você seleciona um modelo de ambiente de execução. O Colab Enterprise usa esse modelo de ambiente de execução para criar o ambiente que executa seu notebook.

O ambiente de execução precisa de permissões específicas para executar o código do notebook e acessar serviços e APIs do Google Cloud .

  • Se a configuração do modelo de ambiente de execução tiver credenciais de usuário final ativadas, o ambiente de execução vai usar as permissões associadas às suas credenciais de usuário.

  • Se as credenciais do usuário final não estiverem ativadas, especifique uma conta de serviço ao programar a execução do notebook. O Colab Enterprise usa as credenciais dessa conta de serviço para executar seu notebook.

Para mais informações, consulte Papéis necessários para executar o notebook.

Depois que o Colab Enterprise conclui a execução do notebook, os resultados são armazenados em um bucket compartilhável do Cloud Storage.

Limitações

Os ambientes de execução do Colab Enterprise usam a cota do Compute Engine. Consulte a página Cotas de alocação do Compute Engine.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI, Dataform, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI, Dataform, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Papéis necessários para programar a execução do notebook

Para receber as permissões necessárias para programar a execução de um bloco no Colab Enterprise, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Papéis necessários para executar o notebook

O principal que executa o notebook precisa de permissões específicas. O principal é sua conta de usuário ou uma conta de serviço especificada, conforme descrito na visão geral.

Para receber as permissões necessárias para executar um notebook no Colab Enterprise, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para executar um notebook no Colab Enterprise. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para executar um notebook no Colab Enterprise:

  • dataform.locations.list no notebook
  • dataform.repositories.computeAccessTokenStatus no notebook
  • dataform.repositories.fetchHistory no notebook
  • dataform.repositories.fetchRemoteBranches no notebook
  • dataform.repositories.get no notebook
  • dataform.repositories.getIamPolicy no notebook
  • dataform.repositories.list no notebook
  • dataform.repositories.queryDirectoryContents no notebook
  • dataform.repositories.readFile no notebook
  • logging.logEntries.create no projeto
  • logging.logEntries.route no projeto
  • monitoring.metricDescriptors.create no projeto
  • monitoring.metricDescriptors.get no projeto
  • monitoring.metricDescriptors.list no projeto
  • monitoring.monitoredResourceDescriptors.get no projeto
  • monitoring.monitoredResourceDescriptors.list no projeto
  • monitoring.timeSeries.create no projeto
  • resourcemanager.projects.get no projeto
  • resourcemanager.projects.list no projeto
  • storage.buckets.get no notebook
  • storage.managedFolders.create no notebook
  • storage.managedFolders.delete no notebook
  • storage.managedFolders.get no notebook
  • storage.managedFolders.list no notebook
  • storage.multipartUploads.abort no notebook
  • storage.multipartUploads.create no notebook
  • storage.multipartUploads.list no notebook
  • storage.multipartUploads.listParts no notebook
  • storage.objects.create no notebook
  • storage.objects.delete no notebook
  • storage.objects.get no notebook
  • storage.objects.list no notebook
  • storage.objects.restore no notebook
  • storage.objects.setRetention no notebook

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Usar execuções programadas de notebooks em uma rede VPC compartilhada

Para usar execuções programadas de notebooks em uma rede VPC compartilhada, é necessário conceder outras permissões. Consulte Usar o Colab Enterprise em uma rede VPC compartilhada.

Executar um notebook uma vez

Para executar um notebook uma vez, use o console Google Cloud , a Google Cloud CLI, a biblioteca de cliente Python da Vertex AI ou o Terraform.

Console

  1. No console do Google Cloud , acesse a página Meus notebooks do Colab Enterprise.

    Acessar "Meus notebooks"

  2. No menu Região, selecione a região que contém o notebook.

  3. Ao lado de um notebook, clique no menu Ações do notebook e selecione Programar.

  4. No campo Nome da programação, insira um nome para sua programação.

  5. Clique na lista Modelo de ambiente de execução e selecione um modelo. O modelo de ambiente de execução determina as especificações do ambiente que executa seu notebook.

  6. Em Programação de execução, selecione Única para executar o notebook assim que você enviar a execução.

  7. Ao lado do campo Local de saída do Cloud Storage, clique em Procurar para abrir a caixa de diálogo Selecionar pasta.

  8. Selecione um bucket do Cloud Storage. Ou, para criar um bucket, clique em  Criar novo bucket e preencha a caixa de diálogo.

  9. Se você selecionou um modelo de ambiente de execução sem credenciais de usuário final ativadas, a caixa de diálogo inclui um campo Conta de serviço. No campo Conta de serviço, insira o endereço de e-mail de uma conta de serviço.

  10. Clique em Enviar.

    A execução do notebook começa imediatamente.

gcloud

Antes de usar os dados do comando abaixo, faça estas substituições:

  • DISPLAY_NAME: o nome de exibição da execução do notebook.
  • NOTEBOOK_RUNTIME_TEMPLATE: o modelo de ambiente de execução do notebook que especifica a configuração de computação do ambiente de execução.
  • NOTEBOOK_URI: o URI do Cloud Storage do notebook a ser executado.
  • OUTPUT_URI: o local do Cloud Storage em que você quer armazenar os resultados.
  • USER_EMAIL: o endereço de e-mail da conta de usuário que especifica o acesso da execução do notebook aos recursos do Google Cloud .
  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que o notebook será executado.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud colab executions create --display-name="DISPLAY_NAME" \
    --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE \
    --gcs-notebook-uri=NOTEBOOK_URI \
    --gcs-output-uri=OUTPUT_URI \
    --user-email=USER_EMAIL \
    --project=PROJECT_ID \
    --region=REGION

Windows (PowerShell)

gcloud colab executions create --display-name="DISPLAY_NAME" `
    --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE `
    --gcs-notebook-uri=NOTEBOOK_URI `
    --gcs-output-uri=OUTPUT_URI `
    --user-email=USER_EMAIL `
    --project=PROJECT_ID `
    --region=REGION

Windows (cmd.exe)

gcloud colab executions create --display-name="DISPLAY_NAME" ^
    --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE ^
    --gcs-notebook-uri=NOTEBOOK_URI ^
    --gcs-output-uri=OUTPUT_URI ^
    --user-email=USER_EMAIL ^
    --project=PROJECT_ID ^
    --region=REGION

Para mais informações sobre como gerenciar execuções de notebooks do Colab Enterprise na linha de comando, consulte a documentação da CLI gcloud.

Python

Antes de testar esta amostra, instale o SDK da Vertex AI para Python. A biblioteca de cliente Python da Vertex AI é instalada quando você instala o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API Python do SDK da Vertex AI para Python.

Para executar o exemplo de código a seguir, você precisa do ID do repositório do Dataform do seu notebook. Para receber o ID do repositório do seu notebook, use o método list_repositories do Dataform.

from google.cloud import aiplatform_v1

PROJECT_ID = "my-project"
LOCATION = "us-central1"
REPOSITORY_ID = "b223577f-a3fb-482c-a22c-0658c6602598"
TEMPLATE_ID = "6524523989455339520"

API_ENDPOINT = f"{LOCATION}-aiplatform.googleapis.com"
PARENT = f"projects/{PROJECT_ID}/locations/{LOCATION}"

notebook_service_client = aiplatform_v1.NotebookServiceClient(client_options = {
    "api_endpoint": API_ENDPOINT,
})

operation = notebook_service_client.create_notebook_execution_job(parent=PARENT, notebook_execution_job={
    "display_name": "my-execution-job",

    # Specify a NotebookRuntimeTemplate to source compute configuration from
    "notebook_runtime_template_resource_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/notebookRuntimeTemplates/{TEMPLATE_ID}",

    # Specify a Colab Enterprise notebook to run
    "dataform_repository_source": {
        "dataform_repository_resource_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/repositories/{REPOSITORY_ID}",
    },

    # Specify a Cloud Storage bucket to store output artifacts
    "gcs_output_uri": "gs://my-bucket/",

    # Specify the identity that runs the notebook
    "execution_user": "{EMAIL}",

    # Run as the service account instead
    # "service_account": "my-service-account",
})
print("Waiting for operation to complete...")
result = operation.result()

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform. Para mais informações, consulte a documentação de referência do provedor Terraform.

O exemplo a seguir usa o recurso google_colab_notebook_execution do Terraform para executar um notebook do Colab Enterprise.

resource "google_colab_runtime_template" "my_runtime_template" {
  provider = google-beta
  name = "{{index $.Vars "runtime_template_name"}}"
  display_name = "Runtime template"
  location = "us-central1"

  machine_spec {
    machine_type     = "e2-standard-4"
  }

  network_spec {
    enable_internet_access = true
  }
}

resource "google_storage_bucket" "output_bucket" {
  provider = google-beta
  name          = "{{index $.Vars "bucket"}}"
  location      = "US"
  force_destroy = true
  uniform_bucket_level_access = true
}

resource "google_storage_bucket_object" "notebook" {
  provider = google-beta
  name   = "hello_world.ipynb"
  bucket = google_storage_bucket.output_bucket.name
  content = <<EOF
    {
      "cells": [
        {
          "cell_type": "code",
          "execution_count": null,
          "metadata": {},
          "outputs": [],
          "source": [
            "print(\"Hello, World!\")"
          ]
        }
      ],
      "metadata": {
        "kernelspec": {
          "display_name": "Python 3",
          "language": "python",
          "name": "python3"
        },
        "language_info": {
          "codemirror_mode": {
            "name": "ipython",
            "version": 3
          },
          "file_extension": ".py",
          "mimetype": "text/x-python",
          "name": "python",
          "nbconvert_exporter": "python",
          "pygments_lexer": "ipython3",
          "version": "3.8.5"
        }
      },
      "nbformat": 4,
      "nbformat_minor": 4
    }
    EOF
}

resource "google_colab_notebook_execution" "{{$.PrimaryResourceId}}" {
  provider = google-beta
  notebook_execution_job_id = "{{index $.Vars "notebook_execution_job_id"}}"
  display_name = "Notebook execution full"
  location = "us-central1"

  execution_timeout = "86400s"
  gcs_notebook_source {
  uri = "gs://${google_storage_bucket_object.notebook.bucket}/${google_storage_bucket_object.notebook.name}"
  generation = google_storage_bucket_object.notebook.generation
  }

  service_account = "{{index $.TestEnvVars "service_account"}}"

  gcs_output_uri = "gs://${google_storage_bucket.output_bucket.name}"
  notebook_runtime_template_resource_name = "projects/${google_colab_runtime_template.my_runtime_template.project}/locations/${google_colab_runtime_template.my_runtime_template.location}/notebookRuntimeTemplates/${google_colab_runtime_template.my_runtime_template.name}"

  depends_on = [
    google_storage_bucket_object.notebook,
    google_storage_bucket.output_bucket,
    google_colab_runtime_template.my_runtime_template,
  ]

}

É possível conferir os resultados das execuções de notebook concluídas na página Execuções.

Programar a execução de um notebook

Para programar uma execução de notebook, use o console do Google Cloud , a CLI gcloud, a biblioteca de cliente Python da Vertex AI ou o Terraform.

Console

  1. No console do Google Cloud , acesse a página Meus notebooks do Colab Enterprise.

    Acessar "Meus notebooks"

  2. No menu Região, selecione a região que contém o notebook.

  3. Ao lado de um notebook, clique no menu Ações do notebook e selecione Programar.

  4. No campo Nome da programação, insira um nome para sua programação.

  5. Clique na lista Modelo de ambiente de execução e selecione um modelo. O modelo de ambiente de execução determina as especificações do ambiente que executa seu notebook.

  6. Em Programação de execução, selecione Recorrente para programar a execução do notebook em um intervalo de tempo específico.

  7. Preencha a caixa de diálogo de programação.

  8. Ao lado do campo Local de saída do Cloud Storage, clique em Procurar para abrir a caixa de diálogo Selecionar pasta.

  9. Selecione um bucket do Cloud Storage. Ou, para criar um bucket, clique em  Criar novo bucket e preencha a caixa de diálogo.

  10. Se você selecionou um modelo de ambiente de execução sem credenciais de usuário final ativadas, a caixa de diálogo inclui um campo Conta de serviço. No campo Conta de serviço, insira o endereço de e-mail de uma conta de serviço.

  11. Clique em Enviar.

    As execuções programadas de notebooks começam automaticamente de acordo com a programação que você definir.

gcloud

Antes de usar os dados do comando abaixo, faça estas substituições:

  • DISPLAY_NAME: o nome de exibição da sua programação.
  • CRON_SCHEDULE: a programação definida por você no formato unix-cron. Por exemplo, 00 19 * * MON significa "semanalmente" às segundas-feiras, às 1900 horas, horário de Greenwich (GMT).
  • NOTEBOOK_RUN_NAME: o nome de exibição das execuções de notebook geradas por essa programação.
  • NOTEBOOK_RUNTIME_TEMPLATE: o modelo de ambiente de execução do notebook que especifica a configuração de computação do ambiente de execução.
  • NOTEBOOK_URI: o URI do Cloud Storage do notebook a ser executado.
  • OUTPUT_URI: o local do Cloud Storage em que você quer armazenar os resultados.
  • USER_EMAIL: o endereço de e-mail da conta de usuário que especifica o acesso da execução do notebook aos recursos do Google Cloud .
  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que sua programação será executada.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud colab schedules create --display-name="DISPLAY_NAME" \
    --cron-schedule=CRON_SCHEDULE \
    --execution-display-name=NOTEBOOK_RUN_NAME \
    --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE \
    --gcs-notebook-uri=NOTEBOOK_URI \
    --gcs-output-uri=OUTPUT_URI \
    --user-email=USER_EMAIL \
    --project=PROJECT_ID \
    --region=REGION

Windows (PowerShell)

gcloud colab schedules create --display-name="DISPLAY_NAME" `
    --cron-schedule=CRON_SCHEDULE `
    --execution-display-name=NOTEBOOK_RUN_NAME `
    --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE `
    --gcs-notebook-uri=NOTEBOOK_URI `
    --gcs-output-uri=OUTPUT_URI `
    --user-email=USER_EMAIL `
    --project=PROJECT_ID `
    --region=REGION

Windows (cmd.exe)

gcloud colab schedules create --display-name="DISPLAY_NAME" ^
    --cron-schedule=CRON_SCHEDULE ^
    --execution-display-name=NOTEBOOK_RUN_NAME ^
    --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE ^
    --gcs-notebook-uri=NOTEBOOK_URI ^
    --gcs-output-uri=OUTPUT_URI ^
    --user-email=USER_EMAIL ^
    --project=PROJECT_ID ^
    --region=REGION

Para mais informações sobre como criar programações de notebooks do Colab Enterprise na linha de comando, consulte a documentação da CLI gcloud.

Python

Antes de testar esta amostra, instale o SDK da Vertex AI para Python. A biblioteca de cliente Python da Vertex AI é instalada quando você instala o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API Python do SDK da Vertex AI para Python.

Para executar o exemplo de código a seguir, você precisa do ID do repositório do Dataform do seu notebook. Para receber o ID do repositório do seu notebook, use o método list_repositories do Dataform.

from google.cloud import aiplatform_v1

PROJECT_ID = "my-project"
LOCATION = "us-central1"
REPOSITORY_ID = "b223577f-a3fb-482c-a22c-0658c6602598"
TEMPLATE_ID = "6524523989455339520"

API_ENDPOINT = f"{LOCATION}-aiplatform.googleapis.com"
PARENT = f"projects/{PROJECT_ID}/locations/{LOCATION}"

schedules_service_client = aiplatform_v1.ScheduleServiceClient(client_options = {
    "api_endpoint": API_ENDPOINT,
})

schedule = schedules_service_client.create_schedule(parent=PARENT, schedule={
    "display_name": "my-notebook-schedule",

    # Time specification. TZ is optional.
    # cron = "* * * * *" to run it in the next minute.
    "cron": "TZ=America/Los_Angeles * * * * *",

    # How many runs the schedule will trigger before it becomes COMPLETED.
    # A Schedule in COMPLETED state will not trigger any more runs.
    "max_run_count": 1,
    "max_concurrent_run_count": 1,

    "create_notebook_execution_job_request": {
      "parent": PARENT,
      "notebook_execution_job": {
        "display_name": "my-execution-job",

        # Specify a NotebookRuntimeTemplate to source compute configuration from
        "notebook_runtime_template_resource_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/notebookRuntimeTemplates/{TEMPLATE_ID}",

        # Specify a Colab Enterprise notebook to run
        "dataform_repository_source": {
            "dataform_repository_resource_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/repositories/{REPOSITORY_ID}",
        },

        # Specify a Cloud Storage bucket to store output artifacts
        "gcs_output_uri": "gs://my-bucket/",


        # Specify the identity that runs the notebook
        "execution_user": "{EMAIL}",

        # Run as the service account instead
        # "service_account": "my-service-account",
    }
  }
})

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform. Para mais informações, consulte a documentação de referência do provedor Terraform.

O exemplo a seguir usa o recurso do Terraform google_colab_schedule para programar uma execução de bloco de notas do Colab Enterprise.

resource "google_colab_runtime_template" "my_runtime_template" {
  provider = google-beta
  name = "{{index $.Vars "runtime_template_name"}}"
  display_name = "Runtime template"
  location = "us-central1"

  machine_spec {
    machine_type     = "e2-standard-4"
  }

  network_spec {
    enable_internet_access = true
  }
}

resource "google_storage_bucket" "output_bucket" {
  provider = google-beta
  name          = "{{index $.Vars "bucket"}}"
  location      = "US"
  force_destroy = true
  uniform_bucket_level_access = true
}

resource "google_secret_manager_secret" "secret" {
  provider = google-beta
  secret_id = "{{index $.Vars "secret"}}"
  replication {
    auto {}
  }
}

resource "google_secret_manager_secret_version" "secret_version" {
  provider = google-beta
  secret = google_secret_manager_secret.secret.id
  secret_data = "secret-data"
}

resource "google_dataform_repository" "dataform_repository" {
  provider = google-beta
  name = "{{index $.Vars "dataform_repository"}}"
  display_name = "dataform_repository"
  npmrc_environment_variables_secret_version = google_secret_manager_secret_version.secret_version.id
  kms_key_name = "{{index $.Vars "key_name"}}"

  labels = {
    label_foo1 = "label-bar1"
  }

  git_remote_settings {
      url = "https://github.com/OWNER/REPOSITORY.git"
      default_branch = "main"
      authentication_token_secret_version = google_secret_manager_secret_version.secret_version.id
  }

  workspace_compilation_overrides {
    default_database = "database"
    schema_suffix = "_suffix"
    table_prefix = "prefix_"
  }

}

resource "google_colab_schedule" "{{$.PrimaryResourceId}}" {
  provider = google-beta
  display_name = "{{index $.Vars "display_name"}}"
  location = "{{index $.TestEnvVars "location"}}"
  allow_queueing = true
  max_concurrent_run_count = 2
  cron = "TZ=America/Los_Angeles * * * * *"
  max_run_count = 5
  start_time = "{{index $.Vars "start_time"}}"
  end_time = "{{index $.Vars "end_time"}}"

  desired_state = "ACTIVE"

  create_notebook_execution_job_request {
    notebook_execution_job {
      display_name = "Notebook execution"
      execution_timeout = "86400s"

      dataform_repository_source {
        commit_sha = "randomsha123"
        dataform_repository_resource_name = "projects/{{index $.TestEnvVars "project_id"}}/locations/{{index $.TestEnvVars "location"}}/repositories/${google_dataform_repository.dataform_repository.name}"
      }

      notebook_runtime_template_resource_name = "projects/${google_colab_runtime_template.my_runtime_template.project}/locations/${google_colab_runtime_template.my_runtime_template.location}/notebookRuntimeTemplates/${google_colab_runtime_template.my_runtime_template.name}"

      gcs_output_uri = "gs://${google_storage_bucket.output_bucket.name}"
      service_account = "{{index $.TestEnvVars "service_account"}}"
    }
  }

  depends_on = [
    google_colab_runtime_template.my_runtime_template,
    google_storage_bucket.output_bucket,
    google_secret_manager_secret_version.secret_version,
    google_dataform_repository.dataform_repository,
  ]
}

No console Google Cloud , é possível conferir suas programações na página Programações. É possível conferir os resultados das execuções concluídas do notebook na página Execuções.

Ver resultados

Para conferir os resultados da execução do notebook, use o console Google Cloud , a CLI gcloud ou a biblioteca de cliente Python da Vertex AI.

Console

  1. No console Google Cloud , acesse a página Execuções do Colab Enterprise.

    Acessar "Execuções"

  2. Ao lado da execução do notebook para que você quer ver os resultados, clique em Ver resultado.

    O Colab Enterprise abre o resultado da execução do notebook em uma nova guia.

  3. Para conferir o resultado, clique na guia.

gcloud

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que os resultados da execução do notebook estão localizados.
  • SCHEDULE_NAME: o nome da programação para ver os resultados. Para ver resultados de todas as programações, omita a flag --filter.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud colab executions list --project=PROJECT_ID \
    --region=REGION \
    --filter="scheduleResourceName:SCHEDULE_NAME"

Windows (PowerShell)

gcloud colab executions list --project=PROJECT_ID `
    --region=REGION `
    --filter="scheduleResourceName:SCHEDULE_NAME"

Windows (cmd.exe)

gcloud colab executions list --project=PROJECT_ID ^
    --region=REGION ^
    --filter="scheduleResourceName:SCHEDULE_NAME"

Para mais informações sobre como listar execuções de notebooks do Colab Enterprise na linha de comando, consulte a documentação da CLI gcloud.

Python

Antes de testar esta amostra, instale o SDK da Vertex AI para Python. A biblioteca de cliente Python da Vertex AI é instalada quando você instala o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API Python do SDK da Vertex AI para Python.

Para executar o exemplo de código a seguir, você precisa do ID do repositório do Dataform do seu notebook. Para receber o ID do repositório do seu notebook, use o método list_repositories do Dataform.

from google.cloud import aiplatform_v1

PROJECT_ID = "my-project"
LOCATION = "us-central1"

API_ENDPOINT = f"{LOCATION}-aiplatform.googleapis.com"
PARENT = f"projects/{PROJECT_ID}/locations/{LOCATION}"

notebook_service_client = aiplatform_v1.NotebookServiceClient(client_options = {
    "api_endpoint": API_ENDPOINT,
})

notebook_execution_jobs = notebook_service_client.list_notebook_execution_jobs(parent=PARENT)
notebook_execution_jobs

Excluir resultados

Para excluir um resultado de uma das execuções do notebook, use o console Google Cloud ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Execuções do Colab Enterprise.

    Acessar "Execuções"

  2. Selecione a execução do notebook para a qual você quer excluir o resultado.

  3. Clique em  Excluir.

  4. Para confirmar a exclusão, clique em Confirmar.

gcloud

Antes de usar os dados do comando abaixo, faça estas substituições:

  • NOTEBOOK_RUN_ID: o ID da execução do notebook que você quer excluir.
  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que a execução do notebook está localizada.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud colab executions delete NOTEBOOK_RUN_ID \
    --project=PROJECT_ID \
    --region=REGION

Windows (PowerShell)

gcloud colab executions delete NOTEBOOK_RUN_ID `
    --project=PROJECT_ID `
    --region=REGION

Windows (cmd.exe)

gcloud colab executions delete NOTEBOOK_RUN_ID ^
    --project=PROJECT_ID ^
    --region=REGION

Para mais informações sobre como excluir execuções de notebooks do Colab Enterprise na linha de comando, consulte a documentação da CLI gcloud.

Compartilhar os resultados da execução de um notebook

Compartilhe os resultados da execução do notebook fornecendo acesso ao bucket do Cloud Storage que contém a execução. Fornecer esse acesso também concede aos usuários acesso a quaisquer outros recursos no mesmo bucket do Cloud Storage (consulte Considerações de segurança).

Para mais informações, consulte a página de Compartilhamento e colaboração do Cloud Storage.

Considerações sobre segurança

Os resultados da execução do notebook são armazenados como arquivos de notebook (IPYNB) em um bucket do Cloud Storage. Considere o seguinte ao conceder acesso a esse bucket:

  • Qualquer pessoa com acesso ao bucket pode ver o código do arquivo do notebook e os resultados da execução dele.

  • Qualquer pessoa com a capacidade de mudar o conteúdo do bucket pode mudar o conteúdo do arquivo de notebook.

Quando seu agendamento é configurado para usar credenciais pessoais, somente o usuário especificado pode modificar ou acionar o agendamento.

Quando seu cronograma é configurado para usar uma conta de serviço, somente usuários com a permissão iam.serviceAccounts.actAs na conta de serviço podem modificar ou acionar o cronograma.

Conferir detalhes da programação

É possível conferir informações sobre uma programação, incluindo:

  • O bucket do Cloud Storage em que a programação armazena os resultados.
  • O horário de início e término.
  • A frequência.

Para conferir os detalhes da programação, use o console Google Cloud ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Programações do Colab Enterprise.

    Acessar "Programações"

  2. Clique no nome de uma programação.

    A página Detalhes da programação é aberta.

  3. Para voltar à página Programações, clique em  Voltar à página anterior.

gcloud

Antes de usar os dados do comando abaixo, faça estas substituições:

  • SCHEDULE: o ID da programação.
  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que sua programação está localizada.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud colab schedules describe SCHEDULE \
    --project=PROJECT_ID \
    --region=REGION

Windows (PowerShell)

gcloud colab schedules describe SCHEDULE `
    --project=PROJECT_ID `
    --region=REGION

Windows (cmd.exe)

gcloud colab schedules describe SCHEDULE ^
    --project=PROJECT_ID ^
    --region=REGION

Para mais informações sobre como ver programações do Colab Enterprise na linha de comando, consulte a documentação da CLI gcloud.

Pausar, retomar ou excluir uma programação

Para pausar, retomar ou excluir uma programação, use o console Google Cloud , a CLI gcloud ou o Terraform.

Console

  1. No console Google Cloud , acesse a página Programações do Colab Enterprise.

    Acessar "Programações"

  2. Selecione uma programação.

  3. Clique em  Pausar,  Retomar, ou  Excluir.

gcloud

Antes de usar os dados do comando abaixo, faça estas substituições:

  • ACTION: um de pause, resume ou delete.
  • SCHEDULE_ID: o ID da programação.
  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que sua programação está localizada.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud colab schedules ACTION SCHEDULE_ID \
    --project=PROJECT_ID \
    --region=REGION

Windows (PowerShell)

gcloud colab schedules ACTION SCHEDULE_ID `
    --project=PROJECT_ID `
    --region=REGION

Windows (cmd.exe)

gcloud colab schedules ACTION SCHEDULE_ID ^
    --project=PROJECT_ID ^
    --region=REGION

Para mais informações sobre como gerenciar programações do Colab Enterprise na linha de comando, consulte a documentação da CLI gcloud.

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform. Para mais informações, consulte a documentação de referência do provedor Terraform.

O exemplo a seguir usa o recurso do Terraform google_colab_schedule para pausar ou retomar uma programação.

Para usar este exemplo, mude o valor de desired_state de acordo com o seguinte:

  • PAUSED para pausar a programação
  • ACTIVE para retomar a programação
resource "google_colab_runtime_template" "my_runtime_template" {
  name = "{{index $.Vars "runtime_template_name"}}"
  display_name = "Runtime template"
  location = "us-central1"

  machine_spec {
    machine_type     = "e2-standard-4"
  }

  network_spec {
    enable_internet_access = true
  }
}

resource "google_storage_bucket" "output_bucket" {
  name          = "{{index $.Vars "bucket"}}"
  location      = "US"
  force_destroy = true
  uniform_bucket_level_access = true
}

resource "google_storage_bucket_object" "notebook" {
  name   = "hello_world.ipynb"
  bucket = google_storage_bucket.output_bucket.name
  content = <<EOF
    {
      "cells": [
        {
          "cell_type": "code",
          "execution_count": null,
          "metadata": {},
          "outputs": [],
          "source": [
            "print(\"Hello, World!\")"
          ]
        }
      ],
      "metadata": {
        "kernelspec": {
          "display_name": "Python 3",
          "language": "python",
          "name": "python3"
        },
        "language_info": {
          "codemirror_mode": {
            "name": "ipython",
            "version": 3
          },
          "file_extension": ".py",
          "mimetype": "text/x-python",
          "name": "python",
          "nbconvert_exporter": "python",
          "pygments_lexer": "ipython3",
          "version": "3.8.5"
        }
      },
      "nbformat": 4,
      "nbformat_minor": 4
    }
    EOF
}

resource "google_colab_schedule" "{{$.PrimaryResourceId}}" {
  display_name = "{{index $.Vars "display_name"}}"
  location = "{{index $.TestEnvVars "location"}}"
  max_concurrent_run_count = 2
  cron = "TZ=America/Los_Angeles * * * * *"

  desired_state = "PAUSED"

  create_notebook_execution_job_request {
    notebook_execution_job {
      display_name = "Notebook execution"
      gcs_notebook_source {
        uri = "gs://${google_storage_bucket_object.notebook.bucket}/${google_storage_bucket_object.notebook.name}"
        generation = google_storage_bucket_object.notebook.generation
      }

      notebook_runtime_template_resource_name = "projects/${google_colab_runtime_template.my_runtime_template.project}/locations/${google_colab_runtime_template.my_runtime_template.location}/notebookRuntimeTemplates/${google_colab_runtime_template.my_runtime_template.name}"
      gcs_output_uri = "gs://${google_storage_bucket.output_bucket.name}"
      service_account = "{{index $.TestEnvVars "service_account"}}"
      }
  }

  depends_on = [
    google_colab_runtime_template.my_runtime_template,
    google_storage_bucket.output_bucket,
  ]
}

A seguir