Azure CLI 入门指南:从零开始掌握微软云命令行工具
引言:为何选择 Azure CLI?
在云计算时代,自动化和效率是核心竞争力。微软 Azure 作为全球领先的云平台之一,提供了多种管理方式:图形化的 Azure 门户(Portal)、PowerShell 命令行工具、以及我们今天的主角——Azure CLI (Command-Line Interface)。
对于初学者而言,Azure 门户直观易用,是了解各项服务的好起点。但随着你对 Azure 的熟悉,你会发现通过鼠标点击完成大量重复性任务效率低下,且难以自动化。这时,命令行工具就显得尤为重要。Azure CLI 是一个跨平台(Windows、macOS、Linux)的命令行工具,它允许你通过简单的文本命令来创建、配置、管理和删除几乎所有 Azure 资源。
选择 Azure CLI 的理由有很多:
- 自动化与脚本化: Azure CLI 的核心优势在于能够轻松地编写脚本,实现 Azure 资源的自动化部署、配置和管理。这对于 CI/CD (持续集成/持续部署)、批量操作、环境搭建等场景至关重要。
- 效率与速度: 对于熟悉命令行的用户来说,通过 Azure CLI 执行操作往往比在门户中导航和点击更快。
- 跨平台支持: 无论你使用 Windows、macOS 还是 Linux,都可以安装并运行 Azure CLI,提供了统一的操作体验。
- 轻量级: 相比 Azure PowerShell,Azure CLI 基于 Python 开发,通常安装包更小,启动更快。
- 学习曲线平缓(对于熟悉 CLI 的用户): 其命令结构清晰,易于学习和记忆。
- 适合开发人员: 开发人员可以轻松地将其集成到开发工作流和自动化脚本中。
如果你希望提升在 Azure 上的工作效率,或者需要进行自动化运维和开发,学习 Azure CLI 是一个非常值得投入的技能。本指南将带你从零开始,一步步安装 Azure CLI,并掌握其基础用法和核心资源的管理方法。
第一部分:Azure CLI 是什么?理解其作用与定位
Azure CLI 是微软 Azure 提供的一个开源、跨平台的命令行工具集。它允许用户通过终端或命令行提示符与 Azure 服务进行交互。本质上,Azure CLI 是一个包装了 Azure REST API 的工具,它将复杂的 REST API 调用转化为简单易懂的命令行命令。
与 Azure PowerShell 的区别在于,Azure CLI 通常更受习惯于 Bash、Zsh 或其他非 PowerShell shell 的用户欢迎。它的命令结构更加扁平化,例如 az group create
,而 PowerShell 的命令通常遵循 Verb-Noun 的格式,例如 New-AzResourceGroup
。选择哪个工具往往取决于个人的技术背景和团队的规范,但它们都能完成绝大多数 Azure 管理任务。在本指南中,我们将专注于 Azure CLI。
Azure CLI 可以安装在你的本地计算机上,也可以通过 Azure Cloud Shell 直接在浏览器中使用,后者无需任何本地安装。
第二部分:安装 Azure CLI
在使用 Azure CLI 之前,你需要先将其安装到你的操作系统上。安装过程相对简单,微软提供了针对主流操作系统的安装包或脚本。
2.1 Windows 上的安装
在 Windows 上安装 Azure CLI 最常见的方式是使用 MSI 安装程序或 Winget。
方法一:使用 MSI 安装程序 (推荐)
- 打开浏览器,访问 Azure CLI 的官方安装页面:https://aka.ms/installazurecliwindows
- 下载最新的 MSI 安装程序。
- 双击下载的 MSI 文件,按照向导提示进行安装。安装过程非常直接,基本上就是“下一步”直到完成。
- 安装完成后,打开命令提示符 (Command Prompt)、PowerShell 或 Windows Terminal。
方法二:使用 Winget
如果你的 Windows 版本支持 Winget (Windows Package Manager),你可以通过命令行安装:
bash
winget install -e --id Microsoft.AzureCLI
安装完成后,同样需要打开新的终端窗口。
2.2 macOS 上的安装
在 macOS 上,推荐使用 Homebrew 进行安装。
- 如果你还没有安装 Homebrew,请先安装它。打开终端,执行以下命令:
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 使用 Homebrew 安装 Azure CLI:
bash
brew update && brew install azure-cli
Homebrew 会自动处理依赖关系并完成安装。
2.3 Linux 上的安装
在 Linux 上,安装方法取决于你使用的发行版。微软提供了针对 Debian/Ubuntu、RHEL/CentOS/AlmaLinux/Rocky Linux、Mariner 和 openSUSE/SLES 的包管理安装方式,以及一个通用的安装脚本。
方法一:使用包管理器 (推荐)
以 Debian/Ubuntu 为例:
- 导入微软的 GPG 密钥:
bash
curl -sL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null - 添加 Azure CLI 软件源:
bash
AZ_REPO=$(lsb_release -cs)
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ ${AZ_REPO} main" | sudo tee /etc/apt/sources.list.d/azure-cli.list - 更新包索引并安装 Azure CLI:
bash
sudo apt-get update
sudo apt-get install azure-cli
以 RHEL/CentOS/AlmaLinux/Rocky Linux 为例:
- 创建 repo 文件:
bash
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/azure-cli.repo - 安装 Azure CLI:
bash
sudo yum install azure-cli # 或 dnf install azure-cli (对于较新版本)
方法二:使用安装脚本 (适用于各种 Linux 发行版)
微软提供了一个便捷的安装脚本,可以检测你的发行版并进行安装:
“`bash
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash # 对于 Debian/Ubuntu
或
curl -sL https://aka.ms/InstallAzureCLIRPM | sudo bash # 对于 RHEL/CentOS/等
或者使用更通用的脚本(可能需要安装依赖):
bash
curl -L https://aka.ms/InstallAzureCli | bash
“`
2.4 验证安装
无论你使用哪种方法安装,安装完成后打开一个新的终端或命令行窗口,运行以下命令验证:
bash
az --version
如果安装成功,你应该会看到 Azure CLI 的版本信息以及它所依赖的 Python 版本等信息。
2.5 Azure Cloud Shell (无需安装)
如果你不想在本地安装 Azure CLI,或者需要在没有本地安装的机器上使用它,Azure Cloud Shell 是一个绝佳的选择。Azure Cloud Shell 是一个托管在 Azure 中的交互式 shell 环境,它已经预装了 Azure CLI、Azure PowerShell 以及其他常用工具。
你可以在 Azure 门户中点击右上角的 Cloud Shell 图标来启动它,或者直接访问 shell.azure.com。首次使用会提示你创建存储帐户来持久化文件,按照提示操作即可。Cloud Shell 支持 Bash 和 PowerShell 两种模式,切换非常方便。
第三部分:Azure CLI 基础用法
安装并验证 Azure CLI 后,就可以开始使用了。本部分将介绍如何登录 Azure、理解命令结构以及获取帮助。
3.1 登录 Azure (az login
)
在使用 Azure CLI 管理资源之前,你需要先进行身份验证,告诉 Azure 你是谁,以及你有权访问哪些资源。az login
命令用于此目的。
bash
az login
执行此命令后,Azure CLI 会在你的默认浏览器中打开一个页面,提示你输入 Azure 账户的凭据(用户名和密码)。成功登录后,浏览器页面会显示成功信息,并且命令行窗口也会显示你的账户信息,包括订阅 ID、租户 ID 等。
注意: 如果你在没有图形界面的服务器上运行 az login
,或者浏览器没有自动弹出,命令会提供一个设备代码(Device Code)和验证 URL。你需要在一个有浏览器的设备上访问该 URL,然后输入设备代码完成登录。
一个账户可能关联多个 Azure 订阅。登录成功后,Azure CLI 会默认使用你在 Azure 门户中设置为默认的订阅。你可以通过以下命令查看你的所有订阅:
bash
az account list --output table
-o table
参数指定以表格形式输出结果,更易于阅读。你也可以使用 -o json
(默认)、-o tsv
、-o yaml
或 -o none
。
如果要切换到另一个订阅,可以使用 az account set
命令,提供订阅 ID 或订阅名称:
bash
az account set --subscription "你的订阅 ID 或名称"
3.2 命令结构 (az <group> <command> <subcommand> --parameter <value>
)
Azure CLI 的命令遵循一个相对统一的结构:az <组> <命令> <子命令> --参数 <值>
。
az
: 这是所有 Azure CLI 命令的起始。<组>
(group): 代表 Azure 服务或功能区域,例如group
(资源组)、vm
(虚拟机)、storage
(存储)、network
(网络)、aks
(Azure Kubernetes Service) 等。<命令>
(command): 在特定组内执行的操作,例如create
(创建)、list
(列出)、show
(显示)、delete
(删除) 等。<子命令>
(subcommand) (可选): 某些服务或操作需要进一步细分,例如az storage account list
中,account
就是storage
组下的一个子命令。--参数
(parameter): 指定命令的各种选项和配置,例如--name
(名称)、--resource-group
(资源组)、--location
(位置/区域) 等。参数通常使用双破折号开头,后面跟着参数名,然后是参数值。有些常用参数有缩写形式,例如--resource-group
可以缩写为-g
,--name
可以缩写为-n
,--location
可以缩写为-l
。
示例: 创建一个资源组的命令 az group create --name MyResourceGroup --location eastasia
就可以理解为:使用 az
工具,在 group
组下执行 create
命令,指定 --name
参数的值为 MyResourceGroup
,--location
参数的值为 eastasia
。
3.3 获取帮助 (az --help
)
Azure CLI 内置了非常详细的帮助文档。这是学习和使用 Azure CLI 最重要的资源之一。你可以通过 --help
参数或 -h
缩写来获取任何命令、组或子命令的帮助信息。
- 获取所有顶级组的帮助:
bash
az --help - 获取特定组(例如
group
)的帮助:
bash
az group --help
这将显示group
组下所有可用的命令(如create
,delete
,list
,show
)。 - 获取特定命令(例如
group create
)的帮助:
bash
az group create --help
这将显示az group create
命令的详细用法、所有可用参数、参数的说明以及一些使用示例。
阅读帮助文档是掌握 Azure CLI 命令的关键。当你对某个命令或参数不确定时,第一时间就应该查阅帮助。
第四部分:通过 Azure CLI 管理核心资源
掌握了基础用法后,我们来学习如何使用 Azure CLI 管理 Azure 中最常用的一些核心资源:资源组、虚拟机、存储账户和虚拟网络。
4.1 资源组 (Resource Groups)
资源组是 Azure 中资源的逻辑容器。将相关的资源(如虚拟机、存储账户、虚拟网络等)放入同一个资源组是管理 Azure 资源的重要最佳实践,因为它便于资源的统一管理、监控、访问控制和生命周期管理。
-
创建资源组:
bash
az group create --name MyResourceGroupCLI --location eastasia
# 或者使用缩写:
az group create -n MyResourceGroupCLI -l eastasia
-n
参数指定资源组的名称,-l
参数指定资源组所在的 Azure 区域(位置)。选择一个离你或你的用户近的区域,或者根据合规性要求选择。 -
列出资源组:
bash
az group list -o table
这将列出当前活动订阅下的所有资源组及其位置和状态。 -
显示特定资源组的详细信息:
bash
az group show -n MyResourceGroupCLI
这将以 JSON 格式输出MyResourceGroupCLI
资源组的所有详细属性。 -
删除资源组: 删除资源组会删除其中包含的所有资源,这是一个不可逆的操作!
bash
az group delete -n MyResourceGroupCLI
执行此命令后,CLI 会要求你确认。如果你在脚本中执行此操作,可以使用--yes
(或-y
) 参数跳过确认提示:
bash
az group delete -n MyResourceGroupCLI -y
4.2 虚拟机 (Virtual Machines)
虚拟机 (VM) 是 Azure 计算服务的核心。使用 Azure CLI 创建和管理 VM 是非常常见的任务。创建一个 VM 通常需要指定资源组、名称、镜像 (Image)、大小 (Size)、用户名和身份验证方式(密码或 SSH 密钥)。
-
创建虚拟机: 这是相对复杂的命令,因为它背后会创建多个依赖资源(网络接口、公网 IP、网络安全组、磁盘等)。Azure CLI 的
az vm create
命令简化了这个过程,它可以自动创建这些依赖。
bash
az vm create \
--resource-group MyResourceGroupCLI \
--name MyVMCLI \
--image UbuntuLTS \
--size Standard_B1s \
--admin-username azureuser \
--generate-ssh-keys \
--location eastasia # 通常继承自资源组位置,但显式指定更清晰--resource-group (-g)
: 指定 VM 所属的资源组。--name (-n)
: 指定 VM 的名称。--image
: 指定要使用的操作系统镜像。可以使用别名 (如UbuntuLTS
,Win2019Datacenter
) 或 URN。--size (-s)
: 指定 VM 的大小(CPU、内存、磁盘类型等)。例如Standard_B1s
是一个经济实惠的突发性能实例。--admin-username
: 指定虚拟机的管理员用户名。--generate-ssh-keys
: 重要且推荐。这会在本地生成 SSH 密钥对(如果不存在),并将公钥上传到 VM 以进行 SSH 登录。私钥保存在~/.ssh
目录下。对于 Windows VM,通常使用--admin-password
参数指定密码。--location (-l)
: 指定 VM 的部署区域。
执行此命令需要一些时间。成功后,会输出 VM 的详细信息,包括公网 IP 地址 (Public IP address)。
-
列出虚拟机:
bash
az vm list -o table
列出当前订阅下的所有 VM。bash
az vm list -g MyResourceGroupCLI -o table
列出特定资源组下的所有 VM。 -
显示特定虚拟机的详细信息:
bash
az vm show -g MyResourceGroupCLI -n MyVMCLI
这会输出 VM 的所有属性,包括网络接口、IP 地址、操作系统信息等。如果你只想看部分信息,可以使用--query
参数(稍后介绍)。 -
获取虚拟机的公网 IP 地址:
bash
az vm list-ip-addresses -g MyResourceGroupCLI -n MyVMCLI -o table -
启动、停止、重启虚拟机:
bash
az vm start -g MyResourceGroupCLI -n MyVMCLI
az vm stop -g MyResourceGroupCLI -n MyVMCLI
az vm restart -g MyResourceGroupCLI -n MyVMCLI
az vm deallocate -g MyResourceGroupCLI -n MyVMCLI # 解分配,释放计算资源(停止计费),保留磁盘和IP -
删除虚拟机: 删除 VM 时通常会删除其相关的默认创建的资源(如网卡、公网IP),但不会删除关联的磁盘。
bash
az vm delete -g MyResourceGroupCLI -n MyVMCLI
同样,可以使用-y
参数跳过确认。
4.3 存储账户 (Storage Accounts)
Azure 存储提供了多种数据存储服务,如 Blob 存储(非结构化数据)、文件存储(共享文件)、队列存储(消息队列)和表存储(结构化 NoSQL 数据)。存储账户是所有这些服务的命名空间。
-
创建存储账户: 存储账户名称必须全局唯一且只能包含小写字母和数字。
bash
az storage account create \
--name mystorageaccountcliexample12345 \
--resource-group MyResourceGroupCLI \
--location eastasia \
--sku Standard_LRS \
--kind StorageV2--name (-n)
: 指定存储账户的名称(全局唯一)。--resource-group (-g)
: 指定资源组。--location (-l)
: 指定区域。--sku
: 指定性能和复制选项。Standard_LRS
表示标准性能、本地冗余存储。还有Standard_GRS
(地理冗余)、Premium_LRS
(高级性能) 等。--kind
: 指定账户类型。StorageV2
是最新推荐的通用类型,支持所有存储服务。
-
列出存储账户:
bash
az storage account list -o table
或列出特定资源组下的:
bash
az storage account list -g MyResourceGroupCLI -o table -
显示特定存储账户的详细信息:
bash
az storage account show -g MyResourceGroupCLI -n mystorageaccountcliexample12345 -
获取存储账户连接字符串或密钥: 连接字符串或密钥用于从应用程序访问存储账户。
bash
az storage account show-connection-string -g MyResourceGroupCLI -n mystorageaccountcliexample12345 -o table
az storage account keys list -g MyResourceGroupCLI -n mystorageaccountcliexample12345 -o table -
创建 Blob 容器: 在 Blob 存储中,数据存储在容器中。
bash
az storage container create --account-name mystorageaccountcliexample12345 --name mycontainercli --public-access off--account-name
: 指定所属存储账户。--name
: 指定容器名称。--public-access
: 指定公共访问级别,off
是最安全的。
-
上传/下载 Blob: (需要安装存储扩展
az extension add --name storage
)
bash
# 上传文件
az storage blob upload --account-name mystorageaccountcliexample12345 --container-name mycontainercli --name myblob.txt --file /path/to/local/file.txt
# 下载文件
az storage blob download --account-name mystorageaccountcliexample12345 --container-name mycontainercli --name myblob.txt --file /path/to/local/downloaded_file.txt -
删除存储账户:
bash
az storage account delete -g MyResourceGroupCLI -n mystorageaccountcliexample12345 -y
4.4 虚拟网络与子网 (Virtual Network & Subnets)
虚拟网络 (VNet) 是你在 Azure 中的专属私有网络,它允许你在一个隔离的环境中安全地相互通信资源。子网 (Subnet) 是虚拟网络中的 IP 地址范围划分。
-
创建虚拟网络:
bash
az network vnet create \
--name MyVNetCLI \
--resource-group MyResourceGroupCLI \
--location eastasia \
--address-prefix 10.0.0.0/16--name (-n)
: VNet 名称。--resource-group (-g)
: 资源组。--location (-l)
: 区域。--address-prefix
: 为 VNet 指定一个或多个 CIDR 块,这是 VNet 的 IP 地址空间。
-
创建子网: 子网必须位于其所属 VNet 的地址空间内。
bash
az network vnet subnet create \
--name MySubnetCLI \
--resource-group MyResourceGroupCLI \
--vnet-name MyVNetCLI \
--address-prefix 10.0.0.0/24--name (-n)
: 子网名称。--resource-group (-g)
: 资源组。--vnet-name
: 指定子网所属的 VNet 名称。--address-prefix
: 为子网指定一个或多个 CIDR 块。
-
列出虚拟网络:
bash
az network vnet list -o table
或特定资源组下:
bash
az network vnet list -g MyResourceGroupCLI -o table -
显示特定 VNet 详细信息:
bash
az network vnet show -g MyResourceGroupCLI -n MyVNetCLI -
列出子网:
bash
az network vnet subnet list -g MyResourceGroupCLI --vnet-name MyVNetCLI -o table -
删除 VNet 或子网: 删除 VNet 前必须先删除其中包含的资源(如虚拟机网卡)。
bash
az network vnet subnet delete -g MyResourceGroupCLI --vnet-name MyVNetCLI -n MySubnetCLI -y
az network vnet delete -g MyResourceGroupCLI -n MyVNetCLI -y
第五部分:进阶使用技巧
掌握了基本命令后,以下是一些可以提升 Azure CLI 使用效率的进阶技巧。
5.1 输出格式 (--output
/ -o
)
前面提到过,--output
参数可以改变命令的输出格式。默认是 JSON。常用的格式包括:
json
(默认): 标准 JSON 格式,适合脚本解析。jsonc
: 带颜色高亮和缩进的 JSON,适合人类阅读。table
: 格式化的表格,适合快速概览。tsv
: Tab 分隔的值,适合导入到电子表格或文本处理工具。yaml
: YAML 格式,另一种适合阅读和脚本化的格式。none
: 没有输出,用于只需要执行操作而不需要结果的场景。
示例:
“`bash
以表格形式列出VM
az vm list -o table
以YAML形式显示某个资源组信息
az group show -n MyResourceGroupCLI -o yaml
“`
5.2 使用 --query
参数过滤和转换输出
--query
参数结合 JMESPath 查询语言是 Azure CLI 中非常强大的功能,它允许你从 JSON 输出中提取、过滤和转换数据。这对于自动化脚本尤其有用。
JMESPath 的语法类似 Python 字典和列表的操作。
示例:
-
列出所有 VM 的名称和位置:
bash
az vm list -o json --query "[].{Name:name, Location:location}" -o table
这里:[]
表示遍历 JSON 数组中的每个元素 (每个 VM 对象)。.{...}
表示创建一个新的对象。Name:name
表示将原始对象中的name
属性值赋给新对象的Name
属性。Location:location
同理。- 最后的
-o table
将结果格式化为表格。
-
获取某个 VM 的公网 IP 地址:
bash
az vm show -g MyResourceGroupCLI -n MyVMCLI -o json --query "publicIpAddress"
这里直接查询根对象下的publicIpAddress
属性。 -
获取某个 VM 的私有 IP 地址:
bash
az vm show -g MyResourceGroupCLI -n MyVMCLI -o json --query "privateIpAddress"
(更准确地说,IP 地址信息在网络接口配置中,复杂的查询可能需要networkProfile.networkInterfaces[0].ipConfigurations[0].privateIpAddress
,但az vm show
会将常用 IP 提升到根层级,方便查询)
学习 JMESPath 可以极大地提高你处理 Azure CLI 输出的能力。
5.3 脚本化与自动化
Azure CLI 最大的价值在于其脚本化能力。你可以将一系列 Azure CLI 命令放入 .sh
(Bash)、.ps1
(PowerShell) 或 .py
(Python) 文件中,然后执行这些脚本来实现复杂、可重复的操作。
Bash 脚本示例 (创建资源组和存储账户):
“`bash
!/bin/bash
RESOURCE_GROUP_NAME=”MyAutomatedRG_$(date +%s)” # 使用时间戳确保名称唯一
LOCATION=”eastasia”
STORAGE_ACCOUNT_NAME=”autostorage$(date +%s | md5sum | cut -c 1-10)” # 使用时间戳和hash确保名称唯一
echo “创建资源组: $RESOURCE_GROUP_NAME 在 $LOCATION”
az group create –name $RESOURCE_GROUP_NAME –location $LOCATION
if [ $? -eq 0 ]; then # 检查上一个命令是否成功
echo “资源组创建成功。”
echo “创建存储账户: $STORAGE_ACCOUNT_NAME”
az storage account create \
–name $STORAGE_ACCOUNT_NAME \
–resource-group $RESOURCE_GROUP_NAME \
–location $LOCATION \
–sku Standard_LRS \
–kind StorageV2
if [ $? -eq 0 ]; then
echo “存储账户创建成功。”
# 可以在这里添加更多操作,比如创建容器等
else
echo “错误: 存储账户创建失败。”
exit 1
fi
else
echo “错误: 资源组创建失败。”
exit 1
fi
echo “自动化脚本执行完成。”
``
.sh` 文件,然后在 Bash 环境中执行(例如在 Linux 或 macOS 终端,或 Windows 上的 WSL/Git Bash 中)。
你可以将以上内容保存为
5.4 使用扩展 (Extensions)
Azure CLI 是模块化的,核心功能包含在主包中。对于一些特定的服务或预览功能,功能被打包在扩展中。当你第一次尝试使用某个服务的命令时,Azure CLI 可能会提示你需要安装相应的扩展。
- 安装扩展:
bash
az extension add --name <extension-name> # 例如 az extension add --name aks - 列出已安装的扩展:
bash
az extension list -o table - 更新扩展:
bash
az extension update --name <extension-name>
5.5 配置默认值 (az configure
)
你可以使用 az configure
命令设置一些常用的默认值,例如默认的资源组、区域或输出格式,这样在执行命令时就不需要每次都显式指定这些参数了。
bash
az configure
执行此命令后,它会进入一个交互式模式,询问你想要设置哪些默认值。你也可以直接指定参数:
bash
az configure --defaults location=eastasia group=MyResourceGroupCLI output=table
设置后,以后执行 az vm list
等命令时,如果省略了 -l
和 -g
参数,就会使用这里配置的默认值。
第六部分:常见问题与故障排除
- “az: command not found”: Azure CLI 未正确安装,或者安装目录未添加到系统的 PATH 环境变量中。请重新检查安装步骤并确保新的终端窗口已经打开。
- 登录问题: 浏览器未弹出或登录失败。尝试清除浏览器缓存或使用
az login --use-device-code
手动使用设备代码登录。检查网络连接是否正常。 - 权限不足: “AuthorizationFailed” 或类似的错误。这意味着你登录的账户没有执行该操作所需的权限。你需要具有适当的 Azure RBAC (Role-Based Access Control) 角色。请联系你的 Azure 管理员为你分配所需的角色(例如 Contributor、Owner 或特定服务的角色)。
- 资源未找到: “ResourceNotFound” 错误。检查资源名称、资源组名称是否正确,以及当前活动的订阅是否包含了该资源。使用
az account show
检查当前订阅。 - 命令参数错误: 仔细阅读命令的帮助文档 (
az <command> --help
),检查是否使用了正确的参数名和值。 - 查看详细错误信息: 在命令后面加上
--debug
参数可以获取更详细的日志输出,这对于诊断问题非常有帮助。
第七部分:最佳实践
- 使用资源组组织资源: 这是 Azure 管理的基础,也是使用 Azure CLI 进行高效管理的前提。
- 使用
--output
和--query
: 充分利用--output
选择合适的输出格式,并学习使用--query
提取关键信息,特别是在编写脚本时。 - 利用脚本进行重复性任务: 将你的部署、配置和管理步骤脚本化,提高效率并确保一致性。
- 使用
--yes (-y)
时要谨慎: 在脚本中使用-y
可以避免交互,但在手动执行删除等破坏性操作时,保留确认提示更安全。 - 保持 Azure CLI 更新: 定期运行
az upgrade
或通过包管理器更新,以获取新功能、错误修复和对新 Azure 服务的支持。 - 理解 RBAC: 知道你需要哪些权限来执行特定操作,并遵循最小权限原则。
- 从简单开始: 先从创建资源组、部署一个简单的 Web 应用或 VM 开始,逐步熟悉不同的服务和命令。
第八部分:总结与下一步
恭喜你!通过本指南,你已经了解了 Azure CLI 的基本概念、安装方法、基础用法以及如何管理一些核心的 Azure 资源,并掌握了一些进阶技巧。Azure CLI 是一个功能强大且用途广泛的工具,它是管理 Azure 环境、实现自动化和提高工作效率不可或缺的一部分。
这只是一个开始。Azure 平台庞大且功能众多,Azure CLI 支持的命令也极为丰富。
下一步学习建议:
- 查阅官方文档: Azure CLI 的官方文档是最好的参考资料。访问 https://docs.microsoft.com/cli/azure/,查找特定命令的详细信息和示例。
- 探索更多服务: 尝试使用 Azure CLI 管理其他 Azure 服务,如 Azure Web Apps (
az webapp
)、数据库 (如az sql db
或az cosmosdb
)、容器服务 (az aks
或az acr
) 等。 - 深入学习 JMESPath: 掌握 JMESPath 查询语言将极大地提升你处理 CLI 输出的能力。查阅 JMESPath 官方文档。
- 练习脚本编写: 尝试将一些日常的 Azure 操作编写成自动化脚本。
- 参加 Microsoft Learn 课程: Microsoft Learn 提供了许多关于 Azure CLI 和自动化的免费在线学习路径。
持续实践是掌握 Azure CLI 的关键。现在就开始使用它来管理你的 Azure 资源吧!
祝你学习顺利!