You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于VMSS的扩缩容事件触发Azure Function

基于VMSS扩缩容事件触发Azure Function的解决方案

方案1:Event Grid触发器+精准过滤(推荐)

你之前用Event Grid触发器时触发多余事件,是因为没加针对性过滤规则。只需给Event Grid订阅添加以下过滤条件,就能只捕获VMSS实例数变化的事件:

  • 登录Azure门户,找到目标Event Grid订阅(若未创建,新建时目标选择你的Azure Function)
  • 进入订阅的「筛选器」配置页,添加3条过滤规则:
    • 规则1:字段选data.operationName,运算符选「等于」,值填Microsoft.Compute/virtualMachineScaleSets/write
    • 规则2:字段选data.status,运算符选「等于」,值填Succeeded
    • 规则3:字段选data.properties,运算符选「包含」,值填"sku.capacity"(只有扩缩容操作会修改这个属性,其他编辑事件不会涉及)
  • 额外可添加data.resourceUri的等于规则,指定你要监听的特定VMSS资源ID,避免其他VMSS的事件干扰

方案2:修复Webhook触发问题

若坚持用VMSS自动缩放规则的Webhook触发HTTP函数,检查以下关键点:

  • 确保函数的HTTP触发器允许匿名访问,或在Webhook URL中拼接正确的函数访问密钥(从Azure Function的「获取函数URL」复制完整地址,包含?code=xxx参数)
  • 检查VMSS自动缩放规则的「通知」设置:
    • Webhook URL必须是完整的函数触发地址,不能遗漏code参数
    • 确认勾选「发送通知」,且通知类型选择「Webhook」
  • 排查日志:查看Azure Function的「监控」→「日志」,确认是否有请求进入;也可查看VMSS的活动日志,看Webhook请求是否被正常发送
  • 手动测试:手动触发一次VMSS的扩缩容操作(而非等待自动缩放),快速验证触发是否生效

排查小技巧

  • 用Postman等工具手动调用函数的HTTP URL,传入模拟的VMSS扩缩容请求体,测试函数本身是否能正常响应
  • 若用Event Grid,查看订阅的「监控」→「指标」,确认事件是否成功投递到函数

内容的提问来源于stack exchange,提问作者Karen Baghdasaryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:17:52