Programar la ejecución de un cuaderno

En esta página se explica cómo programar la ejecución de un cuaderno en Colab Enterprise.

Información general

Puedes programar un cuaderno para que se ejecute inmediatamente una vez o de forma periódica.

Cuando programes la ejecución del cuaderno, selecciona una plantilla de tiempo de ejecución. Colab Enterprise usa esta plantilla de tiempo de ejecución para crear el tiempo de ejecución que ejecuta tu cuaderno.

El tiempo de ejecución necesita permisos específicos para ejecutar el código del cuaderno y acceder a servicios y APIs. Google Cloud

  • Si la configuración de tu plantilla de tiempo de ejecución tiene habilitadas las credenciales de usuario final, el tiempo de ejecución usará los permisos asociados a tus credenciales de usuario.

  • Si las credenciales de usuario final no están habilitadas, debes especificar una cuenta de servicio al programar la ejecución del cuaderno. Colab Enterprise usa las credenciales de esta cuenta de servicio para ejecutar tu cuaderno.

Para obtener más información, consulta Roles necesarios para ejecutar el cuaderno.

Una vez que Colab Enterprise completa la ejecución del cuaderno, los resultados se almacenan en un segmento de Cloud Storage que se puede compartir.

Limitaciones

Los entornos de ejecución de Colab Enterprise usan cuota de Compute Engine. Consulta la página Cuotas de asignación de Compute Engine.

