スケジューラ API を使用してパイプライン実行をスケジュールする

Vertex AI では、スケジューラ API を使用して、1 回限りまたは繰り返しのパイプライン実行をスケジュールできます。これにより、プロジェクトに継続的なトレーニングを実装できます。

作成したスケジュールは、次のいずれかの状態になります。

  • ACTIVE: アクティブなスケジュールは、cron スケジュール式を使用して構成された頻度に従って、パイプライン実行を継続的に作成します。スケジュールは開始時間にアクティブになり、指定した終了時間まで、またはユーザーが一時停止するまで、その状態を維持します。

  • PAUSED: 一時停止されたスケジュールではパイプライン実行は作成されません。一時停止したスケジュールを再開すると、再びアクティブになります。一時停止したスケジュールを再開するときに、catch_up パラメータを使用して、スキップされた実行(スケジュールが有効であれば、スケジュールされていた実行)を再スケジュールして可能な限り早いスケジュールで送信する必要があるかどうかを指定できます。

  • COMPLETED: スケジュールが完了しても、新しいパイプライン実行は作成されません。スケジュールは指定された終了時間に従って完了します。

スケジューラ API を使用すると、次のことができます。

準備

スケジューラ API を使用してパイプライン実行をスケジュールする前に、次の手順に沿って Google Cloud コンソールで Google Cloud プロジェクトと開発環境を設定します。

  1. スケジューラ API を使用するために、ユーザーまたはサービス アカウントに次の IAM 権限のうち 1 つ以上を付与します。

    • roles/aiplatform.admin
    • roles/aiplatform.user
  2. パイプラインを構築してコンパイルします。詳細については、パイプラインを構築するをご覧ください。

スケジュールを作成する

1 回限りまたは繰り返しのスケジュールを作成できます。

コンソール

Google Cloud コンソールでスケジュールを作成するには、次の操作を行います。プロジェクトとリージョンにスケジュールがすでに存在する場合は、パイプライン実行を作成するの手順に沿って操作します。

パイプライン スケジュールを作成するには、次の操作を行います。

  1. Google Cloud コンソールの Vertex AI セクションで、[パイプライン] ページの [スケジュール] タブに移動します。

    [スケジュール] に移動

  2. [スケジュールされた実行の作成] をクリックして、[パイプライン実行の作成] ペインを開きます。

  3. 次のいずれかのオプションを選択して、[実行の詳細] を指定します。

    • 既存のパイプライン テンプレートに基づいてパイプライン実行を作成するには、[既存のパイプラインから選択] をクリックし、次の詳細を入力します。

      1. パイプラインまたはコンポーネント定義ファイルを含む [リポジトリ] を選択します。

      2. [パイプラインまたはコンポーネント] と [バージョン] を選択します。

    • コンパイル済みのパイプライン定義をアップロードするには、[ファイルをアップロード] をクリックして、次の詳細を入力します。

      1. [参照] をクリックしてファイル セレクタを開きます。実行するコンパイル済みパイプライン YAML ファイルに移動し、パイプラインを選択して [開く] をクリックします。

      2. [パイプライン名またはコンポーネント名] には、デフォルトでパイプライン定義で指定された名前が表示されます。必要に応じて、別のパイプライン名を指定します。

    • Cloud Storage からパイプライン定義ファイルをインポートするには、[Cloud Storage からインポート] をクリックして、次の詳細を入力します。

      1. [参照] をクリックしてパイプライン定義オブジェクトを含む Cloud Storage バケットに移動し、ファイルを選択して [選択] をクリックします。

      2. [パイプラインまたはコンポーネントの名前] を指定します。

  4. パイプライン実行を一意に識別できるように [実行名] を指定します。

  5. 次のように [実行スケジュール] を指定します。

    1. [繰り返し] を選択します。

    2. [開始時刻] で、スケジュールがアクティブになる時間を指定します。

      • スケジュール作成の直後に最初の実行を行うようにスケジュールするには、[今すぐ] を選択します。

      • 最初の実行を特定の日時に行うようにスケジュールするには、[オン] を選択します。

    3. [頻度] フィールドで、unix-cron に基づく Cron スケジュール式を使用して、パイプラインの実行をスケジュールして実行する頻度を指定します。

    4. [終了] で、スケジュールを終了するタイミングを指定します。

      • スケジュールによってパイプラインが無期限に実行されることを示すには、[無期限] を選択します。

      • スケジュールが特定の日時で終了することを示すには、[オン] を選択し、スケジュールの終了日時を指定します。

  6. 省略可: カスタム サービス アカウント、顧客管理の暗号鍵(CMEK)、またはピアリングする VPC ネットワークを指定するには、[詳細オプション] をクリックし、サービス アカウント、CMEK、またはピアリングする VPC ネットワーク名を指定します。

  7. [続行] をクリックし、パイプラインの [ランタイム構成] を指定します。

  8. [送信] をクリックして、パイプライン実行スケジュールを作成します。

