Schedule クラス
パイプラインを送信するスケジュールを定義します。
パイプラインが発行されると、スケジュールを使用して、指定した間隔で、または BLOB ストレージの場所に対する変更が検出されたときにパイプラインを送信できます。
スケジュールを初期化します。
- 継承
-
builtins.objectSchedule
コンストラクター
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
必須
|
スケジュールの状態 ('Active' または 'Disabled')。 |
recurrence
必須
|
パイプラインのスケジュール繰り返し。 |
datastore_name
必須
|
変更または追加された 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 はデータストアのコンテナー配下になるため、スケジュールによって監視される実際のパスは container/path_on_datastore になります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastore のサブフォルダーに加えられた追加や変更は監視されません。 データストアのスケジュールでのみサポートされます。 |
_schedule_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaScheduleProvider>
スケジュール プロバイダー。 規定値: None
|
workspace
必須
|
このスケジュールの配属先になるワークスペース オブジェクト。 |
id
必須
|
スケジュールの ID。 |
name
必須
|
スケジュールの名前。 |
description
必須
|
スケジュールの説明。 |
pipeline_id
必須
|
スケジュールが送信するパイプラインの ID。 |
status
必須
|
スケジュールの状態 ('Active' または 'Disabled')。 |
recurrence
必須
|
パイプラインのスケジュール繰り返し。 |
datastore_name
必須
|
変更または追加された 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 はデータストアのコンテナー配下になるため、スケジュールによって監視される実際のパスは container/path_on_datastore になります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastore のサブフォルダーに加えられた追加や変更は監視されません。 データストアのスケジュールでのみサポートされます。 |
_schedule_provider
必須
|
<xref:azureml.pipeline.core._aeva_provider._AevaScheduleProvider>
スケジュール プロバイダー。 |
pipeline_endpoint_id
|
スケジュールで送信するパイプライン エンドポイントの ID。 規定値: None
|
注釈
2 種類のスケジュールがサポートされています。 1 つは、時間の繰り返しを使用して、指定されたスケジュールでパイプラインを送信するものです。 もう 1 つは、AzureBlobDatastore での BLOB の追加または変更を監視し、変更が検出されたらパイプラインを送信するものです。
定期的なスケジュールでパイプラインを送信するスケジュールを作成するには、スケジュールを作成するときに 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 ストレージの場所が変更されると 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 またはデータストア コンテナー (path_on_datastore を指定しない場合) のサブフォルダーで BLOB が追加または変更されても、検出されません。
さらに、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 |
スケジュールを 'Disabled' および実行不可能に設定します。 |
enable |
スケジュールを 'Active' および実行可能に設定します。 |
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 分です。 データストアのスケジュールでのみサポートされます。 規定値: 5
|
data_path_parameter_name
|
変更された BLOB パスで設定するデータ パス パイプライン パラメーターの名前。 データストアのスケジュールでのみサポートされます。 規定値: None
|
continue_on_step_failure
|
送信された PipelineRun 内の 1 つのステップが失敗した場合に、他のステップの実行を続行するかどうかを指定します。 指定した場合、パイプラインの continue_on_step_failure 設定をオーバーライドします。 規定値: None
|
path_on_datastore
|
省略可能。 変更または追加された BLOB を監視するデータストア上のパス。 注: path_on_datastore はデータストアのコンテナー配下になるため、スケジュールによって監視される実際のパスは container/path_on_datastore になります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_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 分です。 データストアのスケジュールでのみサポートされます。 規定値: 5
|
data_path_parameter_name
|
変更された BLOB パスで設定するデータ パス パイプライン パラメーターの名前。 データストアのスケジュールでのみサポートされます。 規定値: None
|
continue_on_step_failure
|
送信された PipelineRun 内の 1 つのステップが失敗した場合に、他のステップの実行を続行するかどうかを指定します。 指定した場合、パイプラインの continue_on_step_failure 設定をオーバーライドします。 規定値: None
|
path_on_datastore
|
省略可能。 変更または追加された BLOB を監視するデータストア上のパス。 注: path_on_datastore はデータストアのコンテナー配下になるため、スケジュールによって監視される実際のパスは container/path_on_datastore になります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastore のサブフォルダーに加えられた追加や変更は監視されません。 データストアのスケジュールでのみサポートされます。 規定値: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント。 規定値: None
|
戻り値
型 | 説明 |
---|---|
作成されたスケジュール。 |
disable
スケジュールを 'Disabled' および実行不可能に設定します。
disable(wait_for_provisioning=False, wait_timeout=3600)
パラメーター
名前 | 説明 |
---|---|
wait_for_provisioning
|
スケジュールのプロビジョニングが完了するまで待機するかどうかを指定します。 規定値: False
|
wait_timeout
|
タイムアウトするまでに待機する時間 (秒)。 規定値: 3600
|
enable
スケジュールを 'Active' および実行可能に設定します。
enable(wait_for_provisioning=False, wait_timeout=3600)
パラメーター
名前 | 説明 |
---|---|
wait_for_provisioning
|
スケジュールのプロビジョニングが完了するまで待機するかどうかを指定します。 規定値: False
|
wait_timeout
|
タイムアウトするまでに待機する時間 (秒)。 規定値: 3600
|
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 がサポートされています。 1 つは、スケジュール作成の繰り返し情報の読み取りと読み込みによって、パイプラインをトリガーするものです。 もう 1 つは、スケジュール作成のデータストア情報の読み取りと読み込みによって、パイプラインをトリガーするものです。
繰り返しでパイプラインを送信するスケジュールを作成する例は、次のようになります。
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 はデータストアのコンテナー配下になるため、スケジュールによって監視される実際のパスは container/path_on_datastore になります。 存在しない場合は、データストア コンテナーが監視されます。 path_on_datastore のサブフォルダーに加えられた追加や変更は監視されません。 データストアのスケジュールでのみサポートされます。 規定値: None
|