在ADF中参数化Azure Blob存储链接服务
我想创建一个Azure Data Factory管道,将文件复制到多个存储帐户。我的计划是将管道参数中的存储帐户连接信息定义为数组,并使用ForEach活动在数组中的每个对象上循环,将连接信息传递给另一个管道在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"
[
{
"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}"
}
}}