发布后如何获取Azure数据工厂参数到ARM模板参数文件(ARMTemplateParametersForFactory.json)中

NER*_*808 9 azure azure-data-factory azure-devops azure-rm-template azure-pipelines

我正在尝试为 Azure 数据工厂创建我的 Azure DevOps 发布管道。

我遵循了 Microsoft ( https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment ) 关于向 ARM 模板添加额外参数的相当神秘的指南发布(https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#use-custom-parameters-with-the-resource-manager-template

arm-template-parameters-definition.json在 master 分支的路由中创建了一个文件。当我做一个发布,则ARMTemplateParametersForFactory.jsonadf_publish分支保持完全不变。我尝试了很多配置。

我在数据工厂中定义了一些管道参数,并希望它们在我的部署管道中是可配置的。对我来说似乎是一个明显的要求。

我错过了一些基本的东西吗?请帮忙!

JSON 如下:

{
    "Microsoft.DataFactory/factories/pipelines": {
        "*": {
            "properties": {
                "parameters": {
                        "*": "="                
                }
            }
        }
    },
    "Microsoft.DataFactory/factories/integrationRuntimes": {
        "*": "="
    },
    "Microsoft.DataFactory/factories/triggers": {},
    "Microsoft.DataFactory/factories/linkedServices": {},
    "Microsoft.DataFactory/factories/datasets": {}
}
Run Code Online (Sandbox Code Playgroud)

小智 13

我已经为此苦苦挣扎了几天并没有找到很多信息,所以这里是我发现的。您必须将 放在arm-template-parameters-definition.json协作分支的配置根文件夹中:

数据工厂git设置

所以在我的例子中,它必须是这样的:

arm-template-parameters-definition.json

如果您在单独的分支中工作,则可以通过从数据工厂下载 arm 模板来测试您的配置。当您更改参数定义时,您必须重新加载浏览器屏幕 (f5) 以刷新配置。 数据工厂下载arm模板

如果你真的想参数化所有管道中的所有参数,以下应该有效:

"Microsoft.DataFactory/factories/pipelines": {
    "properties": {
        "parameters":{
            "*":{
                "defaultValue":"="
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢指定要参数化的参数:

"Microsoft.DataFactory/factories/pipelines": {
    "properties": {
        "parameters":{
            "LogicApp_RemoveFileFromADLSURL":{
                "defaultValue":"=:-LogicApp_RemoveFileFromADLSURL:"
            },
            "LogicApp_RemoveBlob":{
                "defaultValue":"=:-LogicApp_RemoveBlob:"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*rkD 5

只是为了澄清西蒙的伟大答案。如果您有非标准的 git 层次结构(即您将根移动到一个子文件夹,就像我在下面使用“源”所做的那样),当文档提到“repo root”时可能会造成混淆。希望这张图有帮助。

在此处输入图片说明