Menjadwalkan operasi notebook

Halaman ini menjelaskan cara menjadwalkan eksekusi notebook di Colab Enterprise.

Ringkasan

Anda dapat menjadwalkan notebook agar segera dijalankan satu kali, atau sesuai jadwal berulang.

Saat menjadwalkan eksekusi notebook, Anda memilih template runtime. Colab Enterprise menggunakan template runtime ini untuk membuat runtime yang menjalankan notebook Anda.

Runtime memerlukan izin khusus untuk menjalankan kode notebook dan mengakses Google Cloud layanan dan API.

  • Jika konfigurasi template runtime Anda mengaktifkan kredensial pengguna akhir, runtime akan menggunakan izin yang terkait dengan kredensial pengguna Anda.

  • Jika kredensial pengguna akhir tidak diaktifkan, Anda harus menentukan akun layanan saat menjadwalkan eksekusi notebook. Colab Enterprise menggunakan kredensial akun layanan ini untuk menjalankan notebook Anda.

Untuk mengetahui informasi selengkapnya, lihat Peran yang diperlukan untuk menjalankan notebook.

Setelah Colab Enterprise menyelesaikan eksekusi notebook, hasilnya akan disimpan di bucket Cloud Storage yang dapat dibagikan.

Batasan

Runtime Colab Enterprise menggunakan kuota Compute Engine. Lihat halaman Kuota alokasi Compute Engine.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  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 Agent Platform, 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 Agent Platform, 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

Peran yang diperlukan untuk menjadwalkan eksekusi notebook

Untuk mendapatkan izin yang Anda perlukan guna menjadwalkan eksekusi notebook di Colab Enterprise, minta administrator untuk memberi Anda peran IAM berikut di project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Peran yang diperlukan untuk menjalankan notebook

Akun utama yang menjalankan notebook memerlukan izin tertentu. Akun utama adalah akun pengguna Anda atau akun layanan yang Anda tentukan, seperti yang dijelaskan dalam ringkasan.

Untuk mendapatkan izin yang Anda perlukan untuk menjalankan notebook di Colab Enterprise, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk menjalankan notebook di Colab Enterprise. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk menjalankan notebook di Colab Enterprise:

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

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Menggunakan eksekusi notebook terjadwal di jaringan VPC Bersama

Untuk menggunakan operasi notebook terjadwal di jaringan VPC Bersama, Anda harus memberikan izin tambahan. Lihat Menggunakan Colab Enterprise di jaringan VPC Bersama.

Menjalankan notebook sekali

Untuk menjalankan notebook satu kali, Anda dapat menggunakan konsol Google Cloud , Google Cloud CLI, library klien Python Agent Platform, atau Terraform.

Konsol

  1. Di konsol Google Cloud , buka halaman Notebook saya Colab Enterprise.

    Buka Notebook saya

  2. Di menu Region, pilih region yang berisi notebook Anda.

  3. Di samping notebook, klik menu Tindakan notebook dan pilih Jadwalkan.

  4. Di kolom Nama jadwal, masukkan nama untuk jadwal Anda.

  5. Klik daftar Runtime template, lalu pilih template runtime. Template runtime menentukan spesifikasi runtime yang menjalankan notebook Anda.

  6. Di bagian Jadwal proses, pilih Sekali untuk menjalankan notebook segera setelah Anda mengirimkan proses notebook.

  7. Di samping kolom Lokasi output Cloud Storage, klik Telusuri untuk membuka dialog Pilih folder.

  8. Pilih bucket Cloud Storage. Atau, untuk membuat bucket, klik  Buat bucket baru dan selesaikan dialog.

  9. Jika Anda memilih template runtime tanpa kredensial pengguna akhir yang diaktifkan, dialog ini menyertakan kolom Akun layanan. Di kolom Service account, masukkan alamat email akun layanan.

  10. Klik Kirim.

    Notebook akan segera dijalankan.

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • DISPLAY_NAME: nama tampilan untuk eksekusi notebook Anda.
  • NOTEBOOK_RUNTIME_TEMPLATE: template runtime notebook yang menentukan konfigurasi komputasi runtime Anda.
  • NOTEBOOK_URI: URI Cloud Storage dari notebook yang akan dijalankan.
  • OUTPUT_URI: lokasi Cloud Storage tempat Anda ingin menyimpan hasil.
  • USER_EMAIL: alamat email akun pengguna yang menentukan akses run notebook ke resource Google Cloud .
  • PROJECT_ID: project ID Anda.
  • REGION: region tempat notebook Anda akan berjalan.

