Azure数据工厂-将文件从foreach项目复制到SFTP解析目标

时间:2020-09-04 11:43:30

标签: azure azure-data-factory azure-data-factory-pipeline

另一个Azure数据工厂问题。

我正在尝试在ForEach中使用“复制数据”活动,将目标接收器设置为foreach的一项。

我的设置如下:

  • 查找活动以读取json文件。

json文件的格式

{
    "OutputFolders":[
     {   
        "Source": "aaa/bb1/Output",
        "Destination": "Dest002/bin"
     },
     {   
        "Source": "aaa/bbb2/Output",
        "Destination": "Dest002/bin"
     },
     {   
        "Source": "aaa/bb3/Output",
        "Destination": "Dest002/bin"
     }
    ]
}
  • Foreach活动,其项目设置为@activity('Read json config')。output.value [0] .OutputFolders
  • 在foreach活动中,有一个“复制数据”活动

此接收器具有以下接收器数据集:

enter image description here

但是,当我运行此管道时,出现以下错误消息:

{
    "errorCode": "2200",
    "message": "Failure happened on 'Sink' side. ErrorCode=SftpPermissionDenied,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Permission denied to access '/@item().Destination'.,Source=Microsoft.DataTransfer.ClientLibrary.SftpConnector,''Type=Renci.SshNet.Common.SftpPermissionDeniedException,Message=Permission denied,Source=Renci.SshNet,'",
    "failureType": "UserError",
    "target": "Copy output files",
    "details": []
}

所以Message =拒绝访问'/@item().Destination'的权限似乎表明目标文件夹未解析。由于此文件夹不存在,因此我得到了SftpPermissionDenied。

我使用相同的方法将文件复制到文件共享中,并且似乎可以正常工作。

有人知道如何正确地解析此目的地吗?

1 个答案:

答案 0 :(得分:0)

好吧,我尝试了一些尝试,显然,如果我使用了concat函数,它会起作用。

所以@concat(item()。Destination)

我确实得到警告“项目”不是公认的功能,但确实可以解决问题。

不是很简单,我想知道为什么最初的方法行不通。

enter image description here