Azure data factory 迭代ARM模板的多个属性
我正在为数据工厂创建ARM模板。在管道中,每个数据集有两个活动:一个复制,一个删除。我有一个定义的数据集数组Azure data factory 迭代ARM模板的多个属性,azure-data-factory,azure-resource-manager,azure-data-factory-2,Azure Data Factory,Azure Resource Manager,Azure Data Factory 2,我正在为数据工厂创建ARM模板。在管道中,每个数据集有两个活动:一个复制,一个删除。我有一个定义的数据集数组 "variables": { "datasets": ["foo", "bar", "boo", "far"] } 我知道活动是属性,您可以根据迭代属性,但似乎我只能对一个活动执行此操作 例如,我想对管道模板执行以下操作: { "name&quo
"variables": {
"datasets": ["foo", "bar", "boo", "far"]
}
我知道活动是属性,您可以根据迭代属性,但似乎我只能对一个活动执行此操作
例如,我想对管道模板执行以下操作:
{
"name": "MyPipeline",
"type": "Microsoft.DataFactory/factories/pipelines",
"apiVersion": "2018-06-01",
"properties": {
"copy": [
{
"name": "activites",
"count": "[length(variables('datasets'))]",
"input": {
"name": "[concat('Copy ', variables('datasets')[copyIndex()])]",
"type": "Copy"
}
},
{
"name": "activites",
"count": "[length(variables('datasets'))]",
"input": {
"name": "[concat('Delete ', variables('datasets')[copyIndex()])]",
"type": "Delete"
}
},
]
}
}
理想情况下,这将产生具有以下活动的管道:
- 复制foo,删除foo
- 复制栏、删除栏
- 复制boo,删除boo
- 复制远,删除远
任何关于如何实现这一点的帮助都将不胜感激 有几种方法可以做到这一点-基本上只需通过复制数组在数组上迭代两次即可。。。这里有一个方法:
"variables": {
"datasets": ["foo", "bar", "boo", "far"],
"bigDataset": "[concat(variables('datasets'), variables('datasets'))]",
"copy": [
{
"name": "activities",
"count": "[length(variables('bigDataset'))]",
"input": {
"name": "[concat(if(less(copyIndex('activities'), length(variables('datasets'))), 'Copy', 'Delete'), variables('bigDataset')[copyIndex('activities')])]",
"type": "[if(less(copyIndex('activities'), length(variables('datasets'))), 'Copy', 'Delete')]"
}
}
]
},
然后在您的资源上只需执行以下操作:
"properties": {
"activities": "[variables('activities')]",
...
}
这有帮助吗?我就是这么做的!谢谢您也可以以内联方式完成所有操作,但vars可能更易于读取资源定义。。。