Azure Function scale and hosting
针对Azure Function的hosting plan种类
hosting plan有三种:Consumption plan、Premium plan、App Service plan。
你规定的hosting plan决定了你的Function App的规模
每个Function App实例可以使用的资源
支持额外功能,例如VNet连接
Consumption大概就是会自动调节
Premium Plan就是可以保持VNet一直连接
App Service Plan就是不会缩放
Consumption Plan
这个无服务器计划会自动扩展,只有使用者的功能运行时才需要为计算资源付费。
计费基于执行次数、执行时间和使用的内存。
这个计划是默认的托管计划
优点:
仅运行时付费
可以自动扩展
可以将同区域的应用程序分配给相同的计划。可以在一个计划当中运行多个应用程序。且不会有不好的影响。
Premium Plan(Preview)
主机实例根据传入事件的数量添加和删除,这点伸缩性类似于Consumption Plan消费计划。
Premium Plan高级计划支持的功能有:
实例永远warm?(可能指的是一直运行)
可以使用VNet连接
无限的执行时间
定价可以预测
这个计划的收费是无论执行次数如何,每个活动计划每月的固定成本都是不变的。
需要考虑高级计划的场景:
应用需要连续运行
需要提供更多的CPU或者内存选项
代码需要运行的时间大于消耗计划允许的最长时间
需要仅在高级计划当中才有的功能,例如VNET/VPN连接
App Service Plan
应用服务计划
考虑这个计划的情形是:
有运行其他App Service实例但是没有充分利用的虚拟机
需要提供一个你自定义的图片来运行你的Functions
Always On始终在线
函数会在几分钟不活动之后变为空闲状态,需要Http触发器才能将其唤醒
Function app timeout duration
最长时间在host.json文件当中定义
230秒是HTTP触发的函数响应请求所花费的最长时间
即使启用了Always On始终在线,各个函数的执行时间也受host.json文件当中的functionTimeout控制