ノートブックの実行スケジュールを設定する

このページでは、Colab Enterprise でノートブックの実行をスケジュールする方法について説明します。

概要

ノートブックを 1 回すぐに実行することも、定期的なスケジュールで実行することもできます。

ノートブックの実行をスケジュールするときに、ランタイム テンプレートを選択します。Colab Enterprise は、このランタイム テンプレートを使用して、ノートブックを実行するランタイムを作成します。

ランタイムには、ノートブックのコードを実行し、 Google Cloud のサービスと API にアクセスするための特定の権限が必要です。

  • ランタイム テンプレートの構成でエンドユーザー認証情報が有効になっている場合、ランタイムはユーザー認証情報に関連付けられた権限を使用します。

  • エンドユーザーの認証情報が有効になっていない場合は、ノートブックの実行をスケジュールするときにサービス アカウントを指定する必要があります。Colab Enterprise は、このサービス アカウントの認証情報を使用してノートブックを実行します。

詳細については、ノートブックの実行に必要なロールをご覧ください。

Colab Enterprise がノートブックの実行を完了すると、結果は共有可能な Cloud Storage バケットに保存されます。

制限事項

Colab Enterprise ランタイムは Compute Engine の割り当てを使用します。Compute Engine の割り当て割り当てのページをご覧ください。

始める前に

  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.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the APIs

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

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the APIs

ノートブックの実行のスケジュール設定に必要なロール

Colab Enterprise でノートブックの実行をスケジュールするために必要な権限がユーザー アカウントに付与されるように、プロジェクトに対する次の IAM ロールをユーザー アカウントに付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限をユーザー アカウントに付与することもできます。

ノートブックの実行に必要なロール

ノートブックを実行するプリンシパルには、特定の権限が必要です。プリンシパルは、概要で説明されているように、ユーザー アカウントまたは指定したサービス アカウントです。

Colab Enterprise でノートブックを実行するために必要な権限がプリンシパルに付与されるように、プリンシパルに次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、Colab Enterprise でノートブックを実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

Colab Enterprise でノートブックを実行するには、次の権限が必要です。

  • ノートブックに対する dataform.locations.list
  • ノートブックに対する dataform.repositories.computeAccessTokenStatus
  • ノートブックに対する dataform.repositories.fetchHistory
  • ノートブックに対する dataform.repositories.fetchRemoteBranches
  • ノートブックに対する dataform.repositories.get
  • ノートブックに対する dataform.repositories.getIamPolicy
  • ノートブックに対する dataform.repositories.list
  • ノートブックに対する dataform.repositories.queryDirectoryContents
  • ノートブックに対する dataform.repositories.readFile
  • プロジェクトに対する logging.logEntries.create
  • プロジェクトに対する logging.logEntries.route
  • プロジェクトに対する monitoring.metricDescriptors.create
  • プロジェクトに対する monitoring.metricDescriptors.get
  • プロジェクトに対する monitoring.metricDescriptors.list
  • プロジェクトに対する monitoring.monitoredResourceDescriptors.get
  • プロジェクトに対する monitoring.monitoredResourceDescriptors.list
  • プロジェクトに対する monitoring.timeSeries.create
  • プロジェクトに対する resourcemanager.projects.get
  • プロジェクトに対する resourcemanager.projects.list
  • ノートブックに対する storage.buckets.get
  • ノートブックに対する storage.managedFolders.create
  • ノートブックに対する storage.managedFolders.delete
  • ノートブックに対する storage.managedFolders.get
  • ノートブックに対する storage.managedFolders.list
  • ノートブックに対する storage.multipartUploads.abort
  • ノートブックに対する storage.multipartUploads.create
  • ノートブックに対する storage.multipartUploads.list
  • ノートブックに対する storage.multipartUploads.listParts
  • ノートブックに対する storage.objects.create
  • ノートブックに対する storage.objects.delete
  • ノートブックに対する storage.objects.get
  • ノートブックに対する storage.objects.list
  • ノートブックに対する storage.objects.restore
  • ノートブックに対する storage.objects.setRetention

管理者は、カスタムロールや他の事前定義ロールを使用して、プリンシパルにこれらの権限を付与することもできます。

ノートブックを 1 回実行する

ノートブックを 1 回実行するには、 Google Cloud コンソール、Google Cloud CLI、または Vertex AI Python クライアント ライブラリを使用します。

