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)
參數
名稱 | Description |
---|---|
workspace
必要
|
此排程所屬的工作區物件。 |
id
必要
|
排程的識別碼。 |
name
必要
|
排程的名稱。 |
description
必要
|
排程的描述。 |
pipeline_id
必要
|
排程將提交的管線識別碼。 |
status
必要
|
排程的狀態,可以是 'Active' 或 'Disabled'。 |
recurrence
必要
|
管線的排程週期。 |
datastore_name
必要
|
要監視已修改/新增 Blob 的資料存放區名稱。 注意:不支援 1) VNET 資料存放區。 2) 資料存放區的驗證類型應設定為「帳戶金鑰」。 |
polling_interval
必要
|
已修改/已新增的 Blob 兩次輪詢之間間隔的時間 (以分鐘為單位)。 |
data_path_parameter_name
必要
|
要使用已變更的 Blob 路徑來設定的資料路徑管線參數名稱。 |
continue_on_step_failure
必要
|
在步驟失敗時,是否要繼續執行所提交 Pipelinerun 中的其他步驟。 如果提供,這會覆寫管線的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
必要
|
排程的識別碼。 |
name
必要
|
排程的名稱。 |
description
必要
|
排程的描述。 |
pipeline_id
必要
|
排程將提交的管線識別碼。 |
status
必要
|
排程的狀態,可以是 'Active' 或 'Disabled'。 |
recurrence
必要
|
管線的排程週期。 |
datastore_name
必要
|
要監視已修改/新增 Blob 的資料存放區名稱。 注意:不支援 VNET 資料存放區。 |
polling_interval
必要
|
已修改/已新增的 Blob 兩次輪詢之間間隔的時間 (以分鐘為單位)。 |
data_path_parameter_name
必要
|
要使用已變更的 Blob 路徑來設定的資料路徑管線參數名稱。 |
continue_on_step_failure
必要
|
在步驟失敗時,是否要繼續執行所提交 Pipelinerun 中的其他步驟。 如果提供,這會覆寫管線的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
|
排程將提交的管線端點識別碼。 預設值: None
|
備註
支援兩種類型的排程。 第一次會使用時間週期,根據指定的排程提交管線。 第二個 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)
此排程會每隔 12 小時提交提供的 PublishedPipeline 。 提交的管線將會建立在名為 「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 參數,以在 Schedule 提交 PipelineRun 時,將輸入設定為已變更的檔案。
在下列範例中,當 Schedule 觸發 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 |
取得具有指定識別碼的排程。 |
get_all |
取得目前工作區中的所有排程。 已被取代:這個方法已被取代,而不是 list 方法。 |
get_last_pipeline_run |
擷取排程所提交的最後一個管線執行。 如果未提交任何執行,則會傳回 None。 |
get_pipeline_runs |
擷取從排程產生的管線執行。 |
get_schedules_for_pipeline_endpoint_id |
取得指定管線端點識別碼的所有排程。 |
get_schedules_for_pipeline_id |
取得指定管線識別碼的所有排程。 |
list |
取得目前工作區中的所有排程。 |
load_yaml |
載入並讀取 YAML 檔案以取得排程參數。 YAML 檔案是傳遞排程參數以建立排程的一種方式。 |
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
此排程所屬的工作區物件。 |
name
必要
|
排程的名稱。 |
pipeline_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 中的其他步驟。 如果提供,這會覆寫管線的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
|
傳回
類型 | Description |
---|---|
建立的排程。 |
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
此 Schedule 所屬的工作區物件。 |
name
必要
|
Schedule 的名稱。 |
pipeline_endpoint_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 中的其他步驟。 如果提供,這會覆寫管線的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
|
傳回
類型 | Description |
---|---|
建立的排程。 |
disable
將排程設定為 [已停用],且無法執行。
disable(wait_for_provisioning=False, wait_timeout=3600)
參數
名稱 | Description |
---|---|
wait_for_provisioning
|
是否要等候排程佈建完成。 預設值: False
|
wait_timeout
|
逾時前等待的秒數。 預設值: 3600
|
enable
將排程設定為 [作用中],並可供執行。
enable(wait_for_provisioning=False, wait_timeout=3600)
參數
名稱 | Description |
---|---|
wait_for_provisioning
|
是否要等候排程佈建完成。 預設值: False
|
wait_timeout
|
逾時前等待的秒數。 預設值: 3600
|
get
取得具有指定識別碼的排程。
static get(workspace, id, _workflow_provider=None, _service_endpoint=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
排程建立所在的工作區。 |
id
必要
|
排程的識別碼。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
工作流程提供者。 預設值: None
|
_service_endpoint
|
服務端點。 預設值: None
|
傳回
類型 | Description |
---|---|
Schedule 物件 |
get_all
取得目前工作區中的所有排程。
已被取代:這個方法已被取代,而不是 list 方法。
static get_all(workspace, active_only=True, pipeline_id=None, pipeline_endpoint_id=None, _workflow_provider=None, _service_endpoint=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
工作區。 |
active_only
|
如果為 true,則只會傳回目前作用中的排程。 只有在未提供管線識別碼時才適用。 預設值: True
|
pipeline_id
|
如果提供,則只會傳回具有指定識別碼之管線的排程。 預設值: None
|
pipeline_endpoint_id
|
如果提供,則只會傳回具有指定識別碼之管線端點的排程。 預設值: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
工作流程提供者。 預設值: None
|
_service_endpoint
|
服務端點。 預設值: None
|
傳回
類型 | Description |
---|---|
的清單 Schedule 。 |
get_last_pipeline_run
擷取排程所提交的最後一個管線執行。 如果未提交任何執行,則會傳回 None。
get_last_pipeline_run()
傳回
類型 | Description |
---|---|
最後一個管線執行。 |
get_pipeline_runs
get_schedules_for_pipeline_endpoint_id
取得指定管線端點識別碼的所有排程。
static get_schedules_for_pipeline_endpoint_id(workspace, pipeline_endpoint_id, _workflow_provider=None, _service_endpoint=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
工作區。 |
pipeline_endpoint_id
必要
|
管線端點識別碼。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
工作流程提供者。 預設值: None
|
_service_endpoint
|
服務端點。 預設值: None
|
傳回
類型 | Description |
---|---|
的清單 Schedule 。 |
get_schedules_for_pipeline_id
取得指定管線識別碼的所有排程。
static get_schedules_for_pipeline_id(workspace, pipeline_id, _workflow_provider=None, _service_endpoint=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
工作區。 |
pipeline_id
必要
|
管線識別碼。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
工作流程提供者。 預設值: None
|
_service_endpoint
|
服務端點。 預設值: None
|
傳回
類型 | Description |
---|---|
的清單 Schedule 。 |
list
取得目前工作區中的所有排程。
static list(workspace, active_only=True, pipeline_id=None, pipeline_endpoint_id=None, _workflow_provider=None, _service_endpoint=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
工作區。 |
active_only
|
如果為 true,則只會傳回目前作用中的排程。 只有在未提供管線識別碼時才適用。 預設值: True
|
pipeline_id
|
如果提供,則只會傳回具有指定識別碼之管線的排程。 預設值: None
|
pipeline_endpoint_id
|
如果提供,則只會傳回具有指定識別碼之管線端點的排程。 預設值: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
工作流程提供者。 預設值: None
|
_service_endpoint
|
服務端點。 預設值: None
|
傳回
類型 | Description |
---|---|
的清單 Schedule 。 |
load_yaml
載入並讀取 YAML 檔案以取得排程參數。
YAML 檔案是傳遞排程參數以建立排程的一種方式。
static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
工作區。 |
filename
必要
|
具有位置的 YAML 檔案名。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
工作流程提供者。 預設值: None
|
_service_endpoint
|
服務端點。 預設值: None
|
傳回
類型 | Description |
---|---|
參數和值的字典 Schedule 。 |
備註
排程支援兩種類型的 YAML。 第一個讀取並載入週期資訊,以便排程建立以觸發管線。 第二個讀取並載入資料存放區資訊,以便排程建立以觸發管線。
建立排程的範例,以在週期上提交管線,如下所示:
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)
參數
名稱 | Description |
---|---|
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 中的其他步驟。 如果提供,這會覆寫管線的continue_on_step_failure設定。 預設值: None
|
path_on_datastore
|
選擇性。 要監視已修改/已新增 Blob 的資料存放區上的路徑。 注意:path_on_datastore會位於資料存放區的容器底下,因此排程將監視的實際路徑會是容器/path_on_datastore。 如果沒有,則會監視資料存放區容器。 不會監視path_on_datastore子資料夾中所做的新增/修改。 僅支援 DataStore 排程。 預設值: None
|