在ADF中参数化Azure Blob存储链接服务

在ADF中参数化Azure Blob存储链接服务,azure,azure-storage-blobs,azure-data-factory,Azure,Azure Storage Blobs,Azure Data Factory,我想创建一个Azure Data Factory管道,将文件复制到多个存储帐户。我的计划是将管道参数中的存储帐户连接信息定义为数组,并使用ForEach活动在数组中的每个对象上循环,将连接信息传递给另一个管道 [ { "destinationBlob": { "connectionString": "Conn1" } }, { "destinationBlob": { "connectionString": "Conn2"

我想创建一个Azure Data Factory管道,将文件复制到多个存储帐户。我的计划是将管道参数中的存储帐户连接信息定义为数组,并使用ForEach活动在数组中的每个对象上循环,将连接信息传递给另一个管道

    [
  {
    "destinationBlob": {
      "connectionString": "Conn1"
    }
  },
  {
    "destinationBlob": {
      "connectionString": "Conn2"
    }
  },
  {
    "destinationBlob": {
      "connectionString": "Conn3"
    }
  }
]
我的问题是,是否可以参数化与Azure Blob存储链接服务的连接?

基于,链接服务的ADF参数化不支持Azure Blob存储


因此,到目前为止,您只能将特定文件复制到不同的目的地。

这实际上是可以做到的。示例JSON:

{
    "name": "DataLakeBlob",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "parameters": {
            "StorageAccountEndpoint": {
                "type": "String",
                "defaultValue": "https://testblobstorage.blob.core.windows.net"
            }
        },
        "type": "AzureBlobStorage",
        "typeProperties": {
            "serviceEndpoint": "@{linkedService().StorageAccountEndpoint}"
        },
        "description": "Test Description"
    }
}

编辑:这已被Microsoft确认

对于那些寻找SAS令牌参数化的人,可以使用以下JSON。 确保选中屏幕截图中的复选框,以便应用JSON。

{
“类型”:“Microsoft.DataFactory/Factorys/linkedservices”,
“财产”:{
“参数”:{
“StorageAccountEndpoint”:{
“类型”:“字符串”,
“defaultValue”:https://.blob.core.windows.net/?sv=2018-03-28&ss=b&srt=sco&sp=rwdlac&se=2019-10-20T16:33:57Z&st=2019-09-20T08:33:57Z&spr=https&sig=lDrBjD%2BjM2T1XjRW997VPMqDp99ZxVoReyRK0VEX7zQ%3D”
}
},
“类型”:“AzureBlobStorage”,
“类型属性”:{
“sasUri”:“@{linkedService().StorageAccountEndpoint}”
}
}}

感谢您的回复。在您共享的文档中,我看到:“对于所有其他数据存储,您可以通过选择Connections选项卡上的Code图标并使用JSON编辑器来参数化链接的服务。”我将尝试一下,看看会发生什么……有可能会起作用,我使用了keyvault配置,用于无法使用代码视图从UI配置keyvault的字段。我从其他链接服务复制粘贴的配置,完成了这项工作。更新:我尝试使用JSON编辑器参数化azure存储连接字符串,但未成功。我必须为每个存储目标创建一个新的复制活动、链接服务和数据集。。。下面是我在下面的回答中建议的参数化语音支持的链接,有一种方法可以做到这一点。Microsoft接受通过JSON添加参数是一种有效的方法。查看我对azure文档的评论你确定这一条真的有效吗?它使用“defaultValue”,从不使用“StorageAccountEndpoint”的实际值StorageAccountEndpoint“始终为空,如果删除“defaultValue”,您将在运行时遇到错误。是的,确实如此。我在运行时通过trigger@DhruvJoshi,请说明如何通过触发器传递StorageAccountEndpoint值?创建一个从触发器接受参数的管道,并具有从管道接受参数的数据集和由数据集提供的参数化链接服务。好了。如果这没有帮助,请告诉我。
{
  "type":"Microsoft.DataFactory/factories/linkedservices",
  "properties":{
  "parameters": {
        "StorageAccountEndpoint": {
            "type": "String",
            "defaultValue": "https://<<yourstorageaccountname>>.blob.core.windows.net/?sv=2018-03-28&ss=b&srt=sco&sp=rwdlac&se=2019-10-20T16:33:57Z&st=2019-09-20T08:33:57Z&spr=https&sig=lDrBjD%2BjM2T1XjRW997VPMqDp99ZxVoReyRK0VEX7zQ%3D"
        }
    },
    "type": "AzureBlobStorage",
    "typeProperties": {
        "sasUri": "@{linkedService().StorageAccountEndpoint}"
    }

}}