コンソール

  1. Google Cloud コンソールで、Colab Enterprise の [ノートブック] ページに移動します。

    [ノートブック] に移動

  2. [リージョン] メニューで、ノートブックを含むリージョンを選択します。

  3. ノートブックの横にある [ノートブックのアクション] メニューをクリックし、[スケジュール] を選択します。

  4. [スケジュール名] フィールドに、スケジュールの名前を入力します。

  5. [ランタイム テンプレート] リストをクリックして、ランタイム テンプレートを選択します。ランタイム テンプレートは、ノートブックを実行するランタイムの仕様を決定します。

  6. [実行スケジュール] で [1 回限り] を選択して、ノートブックの実行を送信するとすぐにノートブックを実行します。

  7. [Cloud Storage 出力ロケーション] フィールドの横にある [参照] をクリックして、[フォルダの選択] ダイアログを開きます。

  8. Cloud Storage バケットを選択します。バケットを作成するには、[ 新しいバケットを作成] をクリックしてダイアログを完了します。

  9. エンドユーザー認証情報を有効にしていないランタイム テンプレートを選択した場合、ダイアログには [サービス アカウント] フィールドが表示されます。[サービス アカウント] フィールドに、サービス アカウントのメールアドレスを入力します。

  10. [送信] をクリックします。

    ノートブックの実行がすぐに開始されます。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • DISPLAY_NAME: ノートブックの実行の表示名。
  • NOTEBOOK_RUNTIME_TEMPLATE: ランタイムのコンピューティング構成を指定するノートブック ランタイム テンプレート。
  • NOTEBOOK_URI: 実行するノートブックの Cloud Storage URI。
  • OUTPUT_URI: 結果を保存する Cloud Storage の場所。
  • USER_EMAIL: ノートブック実行の Google Cloud リソースへのアクセスを指定するユーザー アカウントのメールアドレス。
  • PROJECT_ID: プロジェクト ID。
  • REGION: ノートブックを実行するリージョン。

次のコマンドを実行します。

Linux、macOS、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

コマンドラインから Colab Enterprise ノートブックの実行を管理する方法については、gcloud CLI のドキュメントをご覧ください。

Python

このサンプルを試す前に、Vertex AI SDK for Python をインストールします。Vertex AI SDK for Python をインストールすると、Vertex AI Python クライアント ライブラリがインストールされます。詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。

from google.cloud import aiplatform_v1beta1

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_v1beta1.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
    "dataformRepositorySource": {
        "dataformRepositoryResourceName": 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()

完了したノートブックの実行結果は、[実行ジョブ] タブで確認できます。

ノートブックの実行スケジュールを設定する

ノートブックの実行をスケジュールするには、 Google Cloud コンソール、gcloud CLI、または Vertex AI Python クライアント ライブラリを使用します。

コンソール

  1. Google Cloud コンソールで、Colab Enterprise の [ノートブック] ページに移動します。

    [ノートブック] に移動

  2. [リージョン] メニューで、ノートブックを含むリージョンを選択します。

  3. ノートブックの横にある [ノートブックのアクション] メニューをクリックし、[スケジュール] を選択します。

  4. [スケジュール名] フィールドに、スケジュールの名前を入力します。

  5. [ランタイム テンプレート] リストをクリックして、ランタイム テンプレートを選択します。ランタイム テンプレートでは、ノートブックを実行するランタイムの仕様を決定します。

  6. [実行スケジュール] で [繰り返し] を選択し、特定の時間間隔でノートブックの実行をスケジュールします。

  7. スケジュール設定ダイアログを完了します。

  8. [Cloud Storage 出力ロケーション] フィールドの横にある [参照] をクリックして、[フォルダの選択] ダイアログを開きます。

  9. Cloud Storage バケットを選択します。バケットを作成するには、[ 新しいバケットを作成] をクリックしてダイアログを完了します。

  10. エンドユーザー認証情報を有効にしていないランタイム テンプレートを選択した場合、ダイアログには [サービス アカウント] フィールドが表示されます。[サービス アカウント] フィールドに、サービス アカウントのメールアドレスを入力します。

  11. [送信] をクリックします。

    スケジュールされたノートブックの実行は、設定したスケジュールで自動的に開始されます。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • DISPLAY_NAME: スケジュールの表示名。
  • CRON_SCHEDULE: 設定したスケジュール(unix-cron 形式)。たとえば、00 19 * * MON は、グリニッジ標準時(GMT)で毎週月曜日の 19 時 00 分を意味します。
  • NOTEBOOK_RUN_NAME: このスケジュールによって生成されたノートブック実行の表示名。
  • NOTEBOOK_RUNTIME_TEMPLATE: ランタイムのコンピューティング構成を指定するノートブック ランタイム テンプレート。
  • NOTEBOOK_URI: 実行するノートブックの Cloud Storage URI。
  • OUTPUT_URI: 結果を保存する Cloud Storage の場所。
  • USER_EMAIL: ノートブックの実行が Google Cloud リソースにアクセスできるように指定するユーザー アカウントのメールアドレス。
  • PROJECT_ID: プロジェクト ID。
  • REGION: スケジュールが実行されるリージョン。

次のコマンドを実行します。

Linux、macOS、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

コマンドラインから Colab Enterprise ノートブックのスケジュールを作成する方法については、gcloud CLI のドキュメントをご覧ください。

Python

このサンプルを試す前に、Vertex AI SDK for Python をインストールします。Vertex AI SDK for Python をインストールすると、Vertex AI Python クライアント ライブラリがインストールされます。詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。

from google.cloud import aiplatform_v1beta1

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

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

schedules_service_client = aiplatform_v1beta1.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
        "dataformRepositorySource": {
            "dataformRepositoryResourceName": 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",
    }
  }
})

