如何绕过Azure数据工厂手臂模板参数限制



我在其中创建了一个用大约10-15个管道的Azure创建了一个数据工厂,它们都可以正常工作,我可以在测试数据工厂进行调试并运行它们,而我却没有问题设置。我还将与CI/CD管道的数据工厂设置了Azure DevOps集成。

最初,该管道也很好地工作,我能够使用生成的ARM模板在生产数据工厂实例上重新创建管道/触发器/等。

现在,我已经在数据工厂中添加了更多内容,并且当它生成ARM模板时,它会创建一个模板,该模板具有293个参数,当它通过CI/CD管道运行时,该模板会失败,因为仅允许256个参数使用手臂模板。

它将其放在参数文件中的许多项目我不需要被参数化,例如文件名和文件路径。我真正想要的参数化就是各种连接信息。

我尝试创建一个第二臂模板参数文件并删除我不想要的参数,因为我读了一些文档,以添加一些其他参数,但这无效,因为它不行,t从臂模板本身中删除参数。

所以我的问题是,有没有办法处理此问题?我能想到的事情是创建多个数据工厂,并且每个管道中只有几个管道。我真的不喜欢这个想法,因为随着时间的流逝,它会变得非常大且繁琐。我可以手动从参数文件中删除模板,也可以从模板本身中删除模板,但是我真的不喜欢此解决方案,因为它是手动的,并且确实很容易出错。

我理想地能够做的是定义我想在管道中进行参数化的项目,就像我提到的90%的参数化的内容,我不需要参数化,但是我可以't找到任何方法(手动执行此操作)。

2种方法:

  1. 明显 - 删除不需要的参数
  2. 不太明显 - 使用对象而不是字符串。

让我解释一下,想象一下您有5个输入参数,称为partar 1,2,3,4,5。您可以将它们"压缩"到这样的一个参数中:

"param": {
    "type": object,
    "defaultValue": {
        "param1": "something",
        xxx
        "param5": "otherthing"
    }
}

看到您有290个参数,我可能会走对象路由,因为这样您可以从逻辑上分组。

至于没有参数化的事物 - 您可以为它们定义默认值的变量(但是,如果定义默认值,则它们仍然计数参数),因此变量允许您执行此操作。

使用MS文档中所述的自定义参数模板:使用资源管理器模板使用自定义参数。

相关内容

  • 没有找到相关文章

最新更新