使用 Azure CLI 以交互方式创建 Azure 资源

已完成

在交互模式下,使用 Azure CLI 可立即输入并运行命令。

在客户关系管理 (CRM) 示例中,目标是创建三个包含虚拟机 (VM) 的测试环境。 使用资源组来确保将 VM 组织到不同的环境中:

  • 单元测试
  • 集成测试
  • 验收测试

由于只需创建一次资源组,因此为此任务以交互方式使用 Azure CLI 是一个合理的选择。

示例:如何使用 Azure CLI 创建资源组

让我们执行一个常见任务:创建资源组。 资源组可帮助你共同管理相关资源,创建新的资源组通常是启动新 Azure 解决方案时执行的首要任务之一。

下面是需要执行的三个步骤:

  1. 使用 az login 连接到 Azure。

  2. 使用 az account 处理 Azure 订阅。

  3. 使用 az group 处理资源组。

连接到 Azure

使用 Azure CLI 的本地安装时,在执行任何 Azure CLI 命令之前,必须进行身份验证。 az login 命令会提示输入 Azure 凭据,然后连接到 Azure 订阅。

要以交互方式连接,无需指定参数:

az login

此命令将打开输入 Azure 凭据的提示,并建立与 Azure 订阅的连接。

下面是使用 Azure CLI 对 Azure 进行身份验证时的一些便利提示:

  • 如果在 Azure Cloud Shell 中运行 Azure CLI...

    • 你已自动通过身份验证。
    • 可能需要更改默认订阅。
  • 通过本地安装运行 Azure CLI 时...

    • 系统会提示输入 Azure 凭据。
    • 登录时会出现订阅选择器。

使用订阅

如果你是 Azure 的新手,则只有一个订阅。 但是,如果你已使用 Azure 一段时间,则可能会有多个订阅。 Azure CLI 允许配置要对其执行命令的订阅。

每次只能在一个订阅中操作。 使用 az account show 引用命令确定哪个订阅当前处于活动状态。 如果不正确,可以使用 az account set 引用命令切换订阅。

  1. 获取所有订阅的列表,并以表格形式返回结果:

    az account list --output table
    
  2. 仅获取当前处于活动状态的订阅:

    az account show
    
  3. 更改活动订阅:

    az account set --subscription "00000000-0000-0000-0000-000000000000"
    

使用资源组

在 Azure 中创建资源时,将这些资源放入资源组,以便于管理。

要创建资源组,请使用 az group create 引用命令。 必须指定名称和位置,并且名称在订阅中必须唯一。 该位置决定资源组元数据的存储位置(出于符合性原因,这可能很重要)。 使用 az account list-locations 命令确定可用位置。

注意

如果在 Azure 沙盒中工作,则其会为你创建资源组。 如果更喜欢在自己的订阅中工作,请使用以下命令。

用于创建资源组的语法是:

az group create --name MyResourceGroup --location eastus

要检索包含活动订阅中所有资源组的列表,请使用 az group list 命令。

az group list

要想获得更简洁的视图,可以以表格形式返回列表:

az group list --output table

在开发和测试 Azure CLI 脚本时,最好创建一个名称中包含随机 ID 的资源组。 将随机 ID 添加到资源组名称后,即可重新测试代码,而无需等待之前同名的资源组从 Azure 中删除。

#!/bin/bash
let "randomIdentifier=$RANDOM*$RANDOM"
location="eastus"
resourceGroup="msdocs-rg-$randomIdentifier"
az group create --name $resourceGroup --location $location --output json

示例:创建一个 Azure 虚拟机

创建虚拟机 (VM) 是可以使用 Azure CLI 执行的一个常见任务。

az vm create 命令用于创建 VM。 此命令具有多个参数,用于处理 VM 的广泛配置设置。 大多数参数都有合理的默认值,因此我们通常只需要指定五个关键项:

  • resource-group:放置了新 VM 的资源组。
  • name:Azure 中 VM 的名称。
  • location:预配了 VM 的地理区域。
  • image:用于 VM 的操作系统映像,通常是 Linux 发行版或 Windows Server。
  • admin-username:VM 的管理员用户名。 系统会提示你在命令行中输入密码。

下面是一个 Bash 脚本示例:

#!/bin/bash

# Create variables
rgName="myResourceGroupName"
vmName="myVMname"
vmImage="Win2022AzureEditionCore"
vmAdminUserName="myAzureUserName"

# Create the VM
az vm create \
    --resource-group $rgName \
    --name $vmName \
    --image $vmImage \
    --public-ip-sku Standard \
    --admin-username $vmAdminUserName

示例:获取 VM 的信息

可使用 az vm list 命令列出订阅中的 VM。 此命令还支持通过指定 --name 参数来检索特定 VM。

下面介绍如何将 VM 的 ID 存储在变量中:

#!/bin/bash
rgName="myResourceGroupName"
vmID=$(az vm list --resource-group $rgName \
    --query "[?name=='myVMname'].id" --output tsv)
echo $vmID

使用 az vm update 命令更改 VM 的大小:

#!/bin/bash
rgName="myResourceGroupName"
vmName="msdocs-vm-01"
newVMsize="Standard_DS3_v2"

# Get the VM ID
vmID=$(az vm list --resource-group $rgName \
    --query "[?name=='$vmName'].id" --output tsv)

# Update the VM size
az vm update --ids $vmID --size $newVMsize

# Show the new properties of the VM
az vm show --resource-group $rgName --name $vmName

本练习演示了交互式 Azure CLI 会话的典型模式。 你先使用一个标准命令来创建新的资源组。 然后使用一组命令将资源(本示例中为 VM)部署到此资源组。 你可以将这组命令轻松地合并成一个 shell 脚本,并在每次需要创建相同资源时执行它。