You need to enable JavaScript to run this app. 伸缩配置设为1的容器化Azure Function为何运行两个Docker镜像
优惠活动
大模型
产品
解决方案
定价
更多

伸缩配置设为1的容器化Azure Function为何运行两个Docker镜像

Azure Function 双容器启动排查结论

你看到的两个启动容器并非业务函数多实例触发,两者的属性完全不同:

  • 第一个名称为func-mymodelcode-python_1_abbba506的容器,使用的是你上传到ACR的mymodelcoderegistry01.azurecr.io/mymodelcode-python:latest镜像,运行的是你编写的函数代码,完全符合你设置的单实例伸缩配置要求。
  • 第二个名称带_middleware后缀的容器,使用的是Azure官方的appsvc/middleware:1.4.5镜像,属于App Service平台的内置sidecar组件,不属于你自定义的业务实例范畴。

中间件容器启动原因

你的启动参数里明确存在WEBSITE_AUTH_ENABLED=True的环境变量,说明你开启了App Service原生身份验证(Easy Auth)功能,这个中间件容器就是用来承担身份校验、请求路由、平台日志采集的平台侧能力:所有外部请求会先进入中间件容器,校验通过后才会转发到你的业务函数容器,完全不占用你配置的伸缩实例配额。

可选配置调整

如果你确实不需要这个额外的中间件容器,可以做如下调整:

  • 关闭App Service原生身份验证功能:在Azure门户的Function配置页找到「身份验证」选项,删除当前的身份提供方配置,或者直接将环境变量WEBSITE_AUTH_ENABLED设为False即可。调整后平台不会再启动中间件容器,但你需要自己在函数代码中实现请求的身份校验逻辑。

单实例有效性校验

如果要确认你的业务函数确实只有一个实例运行,可以通过以下方式验证:

  • 进入Function的「监视」板块,打开应用程序洞察查看实例计数,仅会统计你自己的业务容器实例
  • 在「横向扩展(Scale out)」配置页查看当前运行的实例数,和你设置的最大实例数1一致即可

内容的提问来源于stack exchange,提问作者Lalit Singh Rana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 00:24:02