Agende a execução de um bloco de notas

Esta página mostra como agendar a execução de um bloco de notas no Colab Enterprise.

Vista geral

Pode agendar um bloco de notas para ser executado imediatamente uma vez ou com uma programação recorrente.

Quando agenda a execução do bloco de notas, seleciona um modelo de tempo de execução. O Colab Enterprise usa este modelo de tempo de execução para criar o tempo de execução que executa o seu bloco de notas.

O tempo de execução precisa de autorizações específicas para executar o código do bloco de notas e aceder Google Cloud a serviços e APIs.

  • Se a configuração do modelo de tempo de execução tiver credenciais do utilizador final ativadas, o tempo de execução usa as autorizações associadas às suas credenciais de utilizador.

  • Se as credenciais do utilizador final não estiverem ativadas, tem de especificar uma conta de serviço quando agendar a execução do bloco de notas. O Colab Enterprise usa as credenciais desta conta de serviço para executar o seu bloco de notas.

Para mais informações, consulte o artigo Funções necessárias para executar o bloco de notas.

Depois de o Colab Enterprise concluir a execução do bloco de notas, os resultados são armazenados num contentor do Cloud Storage partilhável.

Limitações

Os tempos de execução do Colab Enterprise usam a quota do Compute Engine. Consulte a página de quotas de atribuição do Compute Engine.

