以交互方式执行 Azure CLI 命令

已完成

交互式模式下Azure CLI 允许你立即输入并运行命令。 如果只需要创建一些 Azure 资源,手动执行 Azure CLI 命令是一个合理的选择。

使用 Azure CLI 创建存储帐户

让我们执行一个常见任务:创建 Azure 存储帐户。 下面是需要遵循的四个步骤:

  1. 连接到 Azure 使用az login

  2. 使用 Azure 订阅进行操作az account.

  3. 使用az group create创建资源组(如果需要)。

  4. 使用 . az storage account create

步骤 1:连接到 Azure

由于使用的是本地 Azure CLI 安装,因此需要先进行身份验证,然后才能执行 Azure 命令。 使用以下命令登录到 az login

az login

Azure CLI 通常会启动默认浏览器以打开 Azure 登录 页。

如果不起作用,请按照命令行说明作,并在 “输入代码 ”对话框中输入授权代码。

成功登录后,已连接到 Azure 订阅

重要

从 2025 年开始,MicrosoftAzure CLI 和其他命令行工具强制实施强制多重身份验证(MFA)。 新的 MFA 要求会影响 Microsoft Entra ID 用户标识。 它们不会影响工作负荷标识,例如 服务主体托管标识

步骤 2:验证订阅

如果有权访问多个 Azure 订阅,请验证默认订阅:

az account show --output table
EnvironmentName    HomeTenantId                          IsDefault    Name                               State    TenantId
-----------------  ------------------------------------  -----------  ---------------------------------  -------  ------------------------------------
AzureCloud         aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e  True         My Production Subscription         Enabled  aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e

如果要更改默认订阅:

az account set --subscription "the name of a different subscription or subscription ID"

步骤 3:创建资源组

Azure 资源组Azure 资源的容器。 资源组 使 Azure 资源 保持井然有序,并帮助管理安全性和成本。 资源组名称在订阅内必须唯一,并且必须获配地理位置

  1. 查找可用于默认订阅的 Azure 位置

    az account list-locations --output table
    
    DisplayName               Name                 RegionalDisplayName
    ------------------------  -------------------  -------------------------------------
    East US                   eastus               (US) East US
    South Central US          southcentralus       (US) South Central US
    West US 2                 westus2              (US) West US 2
    West US 3                 westus3              (US) West US 3
    Australia East            australiaeast        (Asia Pacific) Australia East
    ... <more regions here>
    
  2. 使用变量创建 资源组

    由于此模块是高级模块,让我们开始使用随机标识符和 Bash 变量。 使用随机 ID 可以重复测试脚本,而无需等待删除上一测试的 资源组

    # Variable block
    let "randomIdentifier=$RANDOM*$RANDOM"
    location="westus2"
    resourceGroup="msdocs-rg-$randomIdentifier"
    
    # Create the resource group
    az group create --name $resourceGroup --location $location --output json
    

步骤 4:创建存储帐户

使用创建的 资源组 创建 存储帐户。 用您在上一步中创建的资源组的名称替换<msdocs-rg-0000000>存储帐户 名称只能包含小写字母和数字。

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="westus2"
resourceGroup="<msdocs-rg-0000000>"
storageAccount="msdocssa$randomIdentifier"

# Create the storage account
echo "Creating storage account $storageAccount in resource group $resourceGroup"
az storage account create --name $storageAccount \
                          --resource-group $resourceGroup \
                          --location $location \
                          --sku Standard_RAGRS \
                          --kind StorageV2 \
                          --output json

小窍门

反斜杠 (\) 是 Bash 中的行继续符。 它允许跨多行拆分长命令,以提高可读性。

步骤 5:验证资源创建

对于大多数 Azure 命令组,Azure CLI 提供 listshow 命令,可用于获取资源详细信息

  1. 验证是否已创建新的 存储帐户

    az storage account list
    

    若要获取更简洁的信息,可以将输出的格式设置为简单表:

    az storage account list --output table
    
  2. 如果有多个 存储帐户,请使用 --query 参数筛选返回值:

    # Get a list of all storage accounts created in the last 30 days
    saDate=$(date +%F -d "-30days")
    az storage account list --resource-group <msdocs-rg-00000000> \
        --query "[?creationTime >='$saDate'].{saName:name, saID: id, sku: sku.name}"
    
    # Get a list of all storage accounts that contain the word 'msdocs'
    az storage account list --resource-group $rgName \
        --query "[?contains(name, 'msdocs')].{saName:name, saKind:kind, saPrimaryLocation:primaryLocation, createdTimeStamp:creationTime}" \
        --output table
    

注释

使用--query格式化参数字符串,这是一种用于JSON请求的标准查询语言。 在 JMESPath 教程中了解详细信息。

清理资源

使用随机 ID 并运行这些模块步骤可创建可删除的测试 资源组 。 清理 Azure 资源 的最简单方法是删除 资源组。 但是,删除 资源组时,会删除组中的每个对象,因此请务必删除正确的 资源组 名称!

# Get a list of resource groups in the active subscription
az group list --output table

# Delete a resource group and do not wait for the operation to finish
az group delete --name <msdocs-rg-0000000> --no-wait

小窍门

--no-wait 参数允许删除操作在后台运行,从而释放命令行用于其他任务。

手动执行复杂或重复的任务可能非常耗时且容易出错。 许多组织倾向于自动执行这些任务,以降低成本并避免错误。 使用 Azure CLI 脚本自动创建 Azure 资源 比手动创建一个资源更高效、更可靠。