c# - 创建自定义代码以解决 Azure 逻辑应用 FTP 连接器上缺少的重命名操作
问题描述
我们正在将现有的 C# 控制台应用程序转换为 Azure 解决方案。非常基本的需求:
- 将文件存储为需要通过 FTP 传输到客户端的 blob。
- 使用 JSON 格式的文件名等将消息插入到服务总线主题中。
- 让逻辑应用订阅主题并 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 连接器,那将是一个简单的修复。但我仍然对其他答案或选择持开放态度。
顺便说一句 - 如果您认为这会有所帮助,请在此处投票支持该更改:
解决方案
推荐阅读
- python - 如何处理 IndexError:列表索引超出范围?
- date - 在 Hive 中将 dd/mm/yyyy/hh/mm/ss 格式更改为 yyyymm
- java - 访问 Executor Service Future List 时出现 ConcurrentModificationException
- c# - 为什么debug可以显示,而Release不能?
- if-statement - 使用具有多个条件的过滤器公式并允许空白条件
- asynchronous - Vue/Vuex watcher 动态/异步组件加载
- c - 为什么我的代码中出现无限循环?
- javascript - 如何接收 IEnumerable
来自客户? - cmake - '使用 CMake 设置 SDL2 时对“WinMain@16”的未定义引用'
- anylogic - 如何在某个变量值而不是时间停止参数变化实验