Antes de começar

  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.

    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 (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 (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

  8. Funções necessárias para agendar a execução do bloco de notas

    Para receber as autorizações de que precisa para agendar a execução de um bloco de notas no Colab Enterprise, peça ao seu administrador para lhe conceder as seguintes funções do IAM no projeto:

    Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

    Funções necessárias para executar o bloco de notas

    O principal que executa o bloco de notas precisa de autorizações específicas. O principal é a sua conta de utilizador ou uma conta de serviço que especificar, conforme descrito na vista geral.

    Para receber as autorizações de que precisa para executar um bloco de notas no Colab Enterprise, peça ao seu administrador para lhe conceder as seguintes funções de IAM:

    Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Estas funções predefinidas contêm as autorizações necessárias para executar um bloco de notas no Colab Enterprise. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

    Autorizações necessárias

    São necessárias as seguintes autorizações para executar um bloco de notas no Colab Enterprise:

    • dataform.locations.list no bloco de notas
    • dataform.repositories.computeAccessTokenStatus no bloco de notas
    • dataform.repositories.fetchHistory no bloco de notas
    • dataform.repositories.fetchRemoteBranches no bloco de notas
    • dataform.repositories.get no bloco de notas
    • dataform.repositories.getIamPolicy no bloco de notas
    • dataform.repositories.list no bloco de notas
    • dataform.repositories.queryDirectoryContents no bloco de notas
    • dataform.repositories.readFile no bloco de notas
    • 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 bloco de notas
    • storage.managedFolders.create no bloco de notas
    • storage.managedFolders.delete no bloco de notas
    • storage.managedFolders.get no bloco de notas
    • storage.managedFolders.list no bloco de notas
    • storage.multipartUploads.abort no bloco de notas
    • storage.multipartUploads.create no bloco de notas
    • storage.multipartUploads.list no bloco de notas
    • storage.multipartUploads.listParts no bloco de notas
    • storage.objects.create no bloco de notas
    • storage.objects.delete no bloco de notas
    • storage.objects.get no bloco de notas
    • storage.objects.list no bloco de notas
    • storage.objects.restore no bloco de notas
    • storage.objects.setRetention no bloco de notas

    Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

    Execute um notebook uma vez

    Para executar um bloco de notas uma vez, pode usar a Google Cloud consola, a CLI Google Cloud, a biblioteca cliente Python do Vertex AI, ou o Terraform.

    Consola

    1. Na Google Cloud consola, aceda à página Os meus blocos de notas do Colab Enterprise.

      Aceda a Os meus notebooks

    2. No menu Região, selecione a região que contém o seu bloco de notas.

    3. Junto a um bloco de notas, clique no menu Ações do bloco de notas e selecione Agendar.

    4. No campo Nome da agenda, introduza um nome para a sua agenda.

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

    6. Em Agendamento de execução, selecione Único para executar o bloco de notas assim que o enviar.

    7. Junto ao campo Localização de saída do Cloud Storage, clique em Procurar para abrir a caixa de diálogo Selecionar pasta.

    8. Selecione um contentor do Cloud Storage. Em alternativa, para criar um contentor, clique em  Criar novo contentor e conclua a caixa de diálogo.

    9. Se selecionou um modelo de tempo de execução sem credenciais do utilizador final ativadas, a caixa de diálogo inclui um campo Conta de serviço. No campo Conta de serviço, introduza o endereço de email de uma conta de serviço.

    10. Clique em Enviar.

      A execução do bloco de notas começa imediatamente.

    gcloud

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • DISPLAY_NAME: o nome a apresentar da execução do bloco de notas.
    • NOTEBOOK_RUNTIME_TEMPLATE: o modelo de tempo de execução do bloco de notas que especifica a configuração de computação do tempo de execução.
    • NOTEBOOK_URI: o URI do Cloud Storage do bloco de notas a executar.
    • OUTPUT_URI: a localização do Cloud Storage onde quer armazenar os resultados.
    • USER_EMAIL: o endereço de email da conta de utilizador que especifica o acesso da execução do bloco de notas aos recursos. Google Cloud
    • PROJECT_ID: o ID do seu projeto.
    • REGION: a região onde o seu bloco de notas vai 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 a gestão de execuções de blocos de notas do Colab Enterprise a partir da linha de comandos, consulte a documentação da CLI gcloud.

    Python

    Antes de experimentar este exemplo, instale o SDK Vertex AI para Python. A biblioteca cliente Python do Vertex AI é instalada quando instala o SDK Vertex AI para Python. Para mais informações, consulte a documentação de referência da API do SDK Vertex AI para Python.

    Para executar o seguinte exemplo de código, precisa do ID do repositório do Dataform do seu bloco de notas. Para obter o ID do repositório do seu bloco de notas, pode usar 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 os comandos básicos do Terraform. Para mais informações, consulte a Terraform documentação de referência do fornecedor.

    O exemplo seguinte usa o recurso do Terraform google_colab_notebook_execution para executar um 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_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,
      ]
    
    }
    

    Pode ver os resultados das execuções de blocos de notas concluídas na página Execuções.

    Agende a execução de um bloco de notas

    Para agendar a execução de um bloco de notas, pode usar a Google Cloud consola, a CLI gcloud, a biblioteca cliente Python do Vertex AI ou o Terraform.

    Consola

    1. Na Google Cloud consola, aceda à página Os meus blocos de notas do Colab Enterprise.

      Aceda a Os meus notebooks

    2. No menu Região, selecione a região que contém o seu bloco de notas.

    3. Junto a um bloco de notas, clique no menu Ações do bloco de notas e selecione Agendar.

    4. No campo Nome da agenda, introduza um nome para a sua agenda.

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

    6. Em Agendamento de execução, selecione Recorrente para agendar a execução do bloco de notas para um intervalo de tempo específico.

    7. Preencha a caixa de diálogo de agendamento.

    8. Junto ao campo Localização de saída do Cloud Storage, clique em Procurar para abrir a caixa de diálogo Selecionar pasta.

    9. Selecione um contentor do Cloud Storage. Em alternativa, para criar um contentor, clique em  Criar novo contentor e conclua a caixa de diálogo.

    10. Se selecionou um modelo de tempo de execução sem credenciais do utilizador final ativadas, a caixa de diálogo inclui um campo Conta de serviço. No campo Conta de serviço, introduza o endereço de email de uma conta de serviço.

    11. Clique em Enviar.

      As execuções agendadas de blocos de notas são iniciadas automaticamente no horário que definir.

    gcloud

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • DISPLAY_NAME: o nome a apresentar da sua agenda.
    • CRON_SCHEDULE: a programação que define no formato unix-cron. Por exemplo, 00 19 * * MON significa semanalmente à segunda-feira, às 19:00 Hora do Meridiano de Greenwich (GMT).
    • NOTEBOOK_RUN_NAME: o nome a apresentar para as execuções de blocos de notas geradas por esta programação.
    • NOTEBOOK_RUNTIME_TEMPLATE: o modelo de tempo de execução do bloco de notas que especifica a configuração de computação do tempo de execução.
    • NOTEBOOK_URI: o URI do Cloud Storage do bloco de notas a executar.
    • OUTPUT_URI: a localização do Cloud Storage onde quer armazenar os resultados.
    • USER_EMAIL: o endereço de email da conta de utilizador que especifica o acesso da execução do bloco de notas aos recursos. Google Cloud
    • PROJECT_ID: o ID do seu projeto.
    • REGION: a região onde o seu horário vai ser executado.

    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 agendamentos de blocos de notas do Colab Enterprise a partir da linha de comandos, consulte a documentação da CLI gcloud.

    Python

    Antes de experimentar este exemplo, instale o SDK Vertex AI para Python. A biblioteca cliente Python do Vertex AI é instalada quando instala o SDK Vertex AI para Python. Para mais informações, consulte a documentação de referência da API do SDK Vertex AI para Python.

    Para executar o seguinte exemplo de código, precisa do ID do repositório do Dataform do seu bloco de notas. Para obter o ID do repositório do seu bloco de notas, pode usar 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 os comandos básicos do Terraform. Para mais informações, consulte a Terraform documentação de referência do fornecedor.

    O exemplo seguinte usa o recurso do Terraform para agendar uma execução de um bloco de notas do Colab Enterprise. google_colab_schedule

    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,
      ]
    }
    

    Na Google Cloud consola, pode ver as suas programações na página Programações. Pode ver os resultados das execuções de blocos de notas concluídas na página Execuções.

    Ver resultados

    Para ver os resultados da execução do bloco de notas, pode usar a Google Cloud consola, a CLI gcloud ou a biblioteca cliente Python do Vertex AI.

    Consola

    1. Na Google Cloud consola, aceda à página Execuções do Colab Enterprise.

      Aceda a Execuções

    2. Junto à execução do bloco de notas para a qual quer ver os resultados, clique em Ver resultado.

      O Colab Enterprise abre o resultado da execução do bloco de notas num novo separador.

    3. Para ver o resultado, clique no separador.

    gcloud

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu projeto.
    • REGION: a região onde se encontram os resultados da execução do bloco de notas.
    • SCHEDULE_NAME: o nome da programação para ver os resultados. Para ver resultados de todos os horários, 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 blocos de notas do Colab Enterprise a partir da linha de comandos, consulte a documentação da CLI gcloud.

    Python

    Antes de experimentar este exemplo, instale o SDK Vertex AI para Python. A biblioteca cliente Python do Vertex AI é instalada quando instala o SDK Vertex AI para Python. Para mais informações, consulte a documentação de referência da API do SDK Vertex AI para Python.

    Para executar o seguinte exemplo de código, precisa do ID do repositório do Dataform do seu bloco de notas. Para obter o ID do repositório do seu bloco de notas, pode usar 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

    Elimine resultados

    Para eliminar um resultado de uma das execuções do bloco de notas, pode usar a Google Cloud consola ou a CLI gcloud.

    Consola

    1. Na Google Cloud consola, aceda à página Execuções do Colab Enterprise.

      Aceda a Execuções

    2. Selecione a execução do bloco de notas para a qual quer eliminar o resultado.

    3. Clique em  Eliminar.

    4. Para confirmar a eliminação, clique em Confirmar.

    gcloud

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • NOTEBOOK_RUN_ID: o ID da execução do bloco de notas que quer eliminar.
    • PROJECT_ID: o ID do seu projeto.
    • REGION: a região onde a execução do seu bloco de notas 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 eliminar execuções de blocos de notas do Colab Enterprise a partir da linha de comandos, consulte a documentação da CLI gcloud.

    Partilhe os resultados da execução de um notebook

    Pode partilhar os resultados da execução do notebook concedendo acesso ao contentor do Cloud Storage que contém a execução do notebook. A concessão deste acesso também concede aos utilizadores acesso a quaisquer outros recursos no mesmo contentor do Cloud Storage (consulte as Considerações de segurança).

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

    Considerações de segurança

    Os resultados da execução do bloco de notas são armazenados como ficheiros de bloco de notas (IPYNB) num contentor do Cloud Storage. Tenha em atenção o seguinte quando concede acesso a este contentor:

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

    • Qualquer pessoa com a capacidade de alterar o conteúdo do contentor pode alterar o conteúdo do ficheiro do bloco de notas.

    Quando a programação está configurada para usar credenciais pessoais, apenas o utilizador especificado pode modificar ou acionar a programação.

    Quando a sua programação está configurada para usar uma conta de serviço, apenas os utilizadores com a autorização iam.serviceAccounts.actAs na conta de serviço podem modificar a programação ou acioná-la.

    Veja os detalhes da programação

    Pode ver informações sobre um horário, incluindo:

    • O contentor do Cloud Storage no qual a programação armazena os resultados.
    • A hora de início e de fim.
    • A frequência.

    Para ver os detalhes do agendamento, pode usar a Google Cloud consola ou a CLI gcloud.

    Consola

    1. Na Google Cloud consola, aceda à página Agendamentos do Colab Enterprise.

      Aceda a Agendas

    2. Clique no nome de um agendamento.

      É apresentada a página Detalhes da programação.

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

    gcloud

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • SCHEDULE: o ID da agenda.
    • PROJECT_ID: o ID do seu projeto.
    • REGION: a região onde a sua agenda 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 agendamentos do Colab Enterprise a partir da linha de comandos, consulte a documentação da CLI gcloud.

    Pause, retome ou elimine uma programação

    Para pausar, retomar ou eliminar um agendamento, pode usar a Google Cloud consola, a CLI gcloud ou o Terraform.

    Consola

    1. Na Google Cloud consola, aceda à página Agendamentos do Colab Enterprise.

      Aceda a Agendas

    2. Selecione um horário.

    3. Clique em  Pausar,  Retomar, ou  Eliminar.

    gcloud

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • ACTION: um dos valores pause, resume ou delete.
    • SCHEDULE_ID: o ID da agenda.
    • PROJECT_ID: o ID do seu projeto.
    • REGION: a região onde a sua agenda 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 a gestão de agendamentos do Colab Enterprise a partir da linha de comandos, consulte a documentação da CLI gcloud.

    Terraform

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

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

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

    • PAUSED para pausar a programação
    • ACTIVE para retomar a atualização agendada
    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,
      ]
    }
    

    O que se segue?