REST

パイプライン実行スケジュールを作成するには、projects.locations.schedules.create メソッドを使用して POST リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: パイプラインを実行するリージョン。Vertex AI Pipelines を利用できるリージョンの詳細については、Vertex AI ロケーション ガイドをご覧ください。
  • PROJECT_ID: パイプラインを実行する Google Cloud プロジェクト。
  • DISPLAY_NAME: パイプライン スケジュールの名前。名前には UTF-8 文字を使用し、長さを 128 文字以下にする必要があります。
  • START_TIME: 以降に初回実行をスケジュールできるタイムスタンプ(例: 2045-07-26T00:00:00Z)。このパラメータを指定しない場合は、スケジュールの作成日時に対応するタイムスタンプがデフォルト値として使用されます。
  • END_TIME: 以降にパイプライン実行のスケジュール設定が解除されるタイムスタンプ。END_TIME に達すると、スケジュールの状態は COMPLETED に変わります。このパラメータを指定しない場合は、スケジュールを一時停止または削除するまで、新しいパイプライン ジョブが無期限に実行されます。
  • CRON_EXPRESSION: パイプラインの実行をスケジュールして実行する頻度を表す cron スケジュール式。詳細については、cron をご覧ください。
  • MAX_CONCURRENT_RUN_COUNT: スケジュールの最大同時実行件数。
  • API_REQUEST_TEMPLATE: スケジュールされたパイプライン実行の実行に使用される PipelineService.CreatePipelineJob API リクエスト テンプレート。API リクエスト テンプレートのパラメータの詳細については、pipelineJobs.create のドキュメントをご覧ください。スケジューラ API はこのパラメータをサポートしていないため、このテンプレートでは pipelineJobId パラメータを指定できません。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules

リクエストの本文(JSON):

{
  "display_name":"DISPLAY_NAME",
  "start_time": "START_TIME",
  "end_time": "END_TIME",
  "cron": "CRON_EXPRESSION",
  "max_concurrent_run_count": "MAX_CONCURRENT_RUN_COUNT",
  "create_pipeline_job_request": API_REQUEST_TEMPLATE
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules" | Select-Object -Expand Content

出力は次のようになります。レスポンスの SCHEDULE_ID を使用して、スケジュールを取得、一時停止、再開、削除できます。PIPELINE_JOB_CREATION_REQUEST は、パイプライン ジョブを作成する API リクエストを表します。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID",
  "displayName": "DISPLAY_NAME",
  "startTime": "START_TIME",
  "state": "ACTIVE",
  "createTime": "2025-01-01T00:00:00.000000Z",
  "nextRunTime": "2045-08-01T00:00:00Z",
  "cron": "CRON_EXPRESSION",
  "maxConcurrentRunCount": "MAX_CONCURRENT_RUN_COUNT",
  "createPipelineJobRequest": PIPELINE_JOB_CREATION_REQUEST
}

Python

パイプライン実行スケジュールは次の方法で作成できます。

  • PipelineJob.create_schedule メソッドを使用して、PipelineJob に基づくスケジュールを作成します。

  • PipelineJobSchedule.create メソッドを使用してスケジュールを作成します。

パイプライン実行スケジュールを作成する間に、KFP SDK でサポートされている次のプレースホルダを入力として渡すこともできます。

  • {{$.pipeline_job_name_placeholder}}

  • {{$.pipeline_job_resource_name_placeholder}}

  • {{$.pipeline_job_id_placeholder}}

  • {{$.pipeline_task_name_placeholder}}

  • {{$.pipeline_task_id_placeholder}}

  • {{$.pipeline_job_create_time_utc_placeholder}}

  • {{$.pipeline_job_schedule_time_utc_placeholder}}

  • {{$.pipeline_root_placeholder}}

詳細については、Kubeflow Pipelines v2 ドキュメント特殊な入力タイプをご覧ください。

PipelineJob からスケジュールを作成する

次のサンプルを使用して、PipelineJob.create_schedule メソッドを使用してパイプラインの実行をスケジュールします。

