使用 Azure CLI 管理 Web 流量

此脚本创建使用虚拟机规模集作为后端服务器的应用程序网关。 然后,可以对应用程序网关进行配置来管理 Web 流量。 在运行脚本后,可以使用应用程序网关的公用 IP 地址测试该网关。

若要运行此示例,请确保已安装最新的 Azure CLI 2.0。 若要开始,请运行 az login 以创建与 Azure 的连接。

Note

在运行 az login 之前,请先运行 az cloud set -n AzureChinaCloud 以更改云环境。 如果要切换回全球 Azure,请再次运行 az cloud set -n AzureCloud

此示例在 Bash shell 中正常工作。 有关在 Windows 客户端上运行 Azure CLI 脚本的选项,请参阅在 Windows 上安装 Azure CLI

如果没有 Azure 订阅,可在开始前创建一个试用帐户

示例脚本

# Create a resource group
az group create --name myResourceGroupAG --location chinanorth

# Create network resources
az network vnet create `
  --name myVNet `
  --resource-group myResourceGroupAG `
  --location chinanorth `
  --address-prefix 10.0.0.0/16 `
  --subnet-name myAGSubnet `
  --subnet-prefix 10.0.1.0/24
az network vnet subnet create `
  --name myBackendSubnet `
  --resource-group myResourceGroupAG `
  --vnet-name myVNet `
  --address-prefix 10.0.2.0/24
az network public-ip create `
  --resource-group myResourceGroupAG `
  --name myAGPublicIPAddress

# Create the application gateway
az network application-gateway create `
  --name myAppGateway `
  --location chinanorth `
  --resource-group myResourceGroupAG `
  --vnet-name myVNet `
  --subnet myAGsubnet `
  --capacity 2 `
  --sku Standard_Medium `
  --http-settings-cookie-based-affinity Disabled `
  --frontend-port 80 `
  --http-settings-port 80 `
  --http-settings-protocol Http `
  --public-ip-address myAGPublicIPAddress

# Create a virtual machine scale set
az vmss create `
  --name myvmss `
  --resource-group myResourceGroupAG `
  --image UbuntuLTS `
  --admin-username azureuser `
  --admin-password Azure123456! `
  --instance-count 2 `
  --vnet-name myVNet `
  --subnet myBackendSubnet `
  --vm-sku Standard_DS2 `
  --upgrade-policy-mode Automatic `
  --app-gateway myAppGateway `
  --backend-pool-name appGatewayBackendPool

# Install NGINX
az vmss extension set `
  --publisher Microsoft.Azure.Extensions `
  --version 2.0 `
  --name CustomScript `
  --resource-group myResourceGroupAG `
  --vmss-name myvmss `
  --settings '{ "fileUris": ["https://raw.githubusercontent.com/davidmu1/samplescripts/master/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'

# Get the IP address
az network public-ip show `
  --resource-group myResourceGroupAG `
  --name myAGPublicIPAddress `
  --query [ipAddress] `
  --output tsv

清理部署

运行以下命令来删除资源组、应用程序网关和所有相关资源。

az group delete --name myResourceGroupAG --yes

脚本说明

此脚本使用以下命令创建部署。 表中的每一项均链接到特定于命令的文档。

命令 注释
az group create 创建用于存储所有资源的资源组。
az network vnet create 创建虚拟网络。
az network vnet subnet create 在虚拟网络中创建子网。
az network public-ip create 创建应用程序网关的公用 IP 地址。
az network application-gateway create 创建应用程序网关。
az vmss create 创建虚拟机规模集。
az network public-ip show 获取应用程序网关的公共 IP 地址。

后续步骤

有关 Azure CLI 的详细信息,请参阅 Azure CLI 文档

可以在 Azure Windows VM 文档中找到其他应用程序网关 CLI 脚本示例。