【问题标题】:Azure function rapid scaling beyond 200 instancesAzure 功能快速扩展超过 200 个实例
【发布时间】:2020-08-07 14:44:23
【问题描述】:

我正在开发一个包含图像处理的网络项目。我把它实现为一个天蓝色的功能。但是,我在扩展时遇到了一些问题。 一般要点是用户发送一组图像进行处理(一组包含 100-1000 张图像)。每个图像的处理可以并行执行。每个图像处理请求都作为单独的事件发送到事件网格。然后事件触发的函数 A 创建一个 JSON blob,然后由 blob 触发的函数 B 处理。函数 A 处理需要 1 秒,而函数 B 处理时间大约是 1 分钟。

我的问题是扩展功能 B 的限制和速度。功能 B 的单次执行大约需要 1 分钟。但是,处理 1000 张图像大约需要 15-20 分钟,而最大实例数约为 100 个。

有没有办法强制快速缩放以使 azure 函数的实例数与等待处理的图像数相匹配?例如,当我收到 1000 个处理请求时,我立即旋转 500 个实例。

有没有办法超越消费计划中200个azure函数实例的限制?

您是否建议考虑其他技术以使该项目能够快速扩展?

【问题讨论】:

  • 您能否为您正在执行哪种图像处理、调整大小、对象检测等问题添加上下文?能够推荐选项
  • 这是一个对象检测。结果是一个简单的 JSON,用于在管道的下游进行一些计算。
  • 同样重要的是,主要算法是用 c++ 编写的,并在由 azure 函数执行的自定义 dll 中交付。

标签: azure-functions autoscaling


【解决方案1】:

虽然没有办法超过 200 个限制,但您可以部署多个函数应用来解决这个问题,这两个函数都在服务总线队列中运行消息。

函数 B 不是一个 Blob 触发的函数,而是使用 blob creation events sent to the queue via Event Grid 使其成为一个服务总线队列触发的函数。

另外,如果你的函数是计算密集型的,你也可以考虑premium plan,它可能会减少运行时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多