Antes de empezar

  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. Roles necesarios para programar la ejecución del cuaderno

    Para obtener los permisos que necesitas para programar una ejecución de un cuaderno en Colab Enterprise, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto:

    Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

    Roles necesarios para ejecutar el cuaderno

    La cuenta principal que ejecuta el cuaderno necesita permisos específicos. El principal es tu cuenta de usuario o una cuenta de servicio que especifiques, tal como se describe en la descripción general.

    Para obtener los permisos que necesitas para ejecutar un cuaderno en Colab Enterprise, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

    Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    Estos roles predefinidos contienen los permisos necesarios para ejecutar un cuaderno en Colab Enterprise. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

    Permisos obligatorios

    Para ejecutar un cuaderno en Colab Enterprise, se necesitan los siguientes permisos:

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

    También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

    Ejecutar un cuaderno una vez

    Para ejecutar un cuaderno una vez, puedes usar la Google Cloud consola, la CLI de Google Cloud, la biblioteca de cliente de Python de Vertex AI o Terraform.

    Consola

    1. En la consola, ve a la página Mis cuadernos de Colab Enterprise. Google Cloud

      Ir a Mis cuadernos

    2. En el menú Región, selecciona la región que contiene tu cuaderno.

    3. Junto a un cuaderno, haz clic en el menú Acciones del cuaderno y selecciona Programar.

    4. En el campo Nombre de la programación, escriba un nombre para la programación.

    5. Haz clic en la lista Plantilla de tiempo de ejecución y selecciona una plantilla de tiempo de ejecución. La plantilla de tiempo de ejecución determina las especificaciones del tiempo de ejecución que ejecuta el cuaderno.

    6. En Programación de ejecución, selecciona Única vez para ejecutar el cuaderno en cuanto lo envíes.

    7. Junto al campo Ubicación de salida de Cloud Storage, haz clic en Examinar para abrir el cuadro de diálogo Seleccionar carpeta.

    8. Selecciona un segmento de Cloud Storage. También puedes crear un contenedor haciendo clic en  Crear contenedor y completando el cuadro de diálogo.

    9. Si has seleccionado una plantilla de tiempo de ejecución sin las credenciales de usuario final habilitadas, el cuadro de diálogo incluye el campo Cuenta de servicio. En el campo Cuenta de servicio, introduce la dirección de correo de una cuenta de servicio.

    10. Haz clic en Enviar.

      El cuaderno se ejecutará inmediatamente.

    gcloud

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • DISPLAY_NAME: el nombre visible de la ejecución del cuaderno.
    • NOTEBOOK_RUNTIME_TEMPLATE: la plantilla de tiempo de ejecución del cuaderno que especifica la configuración de computación del tiempo de ejecución.
    • NOTEBOOK_URI: el URI de Cloud Storage del cuaderno que se va a ejecutar.
    • OUTPUT_URI: la ubicación de Cloud Storage en la que quieres almacenar los resultados.
    • USER_EMAIL: la dirección de correo de la cuenta de usuario que especifica el acceso de la ejecución del cuaderno a los Google Cloud recursos.
    • PROJECT_ID: tu ID de proyecto.
    • REGION: la región en la que se ejecutará tu cuaderno.

    Ejecuta el siguiente comando:

    Linux, macOS o 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 obtener más información sobre cómo gestionar las ejecuciones de cuadernos de Colab Enterprise desde la línea de comandos, consulta la documentación de la CLI de gcloud.

    Python

    Antes de probar este ejemplo, instala el SDK de Vertex AI para Python. La biblioteca de cliente de Python de Vertex AI se instala al instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API del SDK de Vertex AI para Python.

    Para ejecutar el siguiente código de ejemplo, necesitarás el ID del repositorio de Dataform de tu cuaderno. Para obtener el ID del repositorio de tu cuaderno, puedes usar el método list_repositories de 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 cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor Terraform.

    En el siguiente ejemplo se usa el recurso de Terraform google_colab_notebook_execution para ejecutar un cuaderno de 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,
      ]
    
    }
    

    Puedes ver los resultados de las ejecuciones de cuadernos completadas en la página Ejecuciones.

    Programar la ejecución de un cuaderno

    Para programar una ejecución de cuaderno, puedes usar la Google Cloud consola, la CLI de gcloud, la biblioteca de cliente de Python de Vertex AI o Terraform.

    Consola

    1. En la consola, ve a la página Mis cuadernos de Colab Enterprise. Google Cloud

      Ir a Mis cuadernos

    2. En el menú Región, selecciona la región que contiene tu cuaderno.

    3. Junto a un cuaderno, haz clic en el menú Acciones del cuaderno y selecciona Programar.

    4. En el campo Nombre de la programación, escriba un nombre para la programación.

    5. Haz clic en la lista Plantilla de tiempo de ejecución y selecciona una plantilla de tiempo de ejecución. La plantilla de tiempo de ejecución determina las especificaciones del tiempo de ejecución que ejecuta el cuaderno.

    6. En Programación de ejecución, selecciona Recurrente para programar la ejecución del cuaderno en un intervalo de tiempo específico.

    7. Completa el cuadro de diálogo de programación.

    8. Junto al campo Ubicación de salida de Cloud Storage, haz clic en Examinar para abrir el cuadro de diálogo Seleccionar carpeta.

    9. Selecciona un segmento de Cloud Storage. También puedes crear un contenedor haciendo clic en  Crear contenedor y completando el cuadro de diálogo.

    10. Si has seleccionado una plantilla de tiempo de ejecución sin las credenciales de usuario final habilitadas, el cuadro de diálogo incluye el campo Cuenta de servicio. En el campo Cuenta de servicio, introduce la dirección de correo de una cuenta de servicio.

    11. Haz clic en Enviar.

      Las ejecuciones programadas de cuadernos se inician automáticamente según la programación que hayas definido.

    gcloud

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • DISPLAY_NAME: el nombre visible de tu programación.
    • CRON_SCHEDULE: la programación que has definido en formato cron para UNIX. Por ejemplo, 00 19 * * MON significa semanalmente los lunes a las 19:00 (hora del meridiano de Greenwich, GMT).
    • NOTEBOOK_RUN_NAME: el nombre visible de las ejecuciones del cuaderno generadas por esta programación.
    • NOTEBOOK_RUNTIME_TEMPLATE: la plantilla de tiempo de ejecución del cuaderno que especifica la configuración de computación del tiempo de ejecución.
    • NOTEBOOK_URI: el URI de Cloud Storage del cuaderno que se va a ejecutar.
    • OUTPUT_URI: la ubicación de Cloud Storage en la que quieres almacenar los resultados.
    • USER_EMAIL: la dirección de correo de la cuenta de usuario que especifica el acceso de la ejecución del cuaderno a los Google Cloud recursos.
    • PROJECT_ID: tu ID de proyecto.
    • REGION: la región en la que se ejecutará tu programación.

    Ejecuta el siguiente comando:

    Linux, macOS o 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 obtener más información sobre cómo crear programaciones de cuadernos de Colab Enterprise desde la línea de comandos, consulta la documentación de la CLI de gcloud.

    Python

    Antes de probar este ejemplo, instala el SDK de Vertex AI para Python. La biblioteca de cliente de Python de Vertex AI se instala al instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API del SDK de Vertex AI para Python.

    Para ejecutar el siguiente código de ejemplo, necesitarás el ID del repositorio de Dataform de tu cuaderno. Para obtener el ID del repositorio de tu cuaderno, puedes usar el método list_repositories de 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 cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor Terraform.

    En el siguiente ejemplo se usa el recurso de Terraform google_colab_schedule para programar la ejecución de un cuaderno de 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,
      ]
    }
    

    En la Google Cloud consola, puedes ver tus programaciones en la página Programaciones. Puedes ver los resultados de las ejecuciones completadas del cuaderno en la página Ejecuciones.

    Ver resultados

    Para ver los resultados de la ejecución de un cuaderno, puedes usar la Google Cloud consola, la CLI de gcloud o la biblioteca de cliente de Python de Vertex AI.

    Consola

    1. En la Google Cloud consola, ve a la página Ejecuciones de Colab Enterprise.

      Ve a Ejecuciones.

    2. Junto al cuaderno que quieras consultar, haz clic en Ver resultado.

      Colab Enterprise abre el resultado de la ejecución del cuaderno en una pestaña nueva.

    3. Para ver el resultado, haz clic en la pestaña.

    gcloud

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: tu ID de proyecto.
    • REGION: la región en la que se encuentran los resultados de la ejecución del cuaderno.
    • SCHEDULE_NAME: el nombre de la programación de la que quieres ver los resultados. Para ver los resultados de todas las programaciones, omite la marca --filter.

    Ejecuta el siguiente comando:

    Linux, macOS o 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 obtener más información sobre cómo enumerar las ejecuciones de cuadernos de Colab Enterprise desde la línea de comandos, consulta la documentación de la CLI de gcloud.

    Python

    Antes de probar este ejemplo, instala el SDK de Vertex AI para Python. La biblioteca de cliente de Python de Vertex AI se instala al instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API del SDK de Vertex AI para Python.

    Para ejecutar el siguiente código de ejemplo, necesitarás el ID del repositorio de Dataform de tu cuaderno. Para obtener el ID del repositorio de tu cuaderno, puedes usar el método list_repositories de 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

    Eliminar resultados

    Para eliminar un resultado de una de las ejecuciones de tu cuaderno, puedes usar la Google Cloud consola o la CLI de gcloud.

    Consola

    1. En la Google Cloud consola, ve a la página Ejecuciones de Colab Enterprise.

      Ve a Ejecuciones.

    2. Selecciona la ejecución del cuaderno de la que quieras eliminar el resultado.

    3. Haz clic en  Eliminar.

    4. Para confirmar la eliminación, haz clic en Confirmar.

    gcloud

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • NOTEBOOK_RUN_ID: el ID de la ejecución del cuaderno que quieres eliminar.
    • PROJECT_ID: tu ID de proyecto.
    • REGION: la región en la que se encuentra la ejecución del cuaderno.

    Ejecuta el siguiente comando:

    Linux, macOS o 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 obtener más información sobre cómo eliminar ejecuciones de cuadernos de Colab Enterprise desde la línea de comandos, consulta la documentación de la CLI de gcloud.

    Compartir los resultados de la ejecución de un cuaderno

    Puedes compartir los resultados de la ejecución de un cuaderno dando acceso al segmento de Cloud Storage que contiene la ejecución del cuaderno. Si proporcionas este acceso, los usuarios también podrán acceder a cualquier otro recurso del mismo segmento de Cloud Storage (consulta las consideraciones de seguridad).

    Para obtener más información, consulta la página Compartir y colaborar de Cloud Storage.

    Cuestiones sobre seguridad

    Los resultados de la ejecución de tu cuaderno se almacenan como archivos de cuaderno (IPYNB) en un segmento de Cloud Storage. Ten en cuenta lo siguiente cuando concedas acceso a este contenedor:

    • Cualquier persona con acceso al contenedor puede ver el código del archivo del cuaderno y los resultados de la ejecución del cuaderno.

    • Cualquier persona que pueda cambiar el contenido del contenedor puede cambiar el contenido del archivo de cuaderno.

    Si tu programación está configurada para usar credenciales personales, solo el usuario especificado podrá modificarla o activarla.

    Si tu programación está configurada para usar una cuenta de servicio, solo los usuarios que tengan el permiso iam.serviceAccounts.actAs en la cuenta de servicio podrán modificar o activar la programación.

    Ver los detalles de una programación

    Puedes ver información sobre una programación, como la siguiente:

    • El segmento de Cloud Storage en el que la programación almacena los resultados.
    • La hora de inicio y de finalización.
    • La frecuencia.

    Para ver los detalles de la programación, puedes usar la Google Cloud consola o la CLI de gcloud.

    Consola

    1. En la Google Cloud consola, ve a la página Programaciones de Colab Enterprise.

      Ir a Horarios

    2. Haga clic en el nombre de una programación.

      Se abrirá la página Detalles de la programación.

    3. Para volver a la página Programaciones, haz clic en  Volver a la página anterior.

    gcloud

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • SCHEDULE: tu ID de programación.
    • PROJECT_ID: tu ID de proyecto.
    • REGION: la región en la que se encuentra tu programación.

    Ejecuta el siguiente comando:

    Linux, macOS o 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 obtener más información sobre cómo ver las programaciones de Colab Enterprise desde la línea de comandos, consulta la documentación de la CLI de gcloud.

    Pausar, reanudar o eliminar una programación

    Para pausar, reanudar o eliminar una programación, puedes usar la Google Cloud consola, la CLI de gcloud o Terraform.

    Consola

    1. En la Google Cloud consola, ve a la página Programaciones de Colab Enterprise.

      Ir a Horarios

    2. Selecciona una programación.

    3. Haz clic en  Pausar,  Reanudar o  Eliminar.

    gcloud

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • ACTION: uno de los valores pause, resume o delete.
    • SCHEDULE_ID: tu ID de programación.
    • PROJECT_ID: tu ID de proyecto.
    • REGION: la región en la que se encuentra tu programación.

    Ejecuta el siguiente comando:

    Linux, macOS o 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 obtener más información sobre cómo gestionar las programaciones de Colab Enterprise desde la línea de comandos, consulta la documentación de la CLI de gcloud.

    Terraform

    Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor Terraform.

    En el siguiente ejemplo se usa el recurso de Terraform google_colab_schedule para pausar o reanudar una programación.

    Para usar este ejemplo, cambie el valor de desired_state según lo siguiente:

    • PAUSED para pausar la programación
    • ACTIVE para reanudar la programación
    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,
      ]
    }
    

    Siguientes pasos