如何获得自动触发的 Azure 数据工厂管道 运行 状态
How to get automatically triggered Azure Data Factory pipeline run status
我正在使用以下 Python 代码(主要来自 Whosebug)来成功获取特定的 ADF 管道 运行 状态。这是返回手动触发的 运行s。这是来自下图中的选项卡 1。
但是我想在选项卡 2 中获取 运行s。下面的代码无法做到这一点。
我需要添加什么才能从 tab2 获得“自动触发”运行s?我在管道上有一个名为“DailyTrigger”的触发器。
谢谢!
def get_triggered_pipeline_run_status_history_df(adf_client,resource_group_name,days_ago,adf_pipeline_name):
filter_params = RunFilterParameters(last_updated_after=datetime.now(timezone.utc) - timedelta(days_ago),last_updated_before=datetime.now(timezone.utc) + timedelta(days_ago))
for adf_name in get_subscription_data_factory_list(adf_client,resource_group_name):
adf_run_history = adf_client.pipeline_runs.query_by_factory(resource_group_name,adf_name,filter_params)
if len(adf_run_history.value) > 0:
latest_pipeline_runids_df = __get_latest_pipeline_runid__(adf_run_history.value,adf_pipeline_name)
for row in latest_pipeline_runids_df.itertuples():
pipeline_run = adf_client.pipeline_runs.get(resource_group_name, adf_name, row.latest_runid)
if str(pipeline_run.pipeline_name).lower() == str(adf_pipeline_name).lower():
query_response = adf_client.activity_runs.query_by_pipeline_run(resource_group_name, adf_name, row.latest_runid,filter_params)
df = __enumerate_print_run_activities__(query_response.value,adf_name,pipeline_run.pipeline_name,pipeline_run.run_end,pipeline_run.status)
return df
据我了解,您想要获取触发器 运行 历史记录。如果有,你可以用剩下的APITrigger Runs - Query By Factory
来实现
例如
adf_client = DataFactoryManagementClient(credentials, subscription_id)
filter_params = RunFilterParameters(last_updated_after=datetime.now(timezone.utc) - timedelta(7),last_updated_before=datetime.now(timezone.utc) + timedelta(7),filters=[
{
"operand": "TriggerName",
"operator": "In",
"values": [
"<your trigger name>"
]
}
])
res = adf_client.trigger_runs.query_by_factory(resource_group_name,adf_name,filter_params)
// process the result according to your need
我正在使用以下 Python 代码(主要来自 Whosebug)来成功获取特定的 ADF 管道 运行 状态。这是返回手动触发的 运行s。这是来自下图中的选项卡 1。
但是我想在选项卡 2 中获取 运行s。下面的代码无法做到这一点。
我需要添加什么才能从 tab2 获得“自动触发”运行s?我在管道上有一个名为“DailyTrigger”的触发器。
谢谢!
def get_triggered_pipeline_run_status_history_df(adf_client,resource_group_name,days_ago,adf_pipeline_name):
filter_params = RunFilterParameters(last_updated_after=datetime.now(timezone.utc) - timedelta(days_ago),last_updated_before=datetime.now(timezone.utc) + timedelta(days_ago))
for adf_name in get_subscription_data_factory_list(adf_client,resource_group_name):
adf_run_history = adf_client.pipeline_runs.query_by_factory(resource_group_name,adf_name,filter_params)
if len(adf_run_history.value) > 0:
latest_pipeline_runids_df = __get_latest_pipeline_runid__(adf_run_history.value,adf_pipeline_name)
for row in latest_pipeline_runids_df.itertuples():
pipeline_run = adf_client.pipeline_runs.get(resource_group_name, adf_name, row.latest_runid)
if str(pipeline_run.pipeline_name).lower() == str(adf_pipeline_name).lower():
query_response = adf_client.activity_runs.query_by_pipeline_run(resource_group_name, adf_name, row.latest_runid,filter_params)
df = __enumerate_print_run_activities__(query_response.value,adf_name,pipeline_run.pipeline_name,pipeline_run.run_end,pipeline_run.status)
return df
据我了解,您想要获取触发器 运行 历史记录。如果有,你可以用剩下的APITrigger Runs - Query By Factory
来实现
例如
adf_client = DataFactoryManagementClient(credentials, subscription_id)
filter_params = RunFilterParameters(last_updated_after=datetime.now(timezone.utc) - timedelta(7),last_updated_before=datetime.now(timezone.utc) + timedelta(7),filters=[
{
"operand": "TriggerName",
"operator": "In",
"values": [
"<your trigger name>"
]
}
])
res = adf_client.trigger_runs.query_by_factory(resource_group_name,adf_name,filter_params)
// process the result according to your need