from google.cloud import aiplatform

pipeline_job = aiplatform.PipelineJob(
  template_path="COMPILED_PIPELINE_PATH",
  pipeline_root="PIPELINE_ROOT_PATH",
  display_name="DISPLAY_NAME",
)

pipeline_job_schedule = pipeline_job.create_schedule(
  display_name="SCHEDULE_NAME",
  cron="TZ=CRON",
  max_concurrent_run_count=MAX_CONCURRENT_RUN_COUNT,
  max_run_count=MAX_RUN_COUNT,
)

  • COMPILED_PIPELINE_PATH: コンパイルされたパイプライン YAML ファイルのパス。ローカルパスまたは Cloud Storage URI を指定できます。

    省略可: 特定のバージョンのテンプレートを指定するには、次のいずれかの形式でバージョンタグとパスを含めます。

    • COMPILED_PIPELINE_PATH:TAG。ここで、TAG はバージョンタグです。

    • COMPILED_PIPELINE_PATH@SHA256_TAG。ここで、SHA256_TAG はパイプライン バージョンの sha256 ハッシュ値です。

  • PIPELINE_ROOT_PATH: (省略可)パイプラインの定義で指定されたパイプライン ルートパスをオーバーライドするには、パイプライン ジョブがアクセスできるパス(Cloud Storage バケット URI など)を指定します。

  • DISPLAY_NAME: パイプラインの名前。Google Cloud コンソールに表示されます。

  • SCHEDULE_NAME: パイプライン スケジュールの名前。名前には UTF-8 文字を使用し、長さを 128 文字以下にする必要があります。

  • CRON: パイプライン実行をスケジュールして実行する頻度を表す cron スケジュール式。詳細については、cron をご覧ください。

  • MAX_CONCURRENT_RUN_COUNT: スケジュールの最大同時実行件数。

  • MAX_RUN_COUNT: スケジュールが作成するパイプライン実行の最大数。この数に達すると、スケジュールはが完了します。

PipelineJobSchedule.create を使用してスケジュールを作成する

次のサンプルを使用して、PipelineJobSchedule.create メソッドを使用してパイプラインの実行をスケジュールします。

from google.cloud import aiplatform

pipeline_job = aiplatform.PipelineJob(
  template_path="COMPILED_PIPELINE_PATH",
  pipeline_root="PIPELINE_ROOT_PATH",
  display_name="DISPLAY_NAME",
)

pipeline_job_schedule = aiplatform.PipelineJobSchedule(
  pipeline_job=pipeline_job,
  display_name="SCHEDULE_NAME"
)

pipeline_job_schedule.create(
  cron="TZ=CRON",
  max_concurrent_run_count=MAX_CONCURRENT_RUN_COUNT,
  max_run_count=MAX_RUN_COUNT,
)

  • COMPILED_PIPELINE_PATH: コンパイルされたパイプライン YAML ファイルのパス。ローカルパスまたは Cloud Storage URI を指定できます。

    省略可: 特定のバージョンのテンプレートを指定するには、次のいずれかの形式でバージョンタグとパスを含めます。

    • COMPILED_PIPELINE_PATH: TAG。ここで、TAG はバージョンタグです。

    • COMPILED_PIPELINE_PATH@SHA256_TAG。ここで、SHA256_TAG はパイプライン バージョンの SHA256 ハッシュ値です。

  • PIPELINE_ROOT_PATH: (省略可)パイプラインの定義で指定されたパイプライン ルートパスをオーバーライドするには、パイプライン ジョブがアクセスできるパス(Cloud Storage バケット URI など)を指定します。

  • DISPLAY_NAME: パイプラインの名前。Google Cloud コンソールに表示されます。

  • SCHEDULE_NAME: パイプライン スケジュールの名前。名前には UTF-8 文字を使用し、長さを 128 文字以下にする必要があります。

  • CRON: パイプライン実行をスケジュールして実行する頻度を表す cron スケジュール式。詳細については、cron をご覧ください。

  • MAX_CONCURRENT_RUN_COUNT: スケジュールの最大同時実行件数。

  • MAX_RUN_COUNT: スケジュールが作成するパイプライン実行の最大数。この数に達すると、スケジュールはが完了します。

スケジュールを一覧取得する

Google Cloud プロジェクト用に作成されたパイプライン スケジュールのリストを表示できます。

コンソール

パイプライン スケジュールのリストは、選択したリージョンの Google Cloud コンソールの [スケジュール] タブで確認できます。

