在 Azure webapps 上实施 LONG 后台任务

Implementing LONG background tasks on Azure webapps

情况:

一位用户在我们的 Azure blob 存储上拥有 TB 级的文件,在我们的 Azure 数据库中拥有数 GB 级的存储空间,他决定离开我们的服务。此时,我们需要将他的数据全部导出到2GB的包中,存放在blob存储中,短期(两周左右)。

这种情况应该很少发生,我们正在努力削减成本。在一两天内下载相应用户的 blob(240 KB 文件)并将它们压缩到包中的任务在哪里实施最合适?

我看过一个单独的 webapp 运行 一个专用的连续 webjob,但 webjobs 似乎在应用程序卸载时关闭,我需要它休眠并且在未启动时不使用资源 运行,所以 "Always on" 出来了。另外,我似乎找不到关于如何实现接口的完整教程,所以我可能会取消 运行 任务等。

我们的最后一招是放弃 webapps(其中三个),运行 将其全部放在虚拟机上,但这会带来更大的成本。有没有我错过的方法可以完成工作?

对我来说,这听起来像是 Azure Functions 上的无服务器模型的工作。您无需为闲置资源付费即可获得所需的计算规模。

我认为 运行 该函数没有任何时间限制(与 AWS Lambda 不同),但即便如此,您可能还是希望先实现一些功能来拆分作业,以便它可以并行处理(并提供一些故障恢复能力)。将这些任务排队并触发队列外的功能。

值得注意的是,他们目前仍在 'preview'。

编辑 - 刚刚注意到您对文件大小的评论...这可能是个问题,但理论上您应该能够使用本地存储而不是全部在内存中完成。