Jalankan perintah berikut:

Linux, macOS, atau 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

Untuk mengetahui informasi selengkapnya tentang cara mengelola eksekusi notebook Colab Enterprise dari command line, lihat dokumentasi gcloud CLI.

Python

Sebelum mencoba contoh ini, instal Agent Platform SDK untuk Python. Library klien Python Agent Platform diinstal saat Anda menginstal Agent Platform SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API.

Untuk menjalankan contoh kode berikut, Anda memerlukan ID repositori Dataform notebook Anda. Untuk mendapatkan ID repositori notebook Anda, Anda dapat menggunakan metode list_repositories 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

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi penyedia Terraform.

Contoh berikut menggunakan google_colab_notebook_execution resource Terraform untuk menjalankan notebook 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,
  ]

}

Anda dapat melihat hasil dari operasi notebook yang telah selesai di halaman Eksekusi.

Menjadwalkan operasi notebook

Untuk menjadwalkan eksekusi notebook, Anda dapat menggunakan konsol Google Cloud , gcloud CLI, library klien Python Agent Platform, atau Terraform.

Konsol

  1. Di konsol Google Cloud , buka halaman Notebook saya Colab Enterprise.

    Buka Notebook saya

  2. Di menu Region, pilih region yang berisi notebook Anda.

  3. Di samping notebook, klik menu Tindakan notebook dan pilih Jadwalkan.

  4. Di kolom Nama jadwal, masukkan nama untuk jadwal Anda.

  5. Klik daftar Runtime template, lalu pilih template runtime. Template runtime menentukan spesifikasi runtime yang menjalankan notebook Anda.

  6. Di bagian Jadwal proses, pilih Berulang untuk menjadwalkan proses notebook pada interval waktu tertentu.

  7. Selesaikan dialog penjadwalan.

  8. Di samping kolom Lokasi output Cloud Storage, klik Telusuri untuk membuka dialog Pilih folder.

  9. Pilih bucket Cloud Storage. Atau, untuk membuat bucket, klik  Buat bucket baru dan selesaikan dialog.

  10. Jika Anda memilih template runtime tanpa kredensial pengguna akhir yang diaktifkan, dialog ini menyertakan kolom Akun layanan. Di kolom Service account, masukkan alamat email akun layanan.

  11. Klik Kirim.

    Operasi notebook terjadwal akan dimulai secara otomatis sesuai jadwal yang Anda tetapkan.

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • DISPLAY_NAME: nama tampilan jadwal Anda.
  • CRON_SCHEDULE: jadwal yang Anda tetapkan, dalam format unix-cron. Misalnya, 00 19 * * MON berarti setiap minggu pada hari Senin, pukul 1900 Waktu Greenwich (GMT).
  • NOTEBOOK_RUN_NAME: nama tampilan untuk eksekusi notebook yang dihasilkan oleh jadwal ini.
  • NOTEBOOK_RUNTIME_TEMPLATE: template runtime notebook yang menentukan konfigurasi komputasi runtime Anda.
  • NOTEBOOK_URI: URI Cloud Storage dari notebook yang akan dijalankan.
  • OUTPUT_URI: lokasi Cloud Storage tempat Anda ingin menyimpan hasil.
  • USER_EMAIL: alamat email akun pengguna yang menentukan akses run notebook ke resource Google Cloud .
  • PROJECT_ID: project ID Anda.
  • REGION: region tempat jadwal Anda akan berjalan.

Jalankan perintah berikut:

Linux, macOS, atau 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

Untuk mengetahui informasi selengkapnya tentang cara membuat jadwal notebook Colab Enterprise dari command line, lihat dokumentasi gcloud CLI.

Python

Sebelum mencoba contoh ini, instal Agent Platform SDK untuk Python. Library klien Python Agent Platform diinstal saat Anda menginstal Agent Platform SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API.