パイプライン スケジュールのリストを表示するには、Google Cloud コンソールの Vertex AI セクションで、[パイプライン] ページの [スケジュール] タブに移動します。

[スケジュール] に移動

REST

プロジェクト内のパイプライン実行スケジュールを一覧表示するには、projects.locations.schedules.list メソッドを使用して GET リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: パイプラインを実行するリージョン。Vertex AI Pipelines を利用できるリージョンの詳細については、Vertex AI ロケーション ガイドをご覧ください。
  • PROJECT_ID: パイプラインを実行する Google Cloud プロジェクト。
  • FILTER: (省略可)スケジュールのリストをフィルタリングする式。詳細については、次をご覧ください。
  • PAGE_SIZE:(省略可)ページごとに一覧表示されるスケジュールの数。
  • PAGE_TOKEN: (省略可)標準のリストページ トークン。通常は、前回の ScheduleService.ListSchedules[] 呼び出しから ListSchedulesResponse.next_page_token[] を介して取得します。
  • ORDER_BY: (省略可)レスポンスのスケジュールの表示順を示すカンマ区切りのリスト。

HTTP メソッドと URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules?FILTER&PAGE_SIZE&PAGE_TOKEN&ORDER_BY

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

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

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules?FILTER&PAGE_SIZE&PAGE_TOKEN&ORDER_BY"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules?FILTER&PAGE_SIZE&PAGE_TOKEN&ORDER_BY" | Select-Object -Expand Content

出力は次のようになります。

{
  "schedules": [
    SCHEDULE_ENTITY_OBJECT_1,
    SCHEDULE_ENTITY_OBJECT_2,
    ...
  ],
}

Python

次のサンプルでは、プロジェクト内のすべてのスケジュールを作成時間の降順で一覧取得します。

from google.cloud import aiplatform

aiplatform.PipelineJobSchedule.list(
  filter='display_name="DISPLAY_NAME"',
  order_by='create_time desc'
)

DISPLAY_NAME: パイプライン スケジュールの名前。名前には UTF-8 文字を使用し、長さを 128 文字以下にする必要があります。

スケジュールを取得する

パイプライン実行スケジュールは、スケジュール ID を使用して取得できます。

REST

パイプライン実行スケジュールを取得するには、projects.locations.schedules.get メソッドとスケジュール ID を使用して GET リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: パイプラインを実行するリージョン。Vertex AI Pipelines を利用できるリージョンの詳細については、Vertex AI ロケーション ガイドをご覧ください。
  • PROJECT_ID: パイプラインを実行する Google Cloud プロジェクト。
  • SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。

HTTP メソッドと URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

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

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID" | Select-Object -Expand Content

出力は次のようになります。PIPELINE_JOB_CREATION_REQUEST は、パイプライン ジョブを作成する API リクエストを表します。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID",
  "displayName": "schedule_display_name",
  "startTime": "2045-07-26T06:59:59Z",
  "state": "ACTIVE",
  "createTime": "20xx-01-01T00:00:00.000000Z",
  "nextRunTime": "2045-08-01T00:00:00Z",
  "cron": "TZ=America/New_York 0 0 1 * *",
  "maxConcurrentRunCount": "10",
  "createPipelineJobRequest": PIPELINE_JOB_CREATION_REQUEST
}

Python

次のサンプルでは、スケジュール ID を使用してパイプライン実行スケジュールを取得します。

from google.cloud import aiplatform

pipeline_job_schedule = aiplatform.PipelineJobSchedule.get(schedule_id=SCHEDULE_ID)

SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。

スケジュールを一時停止する

スケジュール ID を指定することで、アクティブなパイプライン スケジュールを一時停止できます。スケジュールを一時停止すると、状態が ACTIVE から PAUSED に変わります。

コンソール

現在アクティブなパイプライン実行スケジュールを一時停止できます。

スケジュールを一時停止する手順は次のとおりです。

  1. Google Cloud コンソールの Vertex AI セクションで、[パイプライン] ページの [スケジュール] タブに移動します。

    [スケジュール] に移動

  2. 一時停止するスケジュールと同じ行にある のオプション メニューに移動し、[一時停止] をクリックします。[ステータス] 列に [有効] と表示されているスケジュールは、一時停止できます。

REST

