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

Azure应用网关创建Private Endpoint报错,需调整哪段代码?

问题

尝试在Azure环境中为Application Gateway创建Private Endpoint时,尽管私用链接已存在且处于“Succeeded”状态,仍持续收到以下错误:

ERROR: (ApplicationGatewayPrivateLinkOperationError) 调用Microsoft.Network/applicationGateways失败。错误消息:无法对Application Gateway /subscriptions/26d8a9f9../resourceGroups/rg-dev-new-test5/providers/Microsoft.Network/applicationGateways/app-gateway-dev执行私用链接操作。请确保应用网关已配置私用链接。
代码:ApplicationGatewayPrivateLinkOperationError 消息:调用Microsoft.Network/applicationGateways失败。错误消息:无法对Application Gateway /subscriptions/26d8a9f9../resourceGroups/rg-dev-new-test5/providers/Microsoft.Network/applicationGateways/app-gateway-dev执行私用链接操作。请确保应用网关已配置私用链接。

已执行步骤:

  • 创建带有Application Gateway专用子网的Virtual Network。
  • 为Application Gateway创建Public IP。
  • 创建WAF Policy并关联到Application Gateway。
  • 成功部署带有WAF_v2 SKU的Application Gateway。
  • 尝试创建Private Endpoint。

复现问题的bash脚本:

#!/bin/bash
set -e
export MSYS_NO_PATHCONV=1

# Configurations
LOCATION="westeurope"
RG="rg-dev-new-test5"
VNET="vnet-ai-services-dev"
ADDR="10.0.0.0/16"
APPGW_SUBNET="app-gateway-subnet-dev"
APPGW_PREFIX="10.0.2.0/24"
PE_SUBNET="private-endpoint-subnet-dev"
PE_PREFIX="10.0.9.0/24"
APPGW="app-gateway-dev"
WAF="waf-policy-dev"
PIP="appgw-public-ip"
PRIVATE_LINK_CONFIG="appgw-private-link-config"
SUB_ID=$(az account show --query id -o tsv)

# Create Resource Group
az group create -n $RG -l $LOCATION

# Create Virtual Network with Application Gateway subnet
az network vnet create -g $RG -n $VNET --address-prefix $ADDR \
  --subnet-name $APPGW_SUBNET --subnet-prefix $APPGW_PREFIX

# Create Private Endpoint subnet
az network vnet subnet create -g $RG --vnet-name $VNET -n $PE_SUBNET \
  --address-prefixes $PE_PREFIX --disable-private-link-service-network-policies true

# Create Public IP for Application Gateway
az network public-ip create -g $RG -n $PIP --sku Standard --allocation-method Static

# Create WAF Policy
az network application-gateway waf-policy create -g $RG -n $WAF -l $LOCATION

# Construct WAF Policy ID
WAF_ID="/subscriptions/$SUB_ID/resourceGroups/$RG/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/$WAF"

# Create Application Gateway with WAF_v2 SKU and Priority
az network application-gateway create -n $APPGW -g $RG -l $LOCATION \
  --capacity 2 --sku WAF_v2 --vnet-name $VNET --subnet $APPGW_SUBNET \
  --public-ip-address $PIP --frontend-port 80 --http-settings-port 80 \
  --http-settings-protocol Http --routing-rule-type Basic --waf-policy $WAF_ID \
  --priority 100

# Get Application Gateway Frontend IP Configuration Name
FRONTEND_IP_NAME=$(az network application-gateway frontend-ip list  --gateway-name $APPGW --resource-group $RG  --query "[0].name"  -o tsv)

# Add Private Link Configuration to Application Gateway
az network application-gateway private-link add \
  --resource-group $RG \
  --gateway-name $APPGW \
  --name $PRIVATE_LINK_CONFIG \
  --frontend-ip $FRONTEND_IP_NAME \
  --subnet "/subscriptions/$SUB_ID/resourceGroups/$RG/providers/Microsoft.Network/virtualNetworks/$VNET/subnets/$PE_SUBNET"

# Get Private Link Configuration ID
PRIVATE_LINK_CONFIG_ID=$(az network application-gateway private-link show \
  --resource-group $RG \
  --gateway-name $APPGW \
  --name $PRIVATE_LINK_CONFIG \
  --query id -o tsv)

# Get Application Gateway ID
APPGW_ID=$(az network application-gateway show -n $APPGW -g $RG --query id -o tsv)

# Attempt to create Private Endpoint (expected to succeed if supported)
az network private-endpoint create -n "appgw-pe" -g $RG --vnet-name $VNET \
  --subnet $PE_SUBNET \
  --private-connection-resource-id $APPGW_ID \
  --group-id "gateway" \
  --connection-name "appgw-pec" \
  --location $LOCATION
解决方案

问题核心是创建Private Endpoint时,--private-connection-resource-id参数指向的资源错误:Azure要求Private Endpoint直接关联到Application Gateway的Private Link配置资源,而非网关实例本身。

需要调整脚本中创建Private Endpoint的代码段,将--private-connection-resource-id的值从$APPGW_ID替换为$PRIVATE_LINK_CONFIG_ID,同时保留--group-id "gateway"不变。

修改后的创建Private Endpoint命令如下:

# 创建Private Endpoint(修正后)
az network private-endpoint create -n "appgw-pe" -g $RG --vnet-name $VNET \
  --subnet $PE_SUBNET \
  --private-connection-resource-id $PRIVATE_LINK_CONFIG_ID \
  --group-id "gateway" \
  --connection-name "appgw-pec" \
  --location $LOCATION

额外建议:在获取PRIVATE_LINK_CONFIG_ID之后添加一段等待时间,确保Azure资源状态同步完成,避免因配置未完全生效导致的错误:

# 等待Private Link配置生效
sleep 30

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:10:55