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

如何将Azure Container App加入VNET?求正确YAML配置示例

Azure Container App(GA正式版)VNET集成YAML配置示例

首先明确:VNET集成是Azure Container App Environment的全局属性,同一环境下的所有容器应用共享该VNET配置,无法单独为单个容器应用绑定VNET。你之前更新单个应用配置不生效,大概率是没有先对所属的Container App Environment完成VNET配置。

完整配置示例

1. 带VNET配置的Container App Environment YAML(核心配置)

apiVersion: Microsoft.App/2022-03-01
kind: managedEnvironments
name: 你的容器应用环境名称
location: 区域名称(例如chinaeast2)
properties:
  appLogsConfiguration:
    destination: log-analytics
    logAnalyticsConfiguration:
      customerId: 你的Log Analytics工作区ID
      sharedKey: 你的Log Analytics工作区密钥
  # 核心VNET配置段
  vnetConfiguration:
    # 提前创建完成、已委托给Microsoft.App/environments的子网资源ID
    infrastructureSubnetId: /subscriptions/你的订阅ID/resourceGroups/你的资源组名称/providers/Microsoft.Network/virtualNetworks/你的VNET名称/subnets/你的子网名称
    # true=应用可公网访问同时接入VNET;false=仅VNET内部可访问应用
    external: false
    # 可选配置:自定义环境内部使用的网段,不能与现有VNET网段冲突
    dockerBridgeCidr: 10.2.0.1/16
    platformReservedCidr: 10.1.0.0/16
    platformReservedDnsIP: 10.1.0.2
  zoneRedundant: false

2. 绑定到上述VNET环境的Container App YAML示例

apiVersion: Microsoft.App/2022-03-01
kind: containerApps
name: 你的容器应用名称
location: 区域名称(需与环境区域一致)
properties:
  # 必须指定已完成VNET配置的环境资源ID
  managedEnvironmentId: /subscriptions/你的订阅ID/resourceGroups/你的资源组名称/providers/Microsoft.App/managedEnvironments/你的容器应用环境名称
  configuration:
    activeRevisionsMode: Single
    ingress:
      external: false
      targetPort: 80
      transport: auto
      allowInsecure: false
  template:
    containers:
    - image: mcr.microsoft.com/azure-app-service/samples/aspnetcore-hello-world:latest
      name: hello-world
      resources:
        cpu: 0.25
        memory: 0.5Gi
    scale:
      minReplicas: 0
      maxReplicas: 5

配置不生效排查要点

  • 子网必须提前完成委托:在VNET子网配置中,将目标子网委托给Microsoft.App/environments资源类型,且子网掩码最小为/23(至少保留512个可用IP)
  • 已创建的未绑定VNET的Container App Environment无法直接更新添加VNET配置,必须重新创建带VNET配置的新环境,再将容器应用迁移到新环境
  • 执行更新命令时需确认YAML层级正确,vnetConfiguration必须放在managedEnvironments资源的properties下,不要放在单个containerApp的配置段中

正确部署命令

先部署VNET环境配置:

az deployment group create --resource-group 你的资源组名称 --template-file env.yaml

再部署容器应用:

az containerapp update --yaml app.yaml --name 你的容器应用名称 --resource-group 你的资源组名称

内容的提问来源于stack exchange,提问作者Garry Taylor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:36:04