我有一个方案,其中我们的Azure应用服务需要每晚运行一份工作。这项工作无法扩展到多台计算机-它涉及下载大数据文件,并对其进行特殊处理(仅需要几分钟)。还将需要安装特殊软件。该计算机将需要大量内存来进行计算,因此我当时在考虑使用Ev系列计算机之一。由于这些原因,我无法在Azure App Service上将作业作为Web作业运行,而需要将其委托给其他地方。
[无论如何,我有使用Azure Batch的经验,所以起初我在考虑Azure Batch。但是我不确定这对我的情况是否有意义,因为工作无法扩展到多台机器。在单个节点上有一个带有单个vm的池是否有意义?当我需要执行该工作时,Azure Web作业将其加入队列,并且池自动从0变为1?
那里还有更好的选择吗?我正在查看是否有.NET库来启动单个VM并开始在其上执行工作,然后在完成后禁用该VM,但我找不到任何东西。
谢谢!
对于Azure Batch,单个池中单个VM的方案是有效的。 Azure Container Instances或Azure Functions似乎更合适,但是,如果您可以为工作负载配置适当的VM大小。
按照您的建议,您可以结合使用Azure功能/ Web作业以将工作排队到Azure批处理作业中。如果分别在Azure批处理池或作业上设置了autoscaling或autopool,则将处理工作并在之后释放计算资源(假定您具有正确的设置)。