プロジェクトでパイプライン実行スケジュールを一時停止するには、projects.locations.schedules.pause メソッドを使用して POST リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: パイプライン実行スケジュールが現在アクティブとなっているリージョン。Vertex AI Pipelines を利用できるリージョンの詳細については、Vertex AI ロケーション ガイドをご覧ください。
  • PROJECT_ID: パイプライン実行スケジュールが現在アクティブとなっている Google Cloud プロジェクト。
  • SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID:pause

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

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

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID:pause"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID:pause" | Select-Object -Expand Content

成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。

Python

次のサンプルでは、パイプラインの実行スケジュールを一時停止します。

from google.cloud import aiplatform

pipeline_job_schedule = aiplatform.PipelineJobSchedule.get(schedule_id=SCHEDULE_ID)

pipeline_job_schedule.pause()

SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。

スケジュールを更新する

Google Cloud プロジェクト用に作成された既存のパイプライン スケジュールを更新できます。

スケジュールの更新は、スケジュールの削除と再作成に似ています。スケジュールを更新すると、更新されたスケジュールの頻度に基づいて新しい実行がスケジュールされます。古いスケジュールに基づいて新しい実行が作成されなくなり、キューに入れられた実行はすべて破棄されます。古いスケジュールですでに作成されているパイプライン実行は、一時停止もキャンセルもされません。

REST

プロジェクトのパイプライン実行スケジュールを更新するには、projects.locations.schedules.patch メソッドを使用して PATCH リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: パイプラインを実行するリージョン。Vertex AI Pipelines を利用できるリージョンの詳細については、Vertex AI ロケーション ガイドをご覧ください。
  • PROJECT_ID: パイプラインを実行する Google Cloud プロジェクト。
  • DISPLAY_NAME: パイプライン スケジュールの名前。名前には UTF-8 文字を使用し、長さを 128 文字以下にする必要があります。
  • MAX_CONCURRENT_RUN_COUNT: スケジュールの最大同時実行件数。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID?updateMask=display_name,max_run_count -d '{"display_name":"DISPLAY_NAME", "max_concurrent_run_count": MAX_CONCURRENT_RUN_COUNT}'

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

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

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID?updateMask=display_name,max_run_count -d '{"display_name":"DISPLAY_NAME", "max_concurrent_run_count": MAX_CONCURRENT_RUN_COUNT}'"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID?updateMask=display_name,max_run_count -d '{"display_name":"DISPLAY_NAME", "max_concurrent_run_count": MAX_CONCURRENT_RUN_COUNT}'" | Select-Object -Expand Content

出力は次のようになります。更新に基づいて NEXT_RUN_TIME が再計算されます。スケジュールを更新しても、START_TIME は変更されません。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID",
  "displayName": "DISPLAY_NAME",
  "startTime": "START_TIME",
  "state": "ACTIVE",
  "createTime": "2025-01-01T00:00:00.000000Z",
  "nextRunTime": NEXT_RUN_TIME,
  "maxConcurrentRunCount": "MAX_CONCURRENT_RUN_COUNT",
}

Python

次のサンプルを使用して、PipelineJobSchedule.update メソッドを使用してパイプラインの実行をスケジュールします。

from google.cloud import aiplatform

pipeline_job_schedule = aiplatform.PipelineJobSchedule.get(schedule_id=SCHEDULE_ID)

pipeline_job_schedule.update(
  display_name='DISPLAY_NAME',
  max_concurrent_run_count=MAX_CONCURRENT_RUN_COUNT,
)

  • SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。
  • DISPLAY_NAME: パイプライン スケジュールの名前。名前には UTF-8 文字を使用し、長さを 128 文字以下にする必要があります。
  • MAX_CONCURRENT_RUN_COUNT: スケジュールの最大同時実行件数。

スケジュールを再開する

スケジュール ID を指定することで、一時停止したパイプライン スケジュールを再開できます。スケジュールを再開すると、状態が PAUSED から ACTIVE に変わります。

コンソール

現在一時停止しているパイプライン実行スケジュールを再開できます。

スケジュールを再開する手順は次のとおりです。

  1. Google Cloud コンソールの Vertex AI セクションで、[パイプライン] ページの [スケジュール] タブに移動します。

    [スケジュール] に移動

  2. 再開するスケジュールと同じ行にある のオプション メニューに移動し、[再開] をクリックします。[ステータス] 列に [一時停止] と表示されているスケジュールは、すべて再開できます。

REST

