在Azure webapps

时间:2016-10-04 10:13:14

标签: azure c#-4.0 asp.net-web-api2 azure-web-sites azure-storage-blobs

情况:

我们的Azure blob存储中包含TB值文件的用户和Azure数据库中的千兆字节存储空间决定离开我们的服务。此时,我们需要将他的所有数据导出到2GB包中并将其存放在blob存储器上一段时间(两周左右)。

这应该很少发生,我们正试图削减成本。在一两天的过程中实现一个任务的最佳位置是下载相应用户的blob(240 KB文件)并将它们压缩到包中?

我看了一个运行专用连续webjob的单独的webapp,但是webjobs似乎在应用程序卸载时关闭了,我需要这个来休眠而不是在没有启动和运行时使用资源,所以“Always on”是出。另外,我似乎无法找到关于如何实现接口的完整教程,以便我可以取消正在运行的任务等。

我们最后的办法是放弃webapps(其中三个)并在虚拟机上运行它,但这需要更高的成本。有没有我错过的方法可以完成工作?

1 个答案:

答案 0 :(得分:0)

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

我不认为运行该功能有任何时间限制(与AWS Lambda不同),但即便如此,您可能希望实现某些功能,以便首先拆分作业,以便可以并行处理(和为失败提供一些弹性)。将这些任务排队并将该功能从队列中触发。

值得注意的是,他们此刻仍处于'预览'状态。

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