Google Cloud コンソールの [スケジュール] タブで、スケジュールを確認できます。完了したノートブックの実行結果は、[実行ジョブ] タブで確認できます。

結果を表示する

ノートブックの実行結果を表示するには、 Google Cloud コンソール、gcloud CLI、または Vertex AI Python クライアント ライブラリを使用します。

コンソール

  1. Google Cloud コンソールで、Colab Enterprise の [実行ジョブ] ページに移動します。

    [実行ジョブ] に移動

  2. 結果を表示するノートブック実行の横にある [結果を表示] をクリックします。

    ノートブックの実行結果を示す読み取り専用パネルが開きます。

  3. パネルを閉じるには、[閉じる] をクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • REGION: ノートブックの実行結果が配置されているリージョン。
  • SCHEDULE_NAME: 結果を表示するスケジュールの名前。すべてのスケジュールの結果を表示するには、--filter フラグを省略します。

次のコマンドを実行します。

Linux、macOS、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"

コマンドラインから Colab Enterprise ノートブックの実行を一覧表示する方法については、gcloud CLI のドキュメントをご覧ください。

Python

このサンプルを試す前に、Vertex AI SDK for Python をインストールします。Vertex AI SDK for Python をインストールすると、Vertex AI Python クライアント ライブラリがインストールされます。詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。

from google.cloud import aiplatform_v1beta1

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_v1beta1.NotebookServiceClient(client_options = {
    "api_endpoint": API_ENDPOINT,
})

notebook_execution_jobs = notebook_service_client.list_notebook_execution_jobs(parent=PARENT)
notebook_execution_jobs

検索結果を削除する

ノートブックの実行結果を削除するには、 Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

  1. Google Cloud コンソールで、Colab Enterprise の [実行ジョブ] ページに移動します。

    [実行ジョブ] に移動

  2. 結果を削除するノートブック実行を選択します。

  3. [ 削除] をクリックします。

  4. 削除を確定するには、[確定] をクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • NOTEBOOK_RUN_ID: 削除するノートブック実行の ID。
  • PROJECT_ID: プロジェクト ID。
  • REGION: ノートブックの実行が配置されているリージョン。

次のコマンドを実行します。

Linux、macOS、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

コマンドラインから Colab Enterprise ノートブックの実行を削除する方法については、gcloud CLI のドキュメントをご覧ください。

ノートブックの実行結果を共有する

ノートブックの実行結果を共有するには、ノートブックの実行を含む Cloud Storage バケットへのアクセスを許可します。このアクセス権を付与すると、同じ Cloud Storage バケット内の他のリソースにもアクセスできるようになります(セキュリティに関する考慮事項をご覧ください)。

詳細については、Cloud Storage の共有とコラボレーションのページをご覧ください。

セキュリティ上の考慮事項

ノートブックの実行結果は、ノートブック(IPYNB)ファイルとして Cloud Storage バケットに保存されます。このバケットへのアクセス権を付与する際は、次の点を考慮してください。

  • バケットにアクセスできるユーザーは、ノートブック ファイルのコードとノートブックの実行結果を表示できます。

  • バケットの内容を変更できるユーザーは、ノートブック ファイルの内容を変更できます。

スケジュールが個人の認証情報を使用するように構成されている場合、スケジュールの変更やトリガーを行えるのは、指定されたユーザーのみです。

スケジュールがサービス アカウントを使用するように構成されている場合、スケジュールを変更またはトリガーできるのは、サービス アカウントに対する iam.serviceAccounts.actAs 権限を持つユーザーのみです。

スケジュールの詳細を表示する

スケジュールに関する次のような情報を表示できます。

  • スケジュールが結果を保存する Cloud Storage バケット。
  • 開始時間と終了時間。
  • 頻度。

スケジュールの詳細を表示するには、 Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

  1. Google Cloud コンソールで、Colab Enterprise の [スケジュール] ページに移動します。

    [スケジュール] に移動

  2. スケジュールの名前をクリックします。

    [スケジュールの詳細] ページが開きます。

  3. [スケジュール] ページに戻るには、 [前のページに戻る] をクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • SCHEDULE: スケジュール ID。
  • PROJECT_ID: プロジェクト ID。
  • REGION: スケジュールが配置されているリージョン。

次のコマンドを実行します。

Linux、macOS、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

コマンドラインから Colab Enterprise のスケジュールを表示する方法については、gcloud CLI のドキュメントをご覧ください。

スケジュールを一時停止、再開、削除する

スケジュールを一時停止、再開、削除するには、 Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

  1. Google Cloud コンソールで、Colab Enterprise の [スケジュール] ページに移動します。

    [スケジュール] に移動

  2. スケジュールを選択します。

  3. [ 一時停止]、[ 再開]、[ 削除] のいずれかをクリックします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • ACTION: pauseresumedelete のいずれか。
  • SCHEDULE_ID: スケジュール ID。
  • PROJECT_ID: プロジェクト ID。
  • REGION: スケジュールが配置されているリージョン。

次のコマンドを実行します。

Linux、macOS、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

コマンドラインから Colab Enterprise のスケジュールを管理する方法については、gcloud CLI のドキュメントをご覧ください。

次のステップ