Schedule クラス
パイプラインを送信するスケジュールを定義します。
パイプラインが発行されると、スケジュールを使用して、指定された間隔で、または Blob Storage の場所への変更が検出されたときにパイプラインを送信できます。
スケジュールを初期化します。
コンストラクター
Schedule(workspace, id, name, description, pipeline_id, status, recurrence, datastore_name, polling_interval, data_path_parameter_name, continue_on_step_failure, path_on_datastore, _schedule_provider=None, pipeline_endpoint_id=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
スケジュールが属するワークスペース オブジェクト。 |
id
必須
|
スケジュールの ID。 |
name
必須
|
スケジュールの名前。 |
description
必須
|
スケジュールの説明。 |
pipeline_id
必須
|
スケジュールが送信するパイプラインの ID。 |
status
必須
|
スケジュールの状態 。"アクティブ" または "無効" です。 |
recurrence
必須
|
パイプラインのスケジュールの繰り返し。 |
datastore_name
必須
|
変更された BLOB または追加された BLOB を監視するデータストアの名前。 注: 1) VNET データストアはサポートされていません。 2) データストアの認証の種類を "アカウント キー" に設定する必要があります。 |
polling_interval
必須
|
変更または追加された BLOB のポーリング間隔 (分)。 |
data_path_parameter_name
必須
|
変更された BLOB パスで設定するデータ パス パイプライン パラメーターの名前。 |
continue_on_step_failure
必須
|
送信された PipelineRun 内の 1 つのステップが失敗した場合に、他のステップの実行を続行するかどうかを指定します。 指定すると、パイプラインのcontinue_on_step_failure設定がオーバーライドされます。 |
path_on_datastore
必須
|
省略可。 変更または追加された BLOB を監視するデータストア上のパス。 注: path_on_datastoreはデータストアのコンテナーの下に存在するため、スケジュールによって監視される実際のパスはコンテナー/path_on_datastoreになります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastoreのサブフォルダーで行われた追加/変更は監視されません。 DataStore スケジュールでのみサポートされます。 |
_schedule_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaScheduleProvider>
スケジュール プロバイダー。 規定値: None
|
workspace
必須
|
スケジュールが属するワークスペース オブジェクト。 |
id
必須
|
スケジュールの ID。 |
name
必須
|
スケジュールの名前。 |
description
必須
|
スケジュールの説明。 |
pipeline_id
必須
|
スケジュールが送信するパイプラインの ID。 |
status
必須
|
スケジュールの状態 。"アクティブ" または "無効" です。 |
recurrence
必須
|
パイプラインのスケジュールの繰り返し。 |
datastore_name
必須
|
変更された BLOB または追加された BLOB を監視するデータストアの名前。 注: VNET データストアはサポートされていません。 |
polling_interval
必須
|
変更または追加された BLOB のポーリング間隔 (分)。 |
data_path_parameter_name
必須
|
変更された BLOB パスで設定するデータ パス パイプライン パラメーターの名前。 |
continue_on_step_failure
必須
|
送信された PipelineRun 内の 1 つのステップが失敗した場合に、他のステップの実行を続行するかどうかを指定します。 指定すると、パイプラインのcontinue_on_step_failure設定がオーバーライドされます。 |
path_on_datastore
必須
|
省略可。 変更または追加された BLOB を監視するデータストア上のパス。 注: path_on_datastoreはデータストアのコンテナーの下に存在するため、スケジュールによって監視される実際のパスはコンテナー/path_on_datastoreになります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastoreのサブフォルダーで行われた追加/変更は監視されません。 DataStore スケジュールでのみサポートされます。 |
_schedule_provider
必須
|
<xref:azureml.pipeline.core._aeva_provider._AevaScheduleProvider>
スケジュール プロバイダー。 |
pipeline_endpoint_id
|
スケジュールが送信するパイプライン エンドポイントの ID。 規定値: None
|
注釈
2 種類のスケジュールがサポートされています。 1 回目は、特定のスケジュールに従ってパイプラインを送信するために、時間繰り返しを使用します。 2 つ目は、追加または変更された BLOB の AzureBlobDatastore を監視し、変更が検出されたときにパイプラインを送信します。
定期的なスケジュールに基づいてパイプラインを送信するスケジュールを作成するには、スケジュールの作成時に ScheduleRecurrence を使用します。
ScheduleRecurrence は、次のようにパイプラインのスケジュールを作成するときに使用されます。
from azureml.pipeline.core import Schedule, ScheduleRecurrence
recurrence = ScheduleRecurrence(frequency="Hour", interval=12)
schedule = Schedule.create(workspace, name="TestSchedule", pipeline_id="pipeline_id",
experiment_name="helloworld", recurrence=recurrence)
このスケジュールは、指定された PublishedPipeline を 12 時間ごとに送信します。 送信されたパイプラインは、"helloworld" という名前の実験の下に作成されます。
Blob Storage の場所への変更時に PipelineRuns をトリガーするスケジュールを作成するには、スケジュールの作成時にデータストアと関連するデータ情報を指定します。
from azureml.pipeline.core import Schedule
from azureml.core.datastore import Datastore
datastore = Datastore(workspace=ws, name="workspaceblobstore")
schedule = Schedule.create(workspace, name="TestSchedule", pipeline_id="pipeline_id"
experiment_name="helloworld", datastore=datastore,
polling_interval=5, path_on_datastore="file/path")
polling_intervalパラメーターと path_on_datastore パラメーターは省略可能であることに注意してください。 polling_intervalでは、データストアへの変更をポーリングする頻度を指定します。既定では 5 分です。 path_on_datastoreを使用して、データストアで変更を監視するフォルダーを指定できます。 None の場合、データストア コンテナーが監視されます。 注: path_on_datastoreまたはデータストア コンテナーのサブフォルダーでの BLOB の追加/変更 (path_on_datastoreが指定されていない場合) は検出されません。
さらに、パイプラインが DataPathPipelineParameter を使用してステップ入力を記述するように構築された場合は、データストアによってトリガーされるスケジュールを作成するときに data_path_parameter_name パラメーターを使用して、PipelineRun がスケジュールによって送信されたときに変更されたファイルに入力を設定します。
次の例では、スケジュールによって PipelineRun がトリガーされると、"input_data" PipelineParameter の値が、変更/追加されたファイルとして設定されます。
from azureml.pipeline.core import Schedule
from azureml.core.datastore import Datastore
datastore = Datastore(workspace=ws, name="workspaceblobstore")
schedule = Schedule.create(workspace, name="TestSchedule", pipeline_id="pipeline_id",
experiment_name="helloworld", datastore=datastore,
data_path_parameter_name="input_data")
スケジュールの詳細については、「 https://aka.ms/pl-schedule」を参照してください。
メソッド
create |
パイプラインのスケジュールを作成します。 時間ベースのスケジュールの繰り返しを指定するか、データストアを指定するか、(省略可能) polling_interval、および (省略可能) data_path_parameter_nameを指定して、データストアの場所の変更/追加を監視するスケジュールを作成します。 |
create_for_pipeline_endpoint |
パイプライン エンドポイントのスケジュールを作成します。 時間ベースのスケジュールの繰り返しを指定するか、データストアを指定するか、(省略可能) polling_interval、および (省略可能) data_path_parameter_nameを指定して、データストアの場所の変更/追加を監視するスケジュールを作成します。 |
disable |
スケジュールを [無効] に設定し、実行できません。 |
enable |
スケジュールを "アクティブ" に設定し、実行できるようにします。 |
get |
指定された ID を使用してスケジュールを取得します。 |
get_all |
現在のワークスペースのすべてのスケジュールを取得します。 非推奨: このメソッドは、 list メソッドを優先して非推奨とされています。 |
get_last_pipeline_run |
スケジュールによって送信された最後のパイプライン実行をフェッチします。 実行が送信されていない場合は None を返します。 |
get_pipeline_runs |
スケジュールから生成されたパイプライン実行をフェッチします。 |
get_schedules_for_pipeline_endpoint_id |
指定されたパイプライン エンドポイント ID のすべてのスケジュールを取得します。 |
get_schedules_for_pipeline_id |
指定されたパイプライン ID のすべてのスケジュールを取得します。 |
list |
現在のワークスペースのすべてのスケジュールを取得します。 |
load_yaml |
スケジュール パラメーターを取得するには、YAML ファイルを読み込んで読み取ります。 YAML ファイルは、スケジュールを作成するために Schedule パラメーターを渡すもう 1 つの方法です。 |
update |
スケジュールを更新します。 |
create
パイプラインのスケジュールを作成します。
時間ベースのスケジュールの繰り返しを指定するか、データストアを指定するか、(省略可能) polling_interval、および (省略可能) data_path_parameter_nameを指定して、データストアの場所の変更/追加を監視するスケジュールを作成します。
static create(workspace, name, pipeline_id, experiment_name, recurrence=None, description=None, pipeline_parameters=None, wait_for_provisioning=False, wait_timeout=3600, datastore=None, polling_interval=5, data_path_parameter_name=None, continue_on_step_failure=None, path_on_datastore=None, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
スケジュールが属するワークスペース オブジェクト。 |
name
必須
|
スケジュールの名前。 |
pipeline_id
必須
|
スケジュールが送信するパイプラインの ID。 |
experiment_name
必須
|
スケジュールが実行を送信する実験の名前。 |
recurrence
|
パイプラインのスケジュールの繰り返し。 規定値: None
|
description
|
スケジュールの説明。 規定値: None
|
pipeline_parameters
|
新しい値 {param name, param value} を割り当てるパラメーターのディクショナリ 規定値: None
|
wait_for_provisioning
|
スケジュールのプロビジョニングが完了するまで待機するかどうかを指定します。 規定値: False
|
wait_timeout
|
タイムアウトになるまで待機する秒数。 規定値: 3600
|
datastore
|
変更または追加された BLOB を監視するデータストア。 注: VNET データストアはサポートされていません。 繰り返しでは使用できません。 規定値: None
|
polling_interval
|
変更または追加された BLOB のポーリング間隔 (分)。 既定値は 5 分です。 DataStore スケジュールでのみサポートされます。 規定値: 5
|
data_path_parameter_name
|
変更された BLOB パスで設定するデータ パス パイプライン パラメーターの名前。 DataStore スケジュールでのみサポートされます。 規定値: None
|
continue_on_step_failure
|
送信された PipelineRun 内の 1 つのステップが失敗した場合に、他のステップの実行を続行するかどうかを指定します。 指定すると、パイプラインのcontinue_on_step_failure設定がオーバーライドされます。 規定値: None
|
path_on_datastore
|
省略可。 変更または追加された BLOB を監視するデータストア上のパス。 注: path_on_datastoreはデータストアのコンテナーの下に存在するため、スケジュールによって監視される実際のパスはコンテナー/path_on_datastoreになります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastoreのサブフォルダーで行われた追加/変更は監視されません。 DataStore スケジュールでのみサポートされます。 規定値: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
作成されたスケジュール。 |
create_for_pipeline_endpoint
パイプライン エンドポイントのスケジュールを作成します。
時間ベースのスケジュールの繰り返しを指定するか、データストアを指定するか、(省略可能) polling_interval、および (省略可能) data_path_parameter_nameを指定して、データストアの場所の変更/追加を監視するスケジュールを作成します。
static create_for_pipeline_endpoint(workspace, name, pipeline_endpoint_id, experiment_name, recurrence=None, description=None, pipeline_parameters=None, wait_for_provisioning=False, wait_timeout=3600, datastore=None, polling_interval=5, data_path_parameter_name=None, continue_on_step_failure=None, path_on_datastore=None, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
スケジュールが属するワークスペース オブジェクト。 |
name
必須
|
スケジュールの名前。 |
pipeline_endpoint_id
必須
|
スケジュールが送信するパイプライン エンドポイントの ID。 |
experiment_name
必須
|
スケジュールが実行を送信する実験の名前。 |
recurrence
|
パイプラインのスケジュールの繰り返し。 規定値: None
|
description
|
スケジュールの説明。 規定値: None
|
pipeline_parameters
|
新しい値 {param name, param value} を割り当てるパラメーターのディクショナリ 規定値: None
|
wait_for_provisioning
|
スケジュールのプロビジョニングが完了するまで待機するかどうかを指定します。 規定値: False
|
wait_timeout
|
タイムアウトになるまで待機する秒数。 規定値: 3600
|
datastore
|
変更または追加された BLOB を監視するデータストア。 注: VNET データストアはサポートされていません。 繰り返しでは使用できません。 規定値: None
|
polling_interval
|
変更または追加された BLOB のポーリング間隔 (分)。 既定値は 5 分です。 DataStore スケジュールでのみサポートされます。 規定値: 5
|
data_path_parameter_name
|
変更された BLOB パスで設定するデータ パス パイプライン パラメーターの名前。 DataStore スケジュールでのみサポートされます。 規定値: None
|
continue_on_step_failure
|
送信された PipelineRun 内の 1 つのステップが失敗した場合に、他のステップの実行を続行するかどうかを指定します。 指定すると、パイプラインのcontinue_on_step_failure設定がオーバーライドされます。 規定値: None
|
path_on_datastore
|
省略可。 変更または追加された BLOB を監視するデータストア上のパス。 注: path_on_datastoreはデータストアのコンテナーの下に存在するため、スケジュールによって監視される実際のパスはコンテナー/path_on_datastoreになります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastoreのサブフォルダーで行われた追加/変更は監視されません。 DataStore スケジュールでのみサポートされます。 規定値: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
作成されたスケジュール。 |
disable
enable
get
指定された ID を使用してスケジュールを取得します。
static get(workspace, id, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
スケジュールが作成されたワークスペース。 |
id
必須
|
スケジュールの ID。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
schedule オブジェクト |
get_all
現在のワークスペースのすべてのスケジュールを取得します。
非推奨: このメソッドは、 list メソッドを優先して非推奨とされています。
static get_all(workspace, active_only=True, pipeline_id=None, pipeline_endpoint_id=None, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
ワークスペース。 |
active_only
|
true の場合は、現在アクティブなスケジュールのみが返されます。 パイプライン ID が指定されていない場合にのみ適用されます。 規定値: True
|
pipeline_id
|
指定した場合は、指定された ID を持つパイプラインのスケジュールのみを返します。 規定値: None
|
pipeline_endpoint_id
|
指定した場合は、指定された ID を持つパイプライン エンドポイントのスケジュールのみを返します。 規定値: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
Scheduleの一覧。 |
get_last_pipeline_run
スケジュールによって送信された最後のパイプライン実行をフェッチします。 実行が送信されていない場合は None を返します。
get_last_pipeline_run()
戻り値
型 | 説明 |
---|---|
最後のパイプライン実行。 |
get_pipeline_runs
get_schedules_for_pipeline_endpoint_id
指定されたパイプライン エンドポイント ID のすべてのスケジュールを取得します。
static get_schedules_for_pipeline_endpoint_id(workspace, pipeline_endpoint_id, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
ワークスペース。 |
pipeline_endpoint_id
必須
|
パイプライン エンドポイント ID。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
Scheduleの一覧。 |
get_schedules_for_pipeline_id
指定されたパイプライン ID のすべてのスケジュールを取得します。
static get_schedules_for_pipeline_id(workspace, pipeline_id, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
ワークスペース。 |
pipeline_id
必須
|
パイプライン ID。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
Scheduleの一覧。 |
list
現在のワークスペースのすべてのスケジュールを取得します。
static list(workspace, active_only=True, pipeline_id=None, pipeline_endpoint_id=None, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
ワークスペース。 |
active_only
|
true の場合は、現在アクティブなスケジュールのみが返されます。 パイプライン ID が指定されていない場合にのみ適用されます。 規定値: True
|
pipeline_id
|
指定した場合は、指定された ID を持つパイプラインのスケジュールのみを返します。 規定値: None
|
pipeline_endpoint_id
|
指定した場合は、指定された ID を持つパイプライン エンドポイントのスケジュールのみを返します。 規定値: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
Scheduleの一覧。 |
load_yaml
スケジュール パラメーターを取得するには、YAML ファイルを読み込んで読み取ります。
YAML ファイルは、スケジュールを作成するために Schedule パラメーターを渡すもう 1 つの方法です。
static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
ワークスペース。 |
filename
必須
|
場所を含む YAML ファイル名。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
Scheduleパラメーターと値のディクショナリ。 |
注釈
スケジュールでは、2 種類の YAML がサポートされています。 最初の読み取りと、パイプラインをトリガーするスケジュール作成の繰り返し情報を読み込みます。 2 つ目は、パイプラインをトリガーするスケジュール作成のデータストア情報を読み取って読み込みます。
繰り返しにパイプラインを送信するスケジュールを作成する例を次に示します。
from azureml.pipeline.core import Schedule
schedule_info = Schedule.load_yaml(workspace=workspace,
filename='./yaml/test_schedule_with_recurrence.yaml')
schedule = Schedule.create(workspace, name="TestSchedule", pipeline_id="pipeline_id",
experiment_name="helloworld", recurrence=schedule_info.get("recurrence"),
description=schedule_info.get("description"))
サンプル YAML ファイル test_schedule_with_recurrence.yaml:
Schedule:
description: "Test create with recurrence"
recurrence:
frequency: Week # Can be "Minute", "Hour", "Day", "Week", or "Month".
interval: 1 # how often fires
start_time: 2019-06-07T10:50:00
time_zone: UTC
hours:
- 1
minutes:
- 0
time_of_day: null
week_days:
- Friday
pipeline_parameters: {'a':1}
wait_for_provisioning: True
wait_timeout: 3600
datastore_name: ~
polling_interval: ~
data_path_parameter_name: ~
continue_on_step_failure: None
path_on_datastore: ~
次のように、データストアにパイプラインを送信するスケジュールを作成する例:
from azureml.pipeline.core import Schedule
schedule_info = Schedule.load_yaml(workspace=workspace,
filename='./yaml/test_schedule_with_datastore.yaml')
schedule = Schedule.create(workspace, name="TestSchedule", pipeline_id="pipeline_id",
experiment_name="helloworld",datastore=schedule_info.get("datastore_name"),
polling_interval=schedule_info.get("polling_interval"),
data_path_parameter_name=schedule_info.get("data_path_parameter_name"),
continue_on_step_failure=schedule_info.get("continue_on_step_failure"),
path_on_datastore=schedule_info.get("path_on_datastore"))
update
スケジュールを更新します。
update(name=None, description=None, recurrence=None, pipeline_parameters=None, status=None, wait_for_provisioning=False, wait_timeout=3600, datastore=None, polling_interval=None, data_path_parameter_name=None, continue_on_step_failure=None, path_on_datastore=None)
パラメーター
名前 | 説明 |
---|---|
name
|
スケジュールの新しい名前。 規定値: None
|
recurrence
|
パイプラインの新しいスケジュールの繰り返し。 規定値: None
|
description
|
スケジュールの新しい説明。 規定値: None
|
pipeline_parameters
|
新しい値 {param name, param value} を割り当てるパラメーターのディクショナリ。 規定値: None
|
status
|
スケジュールの新しい状態: 'Active' または 'Disabled'。 規定値: None
|
wait_for_provisioning
|
スケジュールのプロビジョニングが完了するまで待機するかどうかを指定します。 規定値: False
|
wait_timeout
|
タイムアウトになるまで待機する秒数。 規定値: 3600
|
datastore
|
変更または追加された BLOB を監視するデータストア。 注: VNET データストアはサポートされていません。 規定値: None
|
polling_interval
|
変更または追加された BLOB のポーリング間隔 (分)。 既定値は 5 分です。 規定値: None
|
data_path_parameter_name
|
変更された BLOB パスで設定するデータ パス パイプライン パラメーターの名前。 規定値: None
|
continue_on_step_failure
|
送信された PipelineRun 内の 1 つのステップが失敗した場合に、他のステップの実行を続行するかどうかを指定します。 指定すると、パイプラインのcontinue_on_step_failure設定がオーバーライドされます。 規定値: None
|
path_on_datastore
|
省略可。 変更または追加された BLOB を監視するデータストア上のパス。 注: path_on_datastoreはデータストアのコンテナーの下に存在するため、スケジュールによって監視される実際のパスはコンテナー/path_on_datastoreになります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastoreのサブフォルダーで行われた追加/変更は監視されません。 DataStore スケジュールでのみサポートされます。 規定値: None
|