【问题标题】:How to run multiple executables with Azure cloud services - Function apps?如何使用 Azure 云服务运行多个可执行文件 - 函数应用程序?
【发布时间】:2019-04-14 15:36:08
【问题描述】:

我正在处理一个遗留软件,完全不适合云。 本地工作流程如下:

  • 运行软件1

  • Software1 创建一些供 Software2 使用的帮助文件

  • Software2 运行并生成结果文件

Software2 是编译为可执行文件的仿真模型。 我现在需要运行数百个模拟,由于这个软件甚至不支持多线程,我正在考虑在云中运行它。我对云计算几乎没有经验。我们公司主要使用 Azure,但我使用 AWS 或其他云计算服务没有问题。

我认为可能的解决方案是:

  • 运行运行 Software1 的虚拟机

  • Software1 创建多个文件夹。每个文件夹都包含执行单个模拟所需的所有文件。

  • 每个文件夹都加载到一个 blob 存储文件夹中

  • 函数应用由 blob 存储文件夹创建触发,并通过运行 Software2 为每个文件夹执行运行

  • 在 Software2 完成模拟后,函数应用会将结果文件复制回 Blob 存储,位于相应运行的同一文件夹中。

我测试了 Function App,它可以满足我的需求,但我不太确定如何并行运行它几次。您对如何实现这一目标有任何建议吗?或者也许我应该使用与功能应用不同的东西。

提前感谢您的帮助, 圭多

【问题讨论】:

  • 您能否澄清一下:Soft1 将创建一个 blob(作业)或多个 blob(作业的工作文件)? Soft2 需要为一个作业或每个工作文件触发多次?
  • 抱歉,不清楚。请参阅已编辑的问题。

标签: azure cloud


【解决方案1】:

如果我的理解正确,您希望并行运行此函数应用程序多次以“模拟”并行执行。我认为您需要查看事件网格并重新考虑您的架构。

【讨论】:

  • 是的,基本上我有 1 个可执行文件和许多配置。这就是帮助文件。我需要为每个配置(一组帮助文件)运行该 exe。我将研究事件网格。
  • 你需要一个消息或事件背板才能让这个东西正常工作。我以前做过类似的事情,我有一个命令应用程序创建一大组 json 文件,将它们放入一个目录中,第二个子系统将这些文件作为配置文件提取并执行它们。构建它的方法是使用 blobstorage 和事件网格,然后将函数应用程序作为订阅者来执行函数应用程序逻辑。
【解决方案2】:

如果您使用 Blob 触发器,则每次在 Blob 容器中进行操作时都会触发您的函数。如果为 Software2 运行 1 个文件 = 1 个,则可以使用 blob 触发器,Azure 将并行扩展和运行您的函数。问题是 Software2 需要将结果写回 blob,创建新的触发器。

另一种方法是让 Software1 向存储队列或服务总线或带有事件网格的事件发送消息,并由此触发您的函数。然后,您将使用“扇出/扇入”模式编写一个 Durable 函数来并行运行 Software2。

您还可以查看在 Logic App 中创建并行分支。

【讨论】:

    猜你喜欢
    • 2016-02-21
    • 2019-12-13
    • 2023-02-07
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多