使用应用服务节省 Azure 计费成本?

Saving on Azure billing cost with App Services?

我目前有一个 .NET Core 应用程序 运行 作为 Azure 应用服务,我需要它来做很多 'work' 一天大约几次。为了节省按小时计费,这是我开发的解决方案:

  1. 使用运行手册(Azure 自动化):在 7:00 PM
  2. 将应用服务计划扩展到 'Free' 层
  3. 使用运行手册(Azure 自动化):在 8:00 上午
  4. 将应用服务计划扩展回高级层
  5. 对我的 .NET Core 应用程序进行硬编码,以确保它仅在 8:00 上午和 7:00 下午
  6. 之间执行繁重的 'work'

很好,因为它为我节省了很大一部分成本,因为我只需为应用服务计划扩展到高级层的时间付费.但是绝对不理想。

我的问题是 - 我应该实施什么设计模式才能完成我想做的事情?我需要大量的计算资源,但一天中只需要几个小时。我知道 AWS 有 'spot' 个您可以配置的实例 - Azure 中有类似的机制吗?

理想情况下,我可以实施一个解决方案,让我只在实际需要时才为那些繁重的计算资源付费(例如:每天几次,当太阳升起时)

感谢您的任何见解和帮助!


EDIT 关于计算类型,我的总结基本上是 一些 ML.NET 培训师 运行 与一些并行适中的 Elasticsearch 文档写作

是的,您可以切换到无服务器。存储帐户上的主机前端和后端移动到 Azure Functions(消费计划)。

PS:如果处理时间较长 运行,除非您使用 Durable Functions,否则它可能不是最佳解决方案。

很难回答这个问题,因为您的工作量的整个描述是 "heavy compute" 的 "lot"。

如果您可以将 "compute" 放入 Azure Functions,使用消费计划实现无服务器可能是最好的解决方案。但是,个别函数执行有给定的超时时间,因此您需要查看您的应用是否符合要求。

作为替代方案,您可以将您的应用程序放入 Azure Container Instance,然后根据需要启动它。

如果您的工作量真的很大,可以使用 Azure Batch。如果您当前的工作量可以在 AppService 计划上完成,这可能是 "overkill".

相当于 AWS spot 实例的名称是 Azure Spot Virtual Machines。您还可以将它们与 Azure Batch 一起使用。