我们正在将现有的C#控制台应用程序转换为Azure解决方案 . 非常基本的需求:

  • 将文件存储为需要FTP到客户端的blob .

  • 使用JSON格式将消息插入服务总线主题以获取文件名等 .

  • 让逻辑应用程序订阅主题并FTP文件 .

ftp服务器是我们的客户,我无法更改其设置 .

它一旦放在那里就开始处理文件并满足某种命名风格 .

在过去,我所做的就是将temp_放在文件的前面,然后创建它,然后重命名它 .

完善 .

我们已经使用标准的.Net代码进行了这项工作,但现在我正在尝试使用Azure Logic应用程序,如上所述 .

使用FTP连接器下的“创建文件” . 如果我使用正确的名称创建它,它将失败,因为FTP服务器在Azure完成创建之前抓取文件 .

FTP连接器中没有重命名功能 - 有人可以告诉我我错过了什么吗?

更新5-24-18来自Microsoft技术支持:

在进一步研究之后,使用开箱即用的FTP连接器是不可行的 . 逻辑应用程序的解决方法是从自定义代码执行此操作 . 您可以使用FTP连接器的“创建文件”任务使用临时名称在FTP服务器上创建文件 . 然后,您可以调用自定义Azure功能,该功能将登录到FTP服务器并重命名该文件 . 这将要求您创建自定义函数 . 有关从逻辑应用程序调用Azure功能的更多详细信息,请参阅以下链接:https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-azure-functions

我打算尝试这样做,如果我可以把它作为答案发布它 .

如果有人想帮助我,那就太棒了!

我猜这里更大的问题是“ why ”?

为什么要经历这一切?为什么不从一开始就使用C#功能?答案部分只是为了获得使用服务总线/主题等的经验......如果他们曾经更新过他们的FTP连接器,那将是一个简单的解决方案 . 但我仍然愿意接受其他答案或选择 .

顺便说一句 - 如果您认为有用,请在此投票支持:

https://feedback.azure.com/forums/287593-logic-apps/suggestions/19499953-add-rename-action-to-sftp-ftp-storage-etc-connect