我想要创建一个自定义Azure逻辑应用程序,它做一些繁重的处理。关于这件事,我正在尽可能多地阅读。按照我目前的理解,我想描述一下我想做的事情,然后我希望有人能指出我的理解不正确,或者指出一种更理想的方法。
我想要做的是,一个在3D网格上运行大量计算过程的应用程序,并将其转化为一个节点,用于application。
到目前为止,我的基本想法是:
这个是可能的吗?到目前为止,我所读到的似乎是有可能的。我只是想要有人来证实这一点,以防我严重误解了什么。
另外,我希望能在“网格计算过程应用程序”中获得一些关于启动和关闭高性能服务器的机制的指导。Azure文档中提到逻辑应用程序中的异步、长期任务处理的唯一地方是:https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-create-api-app。
它讨论了它要求您启动一个API应用程序或一个Web应用程序来接收Azure Logic请求,然后将状态切换回Azure Logic。我在想,用一种无服务器的方式做这件事有可能吗?因此,“网格计算过程应用程序”将触发Azure函数,该函数会将较高性能的服务器升级,然后另一个Azure函数会周期性地点击该服务器以报告状态,直到完成为止,此时Azure函数将触发性能更高的服务器关闭,然后向“网格计算处理应用程序”发出信号,表示它已经完成,并继续运行到下一个逻辑应用程序。以这种方式做这件事可以吗?
如能就如何更好地处理或思考这一问题提出任何意见或指导,将不胜感激。这是我第一次钻研Azure,所以我同时也在努力使自己对Azure有正确的理解,并建立这样一个系统。
发布于 2018-12-06 16:43:41
应该是可能的。目前,我不太确定Logic自己是否能够为您创建所有这些东西,但肯定可以使用Azure函数,以一种无服务器的方式完成。
对于第二步,如果我理解正确的话,您需要它长时间运行,这样它就可以在VM完成后再传递一些东西了?你不需要这个。当处于无服务器状态时,尽量不要考虑长时间运行的任务,并记住一切都是事件。
将东西放入Azure Blob存储是一个您可以对其做出反应的事件,这就消除了您对链接的需求。
你的第一步,把东西保存到Azure商店,仅此而已,不需要做任何其他的事情。
您的第二个应用程序,触发器插入的东西,以启动处理。
VM处理您的东西,并将其放在商店中。
电子邮件应用程序会触发被放入“处理”文件夹中的内容。另一个App在同一个文件上触发以关闭VM。
通过这种方式,您可以删除长期运行的状态管理,直接将应用程序链接起来,取而代之的是,每个应用程序只做它需要做的事情,然后应用程序就可以自动触发前一个流的结果。
如果您确实需要在所有步骤中进行某种状态管理/编排,并且希望仍然处于无服务器状态,请查看持久的蔚蓝函数。它们是无服务器的,但是它们所采取的操作和得到的结果都存储在表存储中,因此可以重新创建并恢复到以前的状态。当然,每件事都是自动为你做的,它只是改变了你在里面到底能做些什么,才能保持持久。您可能想要做的实际状态管理可能是跟踪所有VM并尝试重用它们,而不是花时间将它们旋转起来并杀死它们。但别让事情变得太复杂。
https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview
当然,您仍然需要考虑错误处理,比如如果VM只是在没有上传任何内容的情况下就死了,那么您不想错过一些东西。因此,您可以触发特殊的流来处理重复/错误,或者发送不同的电子邮件等等。
https://stackoverflow.com/questions/53566606
复制相似问题