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

问题描述

一个Azure数据工厂问题。

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

我的设置如下:

  • 查找活动以读取json文件

json文件的格式

{
    "OutputFolders":[
     {   
        "Source": "aaa/bb1/Output","Destination": "Dest002/bin"
     },{   
        "Source": "aaa/bbb2/Output",{   
        "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。

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

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

解决方法

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

所以@concat(item()。Destination)

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

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

enter image description here