c# - 为单个请求临时扩展 Azure Web 应用程序 RAM(例如应用程序服务计划)

标签 c# azure azure-web-app-service autoscaling

我们有一个用于内部报告的 Azure Web 应用程序,99% 的情况下它都可以在最低定价层(3.5 GB RAM)上处理所需的所有流量/请求。

但是有一个生成 Excel 报告的特定请求,暂时需要 ~8 GB 的 RAM 来提供服务(ClosedXML 是一个庞然大物,我们已经以各种可能的方式最小化了峰值 RAM 占用量)。不幸的是,这不仅需要下一个定价层 (7GB),还需要再上一个定价层,为我们提供 14 GB 的空间。

此请求只需要大约 1 分钟即可完成,因此在尝试了其他所有操作后,我正在考虑使用 Azure API 在请求传入时以编程方式更改应用服务计划,等待 10 秒左右让它生效,然后处理请求,然后缩小规模。

这是一种明智的方法,还是有一些我不知道的其他功能可以暂时执行占用内存的操作?我考虑过 Azure 函数,但我读过这些函数仅限于 1.5GB RAM...据我所知,如果不成为操作 zipped-XML 底层的专家,这项工作就不能以任何方式分割Excel 工作簿。

最佳答案

听起来你想做的事情很合理,我们正在做类似的事情,在每月进行大量导入之前我们会扩大规模,我们会同时扩大前端功能和后端 CosmosDB,然后在导入完成后再次缩小规模这样做我认为您这样做不会有任何问题。

顺便说一句,Azure 函数没有 1.5 GB 限制,它完全取决于底层托管解决方案,您可以在 P3V3 应用服务计划或更大的专用计划上托管函数,并从它们提供的资源中受益,但是这是一个不同的话题。

关于c# - 为单个请求临时扩展 Azure Web 应用程序 RAM(例如应用程序服务计划),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72155292/

相关文章:

c# - 关于分布式 c# 应用程序共享数据库选项的建议

c# - 一些帮助使用 C# 发布到 ASP.NET Web API

azure - 从现有的备份 Azure 网站创建新的 Azure 网站

azure - API 应用程序和 Web 应用程序有什么区别?

c# - VS 2013 SDK : Indentation issues with selected text

c# - 如何访问 docx 默认样式

asp.net - Azure 调度程序作业 : SendFailure The underlying connection was closed

azure - 如何使用 mysite.com/app1 和 mysite.com/app2 的 url 设置 azure 应用程序服务

azure - 在 Azure 应用服务上启用 gzip 压缩

Azure WebJobs 和部署槽