我要处理的是旧版软件,完全不是云友好的。 本地工作流程如下:
运行软件1
Software1创建了一些供Software2使用的帮助文件
Software2运行并生成结果文件
Software2是编译为可执行文件的仿真模型。 我现在需要运行数百个模拟,并且由于该软件甚至不支持多线程,因此我正在考虑在云中运行它。我几乎没有云计算方面的经验。我们公司主要与Azure合作,但是使用AWS或其他云计算服务没有问题。
我在想的可能的解决方案是:
运行运行Software1的虚拟机
Software1创建几个文件夹。每个文件夹都包含执行单个模拟的所有必需文件。
每个文件夹都已加载到Blob存储文件夹
通过创建Blob存储文件夹触发功能应用程序,并通过运行Software2对每个文件夹执行一次运行
在完成Software2的仿真后,功能应用程序会将结果文件复制回blob存储中相应运行的同一文件夹中。
我测试了Function App,它可以满足我的需求,但是我不确定如何并行运行几次。您对如何实现这一目标有何建议?也许我应该使用不同于功能应用程序的东西。
预先感谢您的帮助, 圭多
答案 0 :(得分:0)
如果我正确理解了这一点,则希望多次并行运行此Function App,以“模拟”并行执行。我认为您需要查看事件网格并重新考虑您的体系结构。
答案 1 :(得分:0)
如果使用blob触发器,则每次在blob容器中进行操作时都会触发函数。如果为Software2运行1个文件= 1,则Blob触发器正常,Azure将缩放并并行运行您的函数。问题在于Software2需要将结果写回到blob中,从而创建新的触发器。
另一种方法是让Software1将消息发送到Storage Queue或Service Bus或带有Event Grid的事件,并以此触发您的功能。然后,您将使用“扇出/扇入”模式编写一个持久功能,以并行运行Software2。
您还可以查看在Logic App中创建并行分支。