首页 > 解决方案 > 创建自定义代码以解决 Azure 逻辑应用 FTP 连接器上缺少的重命名操作

问题描述

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

  1. 将文件存储为需要通过 FTP 传输到客户端的 blob。
  2. 使用 JSON 格式的文件名等将消息插入到服务总线主题中。
  3. 让逻辑应用订阅主题并 FTP 文件。

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

一旦文件被放到那里并满足某种命名风格,它就会开始处理文件。

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

完美的。

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

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

FTP 连接器中没有重命名功能——有人可以告诉我我遗漏了什么吗?

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

在进一步研究后,使用开箱即用的 FTP 连接器将无法做到这一点。

逻辑应用解决方法是通过自定义代码执行此操作。您可以使用 FTP 连接器的创建文件任务在 FTP 服务器上使用临时名称创建文件。然后,您可以调用将登录到 FTP 服务器并重命名文件的自定义 Azure 函数。这将需要您创建一个自定义函数。

有关从逻辑应用调用 Azure Functions 的更多详细信息,请参阅以下链接:

https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-azure-functions

我将尝试这样做,如果我能让它工作,请将其作为答案发布。

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

我猜这里更大的问题是“为什么”?

为什么要经历这一切?为什么不从一开始就使用 C# 函数呢?答案部分只是为了拥有使用服务总线/主题等的经验……加上如果他们确实更新了他们的 FTP 连接器,那将是一个简单的修复。但我仍然对其他答案或选择持开放态度。

顺便说一句 - 如果您认为这会有所帮助,请在此处投票支持该更改:

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

标签: c#azureftpazure-logic-apps

解决方案


推荐阅读