将高级入口与 Azure 容器应用配合使用

本文介绍如何将高级入口与 Azure 容器应用配合使用。 使用高级入口,可以定义入口的缩放方式和配置方式,以更好地处理更高的需求工作负荷。

先决条件

创建资源组

  1. 登录到 Azure。
az login
  1. 将 Azure CLI 升级到最新版本。
az upgrade
  1. 注册所需的资源提供程序。
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
  1. 使用以下命令创建资源组:
az group create --name my-container-apps --location chinanorth3

创建环境

若要创建容器应用环境,请运行以下命令:

az containerapp env create \
  --name my-container-apps-env \
  --resource-group my-resource-group \
  --location chinanorth3

配置工作负载配置文件

将工作负荷配置文件添加到环境(高级入口所必需的)。

az containerapp env workload-profile add \
  --resource-group my-resource-group \
  --name my-container-apps-env \
  --workload-profile-name Ingress-D4 \
  --workload-profile-type D4 \

您的工作负载配置文件必须至少有两个节点才能使用高级入口。

配置高级入口

使用以下命令将高级入口设置添加到环境:

az containerapp env premium-ingress add \
  --resource-group my-resource-group \
  --name my-container-apps-env \
  --workload-profile-name Ingress-D4 \
  --termination-grace-period 500 \
  --request-idle-timeout 4 \
  --header-count-limit 100

下表描述了为容器应用环境配置高级入口设置时可以设置的参数。

参数 Description 违约 最小值 最大值
termination-grace-period 允许活动连接在终止流入流量之前关闭的时间(以秒为单位)。 n/a 0 3600
request-idle-limit 请求在断开连接之前可以保持空闲的时间(以分钟为单位)。 4 4 30
header-count-limit 每个请求允许的最大 HTTP 标头数。 100 1 n/a

配置后,将看到刚应用的设置的输出。

{
  "headerCountLimit": 100,
  "requestIdleTimeout": 4,
  "terminationGracePeriodSeconds": 500,
  "workloadProfileName": "Ingress-D4"
}

更新和管理高级入口

若要更新环境的高级入口设置,请运行以下命令:

az containerapp env premium-ingress update \
  --resource-group my-resource-group \
  --name my-container-apps-env \
  --workload-profile-name Ingress-D4 \
  --termination-grace-period 500 \
  --request-idle-timeout 4 \
  --header-count-limit 100

若要显示环境的高级入口设置,请运行以下命令:

az containerapp env premium-ingress show \
  --resource-group my-resource-group \
  --name my-container-apps-env

若要删除环境的高级入口设置,请运行以下命令:

az containerapp env premium-ingress remove \
  --resource-group my-resource-group \
  --name my-container-apps-env

若要从环境中删除工作负荷配置文件,请运行以下命令:

az containerapp env workload-profile delete \
  --resource-group my-resource-group \
  --name my-container-apps-env \
  --workload-profile-name Ingress-D4

先决条件

使用 Bicep 进行部署

创建以下 Bicep 文件并另存为 ingress.bicep

resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2025-07-01' = {
  name: 'my-container-app-env'
  location: 'chinanorth3'
  tags: tags
  properties: {
    workloadProfiles: [
      {
        name: 'Ingress-D4'
        workloadProfileType: 'D4'
        minimumCount: 2
        maximumCount: 4
      }
    ]
    ingressConfiguration: {
      workloadProfileName: 'Ingress-D4'
      terminationGracePeriodSeconds: 600
      headerCountLimit: 101
      requestIdleTimeout: 5
    }
  }
}              

此步骤使用高级入口配置部署容器应用环境,包括以下设置:

Name Description
name 用于高级入口的工作负荷配置文件的名称。
workloadProfileType 用于缩放和资源分配的工作负载配置文件(例如 D4)的类型/大小。
minimumCount 工作负荷配置文件的最小实例数。 最小值:2。
maximumCount 工作负荷配置文件的最大实例数。 最大值:50。
workloadProfileName 与入口配置相关联的工作负载配置文件名称。
terminationGracePeriodSeconds 允许活动连接在终止流入流量之前关闭的时间(以秒为单位)。 最小值:0,最大值:60。
headerCountLimit 每个请求允许的最大 HTTP 标头数。 默认值:100,最小值:1。
requestIdleTimeout 请求在断开连接之前可以保持空闲的时间(以分钟为单位)。 默认值:4,最小值:4,最大值:30。

部署到 Azure 云

导航到保存 ingress.bicep 文件的目录,然后运行以下命令来部署 Bicep 文件:

# Login to Azure (if not already logged in)
azd auth login

# Provision and deploy the infrastructure
azd up

管理部署

使用以下命令查看容器应用的状态和日志。

# Check deployment status
azd show

# Clean up all resources
azd down

# View deployment logs
azd logs

可以在创建环境后为环境配置入口。

  1. 在 Azure 门户中转到容器应用环境。

  2. 设置下选择网络

  3. 选择 “入口设置 ”选项卡。

  4. 根据以下设置配置入口设置。

    设置 价值
    入口模式 选择“高级”。
    工作负载配置文件大小 选择大小从 D4D32
    最小节点实例 输入最小工作负荷配置文件节点实例。
    最大节点实例数 输入最大工作负载配置文件节点实例。
    终止宽限期 输入终止宽限期(以分钟为单位)。
    空闲请求超时 输入空闲请求超时(以分钟为单位)。
    请求头计数 输入请求标头计数。
  5. 选择应用

监控和指标

入口指标可通过容器应用环境实例中的 Azure 门户获得。 在“监视”下,选择“指标”。 这些指标在启用默认入口或高级入口时可用。 额外的指标正在进行中。

  • 入口 CPU 使用率
  • 入口内存使用量字节数

基准测试表明,入口每秒可以处理大约 3000 个 CPU 核心的请求,但容量因应用程序使用情况而异。 如果应用程序接收请求的速度超过环境处理能力,并导致请求在入口层排队,那么内存往往会成为瓶颈。

在每个模式下分配给入口的资源包括:

模式 实例 CPU 内存 CPU 缩放阈值 内存扩展阈值
默认 2-10 1 个内核 2 GB 75% 50%
高级 每个节点一个 (最小 2) 节点核心的90% 节点内存的 90% 节点核心的 50% 节点内存的50%

清理资源

如果你不打算继续使用此应用程序,请运行以下命令以删除资源组以及本快速入门中创建的所有资源。

注意

以下命令删除指定的资源组及其包含的所有资源。 如果本快速入门范围之外的资源存在于指定的资源组中,则这些资源也会被删除。

az group delete --name my-container-apps