【问题标题】:Limit number of servers on Azure functions (consumption plan)限制 Azure 功能上的服务器数量(消耗计划)
【发布时间】:2019-03-14 15:29:43
【问题描述】:

是否可以固定 azure 函数可扩展的服务器数量上限?我有一个消费计划,基本上我想对 azure 函数可以使用的资源数量设置一个上限。

我找到的唯一解决方案是:

  • 为每日 GB/sec 阈值设置上限,之后功能将停止到第二天,这绝对是我不想要的,因为我需要使用一些功能来完成在线任务。
  • 在host.json中,修改http.maxConcurrentRequestshttp.maxOutstandingRequests的参数,会影响并发运行的函数数。这是我应该研究的事情吗?这不是每个服务器级别的设置吗?我担心这不会最终限制资源,但 insted 会让 Azure 创建越来越多的服务器,以符合请求负载

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    您可以使用 WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT 应用设置:函数应用可以横向扩展的最大实例数。默认为无限制。 注意:此设置是一项预览功能 - 只有设置为 的值才可靠

    参考:https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings#websitemaxdynamicapplicationscaleout

    【讨论】:

    • 您能否确认它适用于消费计划(根据问题要求)?我在这里发现了一些相互矛盾的信息:github.com/Azure/Azure-Functions/issues/523
    • 较新的链接:docs.microsoft.com/en-us/azure/azure-functions/… 并且仍然标记为预览功能:此设置是预览功能 - 只有设置为值 才可靠
    • 我已经运行了测试并且(至少对我自己而言)已经证明,对于每秒低请求数,这适用于几分钟的测试,然后在每秒更高级别的请求 Azure 启动新服务器,无论该设置如何。如果没有该设置服务器几乎立即启动,我认为这就是 Azure 通过在其网络中传播“一切”来防止热点的方式,这是明智的。抱歉,这听起来太积极了,让我完全清楚......该设置根本不适用于消费计划。
    • 最简单的测试是对几个端点运行一个迷你“负载测试”,我使用的是每秒 100 个请求,然后打开 AppInsights 并查看“实时指标”,链接在左侧的主菜单。在屏幕底部,您将看到服务器列表。运行负载测试并在几秒钟后观察额外的服务器“弹出”。删除上面的设置,重新启动并运行负载测试,你会看到新的服务器几乎立即出现。
    • @SimonLuckenuik 抱歉降级您的回复,因为根据文档,它在技术上是正确的,但文档是错误的。它根本不可靠,即使该值
    【解决方案2】:

    需要注意的一点是timer-triggered functions 自动成为单例。就我而言,这就足够了,因为我可以每分钟唤醒这样的功能并处理特定数量的数据。即使该函数花费的时间比预期的要长,也不会有同时运行第二个函数的风险。

    更多信息:https://stackoverflow.com/a/53919048/4619705

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 2018-06-17
      相关资源
      最近更新 更多