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

Parameterize Azure Blob Storage Linked Service in ADF

我想创建一个 Azure 数据工厂管道,将一个文件复制到多个存储帐户。我的计划是将管道参数中的存储帐户连接信息定义为数组,并使用 ForEach activity 遍历数组中的每个对象,将连接信息传递到另一个管道。

    [
  {
    "destinationBlob": {
      "connectionString": "Conn1"
    }
  },
  {
    "destinationBlob": {
      "connectionString": "Conn2"
    }
  },
  {
    "destinationBlob": {
      "connectionString": "Conn3"
    }
  }
]

我的问题是,是否可以参数化与 Azure Blob 存储链接服务的连接?

基于document,链接服务的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"
    }
}

编辑:微软承认了这一点。 https://docs.microsoft.com/en-us/azure/data-factory/parameterize-linked-services#

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

{
  "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}"
    }

}}