我在Azure中创建了一个数据工厂,其中包含大约10-15个管道,它们都运行良好,我可以在我设置的测试数据工厂上调试和运行它们而不会出现问题。我还使用CI / CD管道将Azure DevOps与Data Factory集成。
最初这个管道工作正常,我能够使用生成的ARM模板在生产数据工厂实例上重新创建管道/触发器/等。
现在我已经向Data Factory添加了一些内容,当它生成ARM模板时,它现在创建一个具有293个参数的模板,当它通过CI / CD管道运行时失败,因为ARM只允许256个参数模板。
它放在参数文件中的很多项目我都不需要参数化,比如文件名和文件路径。我真正想要参数化的是各种连接信息。
我试图创建第二个ARM模板参数文件并删除我不想要的参数,因为我读了一些关于能够这样做添加一些额外参数的文档,但这不起作用,因为它不会删除ARM模板本身的参数。
所以我的问题是,有没有办法解决这个问题?我能想到的事情是创建多个数据工厂,每个数据工厂只有几个管道。我真的不喜欢这个想法,因为随着时间的推移它会变得非常庞大和繁琐。我可以手动删除参数文件中的模板以及模板本身,但我真的不喜欢这个解决方案,因为它是手动的,而且非常容易出错。
理想情况下,我想要做的是定义我想要在管道中参数化的项目,就像我提到的参数化的90%我不需要参数化,但我找不到任何方式这样做(没有手动做)。
2种方式:
让我解释一下,假设你有5个输入参数叫做param1,2,3,4,5。你可以将它们“压缩”成一个参数,如下所示:
"param": {
"type": object,
"defaultValue": {
"param1": "something",
xxx
"param5": "otherthing"
}
}
看到你有290个参数,我可能会去对象路线,因为这样你就可以对它们进行逻辑分组。
至于没有参数化的东西 - 你可以为它们定义默认值的变量(但是如果你定义它们仍然计算参数的默认值),那么变量允许你这样做。