プロジェクトでパイプライン実行スケジュールを再開するには、projects.locations.schedules.resume メソッドを使用して POST リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: パイプライン実行スケジュールが現在一時停止されているリージョン。Vertex AI Pipelines を利用できるリージョンの詳細については、Vertex AI ロケーション ガイドをご覧ください。
  • PROJECT_ID: パイプライン実行スケジュールが現在一時停止されている Google Cloud プロジェクト。
  • SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。
  • CATCH_UP: (省略可)一時停止されたスケジュールでスキップされたパイプライン実行をバックフィルするかどうかを示します。スキップされたパイプライン実行をバックフィルして再スケジュールするには、次のように入力します。
    { "catch_up":true } このパラメータは、デフォルトで「false」に設定されています。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID:resume -d 'CATCH_UP'

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

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

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID:resume -d 'CATCH_UP'"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID:resume -d 'CATCH_UP'" | Select-Object -Expand Content

成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。

Python

次のサンプルでは、一時停止したパイプライン実行スケジュールを再開します。

from google.cloud import aiplatform

pipeline_job_schedule = aiplatform.PipelineJobSchedule.get(schedule_id=SCHEDULE_ID)

pipeline_job_schedule.resume(catch_up=CATCH_UP)
  • SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。
  • CATCH_UP: (省略可)一時停止されたスケジュールでスキップされたパイプライン実行をバックフィルするかどうかを示します。スキップされたパイプライン実行をバックフィルして再スケジュールするには、次のように入力します。
    { "catch_up":true }

スケジュールを削除する

パイプライン スケジュールを削除するには、スケジュール ID を指定します。

コンソール

パイプラインの実行スケジュールは、ステータスに関係なく削除できます。

スケジュールを削除するには、次の手順を行います。

  1. Google Cloud コンソールの Vertex AI セクションで、[パイプライン] ページの [スケジュール] タブに移動します。

    [スケジュール] に移動

  2. 削除するスケジュールと同じ行にある オプション メニューに移動し、[削除] をクリックします。

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

REST

プロジェクト内のパイプライン実行スケジュールを削除するには、projects.locations.schedules.delete メソッドを使用して DELETE リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: パイプライン スケジュールを削除するリージョン。Vertex AI Pipelines を利用できるリージョンの詳細については、Vertex AI ロケーション ガイドをご覧ください。
  • PROJECT_ID: スケジュールを削除する Google Cloud プロジェクト。
  • SCHEDULE_ID: スケジュールの作成時に生成された一意のスケジュール ID。

HTTP メソッドと URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

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

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schedules/SCHEDULE_ID" | Select-Object -Expand Content

出力は次のようになります。OPERATION_ID は削除オペレーションを表します。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "20xx-01-01T00:00:00.000000Z",
      "updateTime": "20xx-01-01T00:00:00.000000Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Python

次のサンプルでは、パイプラインの実行スケジュールを削除します。

from google.cloud import aiplatform

pipeline_job_schedule = aiplatform.PipelineJobSchedule.get(schedule_id=SCHEDULE_ID)

pipeline_job_schedule.delete()

SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。

スケジュールによって作成されたすべてのパイプライン ジョブを一覧取得する

スケジュール ID を指定することで、スケジュールによって作成されたすべてのパイプライン ジョブのリストを表示できます。

REST

パイプライン スケジュールによって作成されたすべてのパイプライン実行を一覧取得するには、projects.locations.pipelineJobs メソッドを使用して GET リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: パイプラインを実行するリージョン。Vertex AI Pipelines を利用できるリージョンの詳細については、Vertex AI ロケーション ガイドをご覧ください。
  • PROJECT_ID: パイプラインを実行する Google Cloud プロジェクト。
  • SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。

HTTP メソッドと URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs?filter=schedule_name=projects/PROJECT/locations/LOCATION/schedules/SCHEDULE_ID

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

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

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs?filter=schedule_name=projects/PROJECT/locations/LOCATION/schedules/SCHEDULE_ID"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs?filter=schedule_name=projects/PROJECT/locations/LOCATION/schedules/SCHEDULE_ID" | Select-Object -Expand Content

出力は次のようになります。

{
  "pipelineJobs": [
    PIPELINE_JOB_ENTITY_1,
    PIPELINE_JOB_ENTITY_2,
    ...
  ],
}

Python

次のサンプルを使用して、スケジュールによって作成されたすべてのパイプライン ジョブを作成時間の降順で一覧取得します。

from google.cloud import aiplatform

pipeline_job_schedule = aiplatform.PipelineJobSchedule.get(schedule_id=SCHEDULE_ID)

pipeline_job_schedule.list_jobs(order_by='create_time_desc')

SCHEDULE_ID: スケジュールの作成時に生成される一意のスケジュール ID。