如何通过Azure CLI为Azure API Management配置指定VNet/子网?
指定子网部署Azure API Management(Azure CLI)
你说得没错,只带--virtual-network参数的基础az apim create命令确实没法直接指定具体子网,但咱们可以用--virtual-network-config参数来解决,这个参数支持传入包含子网资源ID的JSON配置。下面是调整后的完整操作步骤:
1. 先获取目标子网的资源ID
首先需要拿到你之前创建的apim子网的资源ID,执行这条命令即可:
SUBNET_ID=$(az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name ${VNETNAME} --name apim --query id -o tsv)
2. 修改APIM创建命令,绑定指定子网
把原来命令里的--virtual-network ${APITYPE}替换成--virtual-network-config参数,传入包含子网ID和VNet类型的JSON配置。完整命令如下:
az apim create \ --name ${APIMNAME} \ --resource-group ${RESOURCE_GROUP} \ --location ${LOCATION} \ --sku-name ${SKU} \ --publisher-email ${PUBLISHEREMAIL} \ --publisher-name ${PUBLISHER} \ --virtual-network-config "{\"subnetResourceId\":\"${SUBNET_ID}\",\"type\":\"${APITYPE}\"}"
参数说明
--virtual-network-config:接受JSON格式字符串,其中subnetResourceId是我们刚获取的子网资源ID,type对应你原来定义的APITYPE(这里是External)。- 如果bash环境下转义双引号麻烦,也可以用单引号包裹外层JSON,写法如下:
--virtual-network-config '{"subnetResourceId":"'"${SUBNET_ID}"'","type":"'"${APITYPE}"'"}'
执行这条命令后,APIM就会被准确部署到你预先创建的apim子网中了。
内容的提问来源于stack exchange,提问作者One Developer
相关产品推荐
相关产品推荐

