繁体   English   中英

Python Azure 数据工厂更新管道

[英]Python Azure Data Factory Update Pipeline

我想使用 Python 向 Azure 数据工厂中的管道添加活动。 使用以下代码,我将替换实际活动,但不添加新活动:

p_name = 'test'
act_name = 'Wait4'

Wait_activity = WaitActivity(name=act_name,wait_time_in_seconds=5)


p_obj = PipelineResource(activities=[Wait_activity])
p = adf_client.pipelines.create_or_update(rg_name, df_name, p_name, p_obj)

这是运行代码之前的管道: 在此处输入图像描述

运行代码后:

在此处输入图像描述

预期的:

在此处输入图像描述

研究了源代码中的语句:

在此处输入图像描述

因此,当您更新管道时, activities属性应该是管道中的活动列表,而不是单个活动。

例如:

wait_activity = WaitActivity(name="waittest", type="Wait", wait_time_in_seconds=100, )
ActivityDependency = [{"activity":"waittest","dependencyConditions":["Succeeded"]}]
wait_activity1 = WaitActivity(name="waittest1", type="Wait", wait_time_in_seconds=100,depends_on=ActivityDependency)


p_name = 'testforadf'
p_obj = PipelineResource(
        activities=[wait_activity, wait_activity1])
p = adf_client.pipelines.create_or_update(rg_name, df_name, p_name, p_obj)

请注意两行:

activities=[wait_activity, wait_activity1])

此属性应包含您的所有活动。

ActivityDependency = [{"activity":"waittest","dependencyConditions":["Succeeded"]}]

这是您的活动之间的依赖条件。

我的 output:

在此处输入图像描述

有任何问题,请告诉我。


好吧,请看我的示例代码:

前提是我已经有了以上两个等待活动

adftest = adf_client.pipelines.get(rg_name,df_name,p_name)
print(adftest)
for activity in adftest.activities :
    print(activity.name)
    print(activity.type)

那么 output 是:

{'additional_properties': None, 'id': '/subscriptions/b83c1ed3-c5b6-44fb-b5ba-2b83a074c23f/resourceGroups/v-jugong-ChinaCXPTeam/providers/Microsoft.DataFactory/factories/jaygongadf/pipelines/testforadf', 'name': 'testforadf', 'type': 'Microsoft.DataFactory/factories/pipelines', 'etag': 'ed006cf3-0000-0800-0000-5da970600000', 'description': None, 'activities': [<azure.mgmt.datafactory.models.wait_activity_py3.WaitActivity object at 0x000001C05FEDE0F0>, <azure.mgmt.datafactory.models.wait_activity_py3.WaitActivity object at 0x000001C05FED6DA0>], 'parameters': None, 'variables': None, 'concurrency': None, 'annotations': None, 'folder': None}
waittest
Wait
waittest1
Wait

然后你可以在上面的activities属性中看到对象。 Besides,you could see their types: 'activities': [<azure.mgmt.datafactory.models.wait_activity_py3.WaitActivity object at 0x000001C05FEDE0F0>, <azure.mgmt.datafactory.models.wait_activity_py3.WaitActivity object at 0x000001C05FED6DA0>]

它们是 WaitActivity 类型,因此您可以查看它们的循环活动以获取其中的每个项目:

for activity in adftest.activities :
        print(activity.name)
        print(activity.type)

您可以查看 WaitActivity 类型包含哪些属性,例如nametype源代码语句。(对于我来说,我使用 Pycharm 测试代码,IDE 可以直接检测源代码)

在此处输入图像描述

然后,如果您想再添加一个活动,例如,再添加一个 WaitActivity:

wait_activity2 = WaitActivity(name="waittest2", type="Wait", wait_time_in_seconds=100, )
adftest.activities.append(wait_activity2)
p = adf_client.pipelines.create_or_update(rg_name, df_name, p_name, adftest)

请参阅上面的代码,我创建了一个名为wait_activity2 ,然后将 append 放入activities数组中。 然后像往常一样更新管道,你会发现新的活动:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM