我想将加密文件从ftp server
转移到“ azure blob存储容器”
这是有问题的工作流:
Ftp服务器上的
CSV
加密文件---------->Trigger
(例如:添加文件时)------- --->呼叫 一些本地程序或api处理解密 然后在Blob容器中创建输出csv
文件
文件的结构如下:
Input CSV file:
column1;column2;column3;
encryptedvalue1;encryptedvalue2;encryptedvalue3;
和
Output csv file:
column1;column2;column3;
value1;value2;value3;
这里没有文件内容转换,但是还有一件事我不知道它是否可行:
例如,我想根据column1的值在特定文件夹下添加新的blob。 (例如,通过代码管理Blob容器的层次结构)
我试图创建一个Logic App
并创建了ftp trigger
作为第一步,但是我不知道哪种方法最适合我的情况。
我看到了很多建议,例如使用Web作业,其他建议用于azure功能和azure应用程序服务...
由于这些天蓝色结构是一种新事物,所以我来这里询问这样做的最佳方法以及原因?
使用Web Job
更好吗?还是azure function
?或者只是制作一个HttpRequest
?为什么呢?
我已经采用正确的方法了吗? logic app
是允许我这样做的最好方法吗?
注意:编辑
文件大小大约为Mb(不是很大)CSV
个文件,带有“;”作为分隔符
输入是ftp服务器上的csv
文件,输出是在天蓝色blob存储上特定“文件夹”下的解密的csv文件
任何帮助将不胜感激
答案 0 :(得分:0)
在Azure Webjobs和Azure Function之间进行选择时,应考虑一些关键因素。
Azure函数具有两种计费方案: 消费计划和应用服务计划。
在消耗中,您只为函数运行时付费,但是在消耗计划下,函数不能运行超过10分钟。这意味着,如果您的工作时间超过10分钟,那么您就不适合使用消费计划了。
App Service计划与Azure Web Jobs使用的计划相同,此处没有时间限制(根据文档)。
通常,当您需要具有不同触发器等的灵活逻辑时,Azure Functions会很好。
答案 1 :(得分:0)
您可以通过逻辑应用程序和功能应用程序实现以下目的:
Logic应用程序使您可以广泛使用连接器,从而可以轻松连接到不同的工件和工作流程方法,还可以对XSLT进行转换,并在需要时使用集成帐户进行转换。
希望这有助于干杯!
答案 2 :(得分:0)
不要过度设计它。
使用Logic App轮询FTP服务器并检测新文件,然后将其放置在Blob存储中。
创建一个由Blob触发的Azure函数(消费计划,v2运行时),并在代码中进行数据转换(在v2中,您可以在TypeScript,JavaScript,C#和Python之间进行选择)。使用blob输出绑定将结果写入blob存储。
可选,在生成的Blob和电子邮件/文本通知中再添加一个Logic App触发器。
答案 3 :(得分:0)
我建议使用(Azure Function)或(Web Job)
这是两种模式: -使用Docker容器执行转换(在这种情况下为复制):https://azure.microsoft.com/en-us/blog/microsoft-azure-block-blob-storage-backup/ -在创建Blob事件后使用函数执行操作:https://cmatskas.com/copy-azure-blob-data-between-storage-accounts-using-functions/
如果您还有其他疑问,请告诉我。
答案 4 :(得分:0)
经过一些研究,并根据evilSnobu
的答案和Johns-305
的评论,我发现执行此操作的最佳方法如下:...
注意:我开发了Azure Api App
来进行内容解密
基于此网格,最好的选择显然是用于设计我的工作流程的逻辑应用程序:
在我的逻辑应用程序内部
files is added
-> ftp上Azure存储Create a blob
&
上的Delete file
时创建一个Azure function
(Azure功能与下面网格中的Web作业)
基于blob creation trigger
,当创建Blob时,调用解密API应用。
by version-folders
文件内容根据下面的网格,我们可以判断为什么在我的情况下,天蓝色函数比Web作业更适合
最后,总结一下,我可以说,就我而言,我需要对我的解决方案有一个开发人员观点,这就是为什么我主要需要逻辑应用程序的原因,然后我必须执行两个基本任务,这些任务是触发的基于非连续性,因此更适合version field
,并且便宜得多(因为文件不大,处理速度很快)