研究了源码中的语句:
因此,当您更新管道时,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"]}]
这是你的活动之间的依赖条件。
我的输出:
如有任何疑问,请告诉我。
好吧,请看我的示例代码:
前提是我已经有了以上两个等待活动
adftest = adf_client.pipelines.get(rg_name,df_name,p_name)
print(adftest)
for activity in adftest.activities :
print(activity.name)
print(activity.type)
然后输出是:
{'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属性中的对象。此外,你可以看到他们的类型:'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类型包含哪些属性,比如name,type。(我用Pycharm测试代码,IDE可以直接检测源码)
那如果你想多加一个activity,比如多一个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 的新 WaitActivity,然后将其附加到 activities 数组中。然后像往常一样更新管道,你会发现新的活动: