过去,管理云基础设施往往意味着无数小时在网页门户中点击、在无尽的菜单里穿梭。经历数月对手工流程的挫败之后,发现 Azure CLI 完全改变了我对 云资源管理 的方式。这不只是另一份安装指南;而是您掌握微软这款最强大的跨平台 Azure 管理工具的路线图。
> 从 Azure Cloud Shell 入手,无需安装即可立即使用。
Azure CLI 在所有主流操作系统上提供一致而强大的 Azure 资源管理体验。
什么是 Azure CLI?
Azure CLI 是控制云资源的最直接方式。相比浏览器的局限,它提供了一个强大、可脚本化的接口,直接与核心 Azure API 对话。这让您能够在任意操作系统上,用一致可靠的命令进行大规模自动化。
我喜欢 CLI 的一点在于:学习阶段它便于探索服务,等准备正式搭建时,又能把这些步骤原封不动地固化成脚本。秘诀不在于死记硬背命令,而在于善用 az find 或 --help 标志来获取帮助。
Azure CLI 基于 Azure Resource Manager 模型,通过统一的命令结构为所有 Azure 服务提供一致的访问。这一架构决策意味着,无论您管理的是虚拟机、存储账户,还是复杂的网络配置,所使用的都是与 Azure 门户同源的底层 API。
所有 Azure CLI 命令都通过 Azure Resource Manager(ARM)统一处理——这也是驱动 Azure 门户的同一引擎。
Azure CLI 与 Azure 门户
在通过这两种界面管理过数百次 Azure 部署之后,我发现 CLI 在以下方面不可或缺:
自动化与可扩展性 :脚本可同时管理数十个资源,这是手动在门户操作无法实现的
版本控制集成 :您的基础设施命令成为代码,像其他软件制品一样可追踪、可评审
跨平台一致性 :同样的命令在 Windows、Linux 与 macOS 环境下行为一致
速度与效率 :熟练管理员可在数秒内完成复杂操作,而非数分钟
如何安装 Azure CLI
第一步是安装 Azure CLI,但很多人容易在这里踩坑。个人 Mac 的最佳安装方式,与大型企业受限的 Windows 设备完全不同。我们来逐一梳理选项,帮您一次性装对,避免版本不兼容或与 IT 管理员的拉扯。
不同平台的安装
Windows 安装方式
Windows 用户有多条安装路径,可满足不同组织需求:
WinGet 包管理器 (推荐给个人开发者):
winget install -e --id Microsoft.AzureCLI技术支持
上述命令使用 Windows 的现代包管理器,提供自动更新与干净安装。
MSI 安装程序(最适合企业级部署):
从官方 Azure CLI 下载页面 下载最新 MSI,并按向导完成安装。此方式可对安装目录与系统集成进行最精细的控制。
PowerShell MSI 安装(适合自动化安装脚本):
$ProgressPreference = 'SilentlyContinue' ; Invoke-WebRequest - Uri https:/ / aka. ms/installazurecliwindows - OutFile . \AzureCLI. msi; Start-Process msiexec. exe - Wait - ArgumentList '/I AzureCLI.msi /quiet' ; rm . \AzureCLI. msi技术支持
该 PowerShell 脚本会自动下载、安装并清理 MSI 包。
> 开发机使用 WinGet,生产环境部署使用 MSI 安装程序
Linux 与 WSL 安装
不同 Linux 发行版使用不同包管理器,了解您的发行版能避免常见安装失败:
Ubuntu/Debian(apt):
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash 技术支持
该安装脚本会自动配置微软软件源并安装 Azure CLI。
Red Hat Enterprise Linux/CentOS Stream(dnf):
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo dnf install -y https://packages.microsoft.com/config/rhel/9/packages-microsoft-prod.rpm
sudo dnf install azure-cli技术支持
上述命令会在安装前导入微软签名密钥并配置软件源。
通用安装脚本:
curl -L https://aka.ms/InstallAzureCli | bash 技术支持
该脚本会自动识别您的发行版并选择合适的包管理器。
macOS 安装
macOS 用户可借助 Homebrew 的包管理:
brew update && brew install azure-cli技术支持
该命令会更新 Homebrew 包列表并安装最新 Azure CLI 版本。
未安装 Homebrew 的系统:
curl -L https://aka.ms/InstallAzureCli | bash 技术支持
Docker 容器方式
在 Docker 容器中运行 Azure CLI 可实现完全隔离:
docker run -it mcr.microsoft.com/azure-cli:latest技术支持
该命令将启动一个已预装并配置好 Azure CLI 的交互式容器。
Azure Cloud Shell:零安装选项
Azure Cloud Shell 可在无需任何本地安装的情况下立即使用 CLI。这个基于浏览器的环境预装了最新 Azure CLI,并包含 terraform、kubectl 及多种文本编辑器等附加工具。
检查版本与更新
安装完成后,使用全面的版本信息验证您的环境:
az version技术支持
该命令会返回详细的 JSON,展示 Azure CLI 版本、核心组件和已安装扩展。
理解这份输出有助于排查兼容性问题,并确保您的脚本针对合适的 CLI 版本。微软发布了详细发行说明 ,记录不兼容变更与新功能。
> 升级 Azure CLI 版本时,请务必检查扩展的兼容性。
使用 Azure CLI 进行认证
认证是您使用 Azure CLI 的安全基石,近期的政策变化从根本上重塑了组织对凭据管理的方式。现代认证策略必须在安全需求与运营效率之间取得平衡,尤其是在微软对所有 Azure 服务实施更强认证标准之际。
认证方式
Azure Cloud Shell 自动登录
Cloud Shell 会基于您当前的 Azure 门户会话自动完成认证。这种无缝集成消除了交互式场景中的认证复杂度,非常适合学习与临时管理任务。
交互式登录
标准认证方式使用设备代码流程:
az login技术支持
该命令会在默认浏览器中执行 Microsoft Entra ID 认证,并自动处理 MFA。
无头环境:
az login --use-device-code技术支持
该命令会显示一个设备代码,可在任意联网设备上访问 https://microsoft.com/devicelogin 进行认证。
托管身份认证
Azure 资源可使用托管身份进行认证:
az login --identity 技术支持
该方式免除了在 Azure 内运行的应用的凭据管理负担。
服务主体认证
基于遗留凭据的方式(若无工作负载身份联合则不再合规):
这种基于密码的认证方式是 2025 年 9 月 MFA 强制执行所影响的主要对象。使用该方式的脚本很可能失败,必须进行更新。
az login --service-principal --username < app-id> --password < password> --tenant < tenant-id> 技术支持
此命令使用应用程序凭据进行认证,适用于自动化场景。
应对 2025 年 10 月的 MFA 强制执行
自 2025 年 10 月 1 日起,微软将强制启用多重身份验证(MFA)。如果您使用基于密码的服务主体,届时自动化脚本将失败。这是近年对 Azure CLI 自动化影响最大的变更。
此次安全更新从根本上改变了组织对 Azure CLI 自动化的方式。它影响服务主体的认证模式,并要求许多自动化场景迁移至工作负载身份。
> 您的自动化面临风险。请立即优先迁移至工作负载身份联合,避免 10 月 1 日的服务中断。
用四步行动计划修复失败的自动化并符合新的 MFA 要求。
管理订阅
生产环境通常需要明确的订阅管理 :
az account list --output table
az account set --subscription "Your Subscription Name" 技术支持
这些命令会列出可用订阅,并设置后续命令的默认订阅。
访问令牌
高级场景需要直接操作访问令牌:
az account get-access-token技术支持
该命令返回包含过期信息的访问令牌,便于程序化使用。
开始使用 Azure CLI 命令
掌握命令,首先要理解 CLI 的组织理念与发现机制。与其死记硬背数百条命令,不如通过 CLI 的智能帮助系统高效导航 Azure 庞大的服务生态。
查找命令
Azure CLI 的可发现性功能大幅降低学习曲线:
az find "virtual machine" 技术支持
AI 驱动的搜索可定位相关命令并提供使用示例。
获取特定命令详情:
az vm create --help 技术支持
该帮助命令展示参数、子组与实用示例,便于即时参考。
使用 "az find" 获取 AI 建议,快速发现您所需的精确命令。
命令结构
Azure CLI 遵循一致的分层结构:az <group> <subgroup> <command> [parameters]
创建虚拟机示例:
az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --admin-username azureuser --generate-ssh-keys技术支持
该命令会按指定配置创建一台虚拟机。
全局参数
有若干参数可在所有命令中通用:
- --output 或 -o:控制输出格式(json、table、yaml、jsonc、tsv)
- --query:使用 JMESPath 语法过滤结果
- --verbose:提供详细执行信息
- --debug:显示完整的 HTTP 请求/响应细节
> --output table 适合可读性强的结果, --output json 适合脚本处理
交互模式与效率特性
交互模式通过智能辅助与上下文引导,重塑命令行体验。这种方式弥合了学习新命令和自信执行之间的鸿沟,提供实时校验与建议,加速 CLI 精通过程中的探索与执行两个阶段。
Azure CLI 交互模式
交互模式提供增强的命令行体验:
az interactive技术支持
该命令启动交互模式,支持命令补全、参数提示与上下文帮助。
Azure CLI 的交互模式提供智能建议,让复杂命令变成引导式体验。
Tab 补全
通过 Shell 集成提升生产力:
Bash:
echo 'source /etc/bash_completion.d/azure-cli' >> ~/.bashrc技术支持
该命令在 Bash 中启用 Azure CLI 命令的 Tab 补全。
PowerShell:
Register-ArgumentCompleter - Native - CommandName az - ScriptBlock { . . . } 技术支持
该 PowerShell 配置用于启用 Azure CLI 命令的 Tab 补全。
VS Code 集成
适用于 Visual Studio Code 的 Azure CLI 扩展提供语法高亮、IntelliSense 与集成终端支持。
使用 Azure CLI 管理资源
现在您已安装并完成配置,是时候真正上手了。本节我们从理论走向实践,开始管理实际的 Azure 资源。我们将超越单个命令,关注您每天都会用到的模式,用以构建、连接与管理云基础设施。
资源组操作
资源组是 Azure 资源的逻辑容器:
az group create --name myResourceGroup --location eastus
az group list --output table
az group delete --name myResourceGroup --yes --no-wait技术支持
这些命令以异步方式创建、列出与删除资源组。
常见资源创建
创建虚拟机:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys技术支持
该命令创建一台使用 SSH 密钥认证的 Linux 虚拟机。
创建存储账户:
az storage account create \
--name mystorageaccount \
--resource-group myResourceGroup \
--location eastus \
--sku Standard_LRS \
--kind StorageV2技术支持
该命令创建通用 v2 存储账户,使用本地冗余存储。
查询与输出格式化
JMESPath 查询可用于过滤与转换命令输出:
az vm list --query "[].{Name:name, PowerState:powerState}" --output table
az vm list --query "[?location=='eastus'].name" --output tsv技术支持
这些 JMESPath 查询用于提取特定字段,并基于条件过滤结果。
> 精通 JMESPath 查询,便能从复杂的 JSON 响应中精准提取所需数据。
用 Azure CLI 实现自动化
自动化将单条命令转化为可复用、可靠且能超越手工操作规模的工作流。当您不再把 CLI 命令视为一次性任务,而是将其构建为从资源部署到灾难恢复的一套系统时,真正的魔力就出现了。
我记得第一次把每周的开发环境刷新实现自动化时,以往三个小时的手动点击与等待,变成了一段 15 分钟的脚本,我还能边跑脚本边去拿咖啡。这个自动化脚本每月为团队节省了数十小时,并消除了手工流程中不可避免的人为错误。
> 从小处着手自动化——先把日常最重复的任务自动化,再逐步扩展到完整的基础设施工作流
脚本最佳实践
具备错误处理与日志记录的健壮脚本模板:
#!/bin/bash
set -euo pipefail
RESOURCE_GROUP = "automation-rg"
LOCATION = "eastus"
VM_NAME = "automated-vm"
log ( ) {
echo "[$( date +'%Y-%m-%d %H:%M:%S' ) ] $1 "
}
cleanup ( ) {
log "Cleaning up resources due to script failure"
az group delete --name "$RESOURCE_GROUP " --yes --no-wait 2 > /dev/null || true
}
trap cleanup ERR
log "Starting Azure resource provisioning"
if ! az group show --name "$RESOURCE_GROUP " &> /dev/null; then
log "Creating resource group: $RESOURCE_GROUP "
az group create --name "$RESOURCE_GROUP " --location "$LOCATION "
fi
VM_RESULT = $( az vm create \
--resource-group "$RESOURCE_GROUP " \
--name "$VM_NAME " \
--image UbuntuLTS \
--generate-ssh-keys \
--output json)
PUBLIC_IP = $( echo "$VM_RESULT " | jq -r '.publicIpAddress' )
log "VM created successfully. Public IP: $PUBLIC_IP " 技术支持
此脚本模板实现了全面的错误处理、日志与清理机制。
自动化的安全性
切勿在脚本中硬编码凭据。尽可能使用基于证书的认证:
export ARM_CLIENT_ID = "your-client-id"
export ARM_CERTIFICATE_PATH = "/path/to/certificate.pem"
export ARM_TENANT_ID = "your-tenant-id"
az login --service-principal -u "$ARM_CLIENT_ID " --certificate-path "$ARM_CERTIFICATE_PATH " --tenant "$ARM_TENANT_ID "
export ARM_CLIENT_ID = "your-client-id"
export ARM_CLIENT_SECRET = "your-client-secret"
export ARM_TENANT_ID = "your-tenant-id"
az login --service-principal -u "$ARM_CLIENT_ID " -p "$ARM_CLIENT_SECRET " --tenant "$ARM_TENANT_ID " 技术支持
> 将敏感值存入 Azure Key Vault 并以程序方式读取。优先使用证书而非密钥以增强安全性。
CI/CD 流水线集成
Azure DevOps YAML 流水线示例:
steps :
- task : AzureCLI@2
displayName : 'Deploy Infrastructure'
inputs :
azureSubscription : 'Your-Service-Connection'
scriptType : 'bash'
scriptLocation : 'inlineScript'
inlineScript : |
set -euo pipefail
echo "Creating resource group"
az group create --name $(resourceGroup) --location $(location) 技术支持
该流水线配置将 Azure CLI 命令集成至自动化部署流程。
Azure DevOps 中成功运行的流水线,通过执行 Azure CLI 命令自动化基础设施部署。
Azure CLI 常见问题与排障
即便是经验丰富的从业者,也会遭遇认证失败 、版本不匹配与配置冲突,这些都可能拖慢效率。了解常见故障模式与解决策略,可将拦路虎变成小障碍,快速而自信地化解。
认证失败
问题:我的使用 az login --service-principal 的自动化脚本在 2025 年 9 月突然报认证错误而停止工作。
解决方案 :这是强制启用 MFA 的直接结果。基于密码的服务主体现被视为遗留且安全性较低的认证方式。您必须将自动化迁移到合规模式。请参考上文 应对 2025 年 9 月 MFA 强制执行 一节中的四步行动计划,重点实施 工作负载身份联合 或 基于证书的认证 。
问题 :"Please run 'az login' to setup account" 错误在已成功登录后仍然存在。
解决方案 :清除认证缓存并重新认证:
一次调试经历让我认识到在认证疑难杂症面前,Azure CLI 的 --debug 标志有多重要。看似随机的登录失败,实则是企业代理干扰令牌交换。调试输出揭示了被拦截的确切 HTTP 端点,从而迅速定位并解决,省去了数小时的猜测。
az account clear
az login --debug
az account list --output table技术支持
这些命令会清除缓存的凭据,并提供详尽的认证调试,揭示网络、证书或策略问题。
命令未找到问题
问题:安装后提示 "az: command not found"。
解决方案:这个经典错误偶尔也会让老手中招。我曾在一台新的 Linux 虚拟机上为此折腾了一个小时,结果只是忘了在安装后执行 source ~/.bashrc。简单却常犯的错误。
which az
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc
source ~/.bashrc技术支持
这些命令用于定位 Azure CLI 的安装位置并更新 Shell 的 PATH 配置。
版本兼容性
问题:脚本报错 "argument not recognized"。
解决方案:检查 CLI 版本兼容性并按我们版本检查部分 所述进行更新:
az version技术支持
该命令显示当前版本。各平台的更新命令请参见安装部分 。
请记得保持 Azure CLI 更新,以获取新功能与安全补丁。
高级效率技巧
精通不仅在于执行基础命令,更包括复杂查询技巧、配置优化与性能提升——这些能力是管理大规模 Azure 环境的必备要素,效率与精准度将直接影响运营成效。
JMESPath 查询精通
高级查询可改变数据提取能力:
az vm list --query "[?tags.Environment=='production' && tags.Team=='backend'].{Name:name, Location:location, Size:hardwareProfile.vmSize}" 技术支持
该高级查询按多个标签条件过滤虚拟机,并提取特定属性。
用一条 JMESPath 查询,将凌乱的 JSON 输出转化为清晰、可用的数据。
配置管理
通过持久化设置自定义 CLI 行为,减少重复操作的时间:
az configure --defaults output = table location = eastus group = myDefaultRG
az configure --list-defaults技术支持
这些命令设置常用参数的默认值并展示当前配置。设置存储于 ~/.azure/config,仅适用于您的用户配置文件,既可个性化 Azure CLI 体验,又不影响同机其他用户。
性能优化
面向大规模操作的增强:
az vm list --query "[].name" --output tsv | xargs -I { } -P 10 az vm show --name { } --resource-group myRG
az vm start --name myVM --resource-group myRG --no-wait技术支持
这些命令并行执行操作,并使用异步处理以提升性能。
结语
掌握 Azure CLI 能精简云管理,让您高效控制资源并自信地自动化工作流。先从交互模式或 Azure Cloud Shell 入手,再逐步用脚本实现可复用的部署。
想进一步提升技能,请查看 Understanding Microsoft Azure 或 Microsoft Azure Fundamentals(AZ-900)学习路径
祝您自动化顺利,打造更聪明、更高效的 Azure 工作流!
过去,管理云基础设施往往意味着无数小时在网页门户中点击、在无尽的菜单里穿梭。经历数月对手工流程的挫败之后,发现 Azure CLI 完全改变了我对云资源管理的方式。这不只是另一份安装指南;而是您掌握微软这款最强大的跨平台 Azure 管理工具的路线图。
> 从 Azure Cloud Shell 入手,无需安装即可立即使用。
Azure CLI 在所有主流操作系统上提供一致而强大的 Azure 资源管理体验。
什么是 Azure CLI?
Azure CLI 是控制云资源的最直接方式。相比浏览器的局限,它提供了一个强大、可脚本化的接口,直接与核心 Azure API 对话。这让您能够在任意操作系统上,用一致可靠的命令进行大规模自动化。
我喜欢 CLI 的一点在于:学习阶段它便于探索服务,等准备正式搭建时,又能把这些步骤原封不动地固化成脚本。秘诀不在于死记硬背命令,而在于善用
az find或--help标志来获取帮助。Azure CLI 基于 Azure Resource Manager 模型,通过统一的命令结构为所有 Azure 服务提供一致的访问。这一架构决策意味着,无论您管理的是虚拟机、存储账户,还是复杂的网络配置,所使用的都是与 Azure 门户同源的底层 API。
所有 Azure CLI 命令都通过 Azure Resource Manager(ARM)统一处理——这也是驱动 Azure 门户的同一引擎。
Azure CLI 与 Azure 门户
在通过这两种界面管理过数百次 Azure 部署之后,我发现 CLI 在以下方面不可或缺:
如何安装 Azure CLI
第一步是安装 Azure CLI,但很多人容易在这里踩坑。个人 Mac 的最佳安装方式,与大型企业受限的 Windows 设备完全不同。我们来逐一梳理选项,帮您一次性装对,避免版本不兼容或与 IT 管理员的拉扯。
不同平台的安装
Windows 安装方式
Windows 用户有多条安装路径,可满足不同组织需求:
WinGet 包管理器(推荐给个人开发者):
上述命令使用 Windows 的现代包管理器,提供自动更新与干净安装。
MSI 安装程序(最适合企业级部署):
从官方 Azure CLI 下载页面下载最新 MSI,并按向导完成安装。此方式可对安装目录与系统集成进行最精细的控制。
PowerShell MSI 安装(适合自动化安装脚本):
该 PowerShell 脚本会自动下载、安装并清理 MSI 包。
> 开发机使用 WinGet,生产环境部署使用 MSI 安装程序
Linux 与 WSL 安装
不同 Linux 发行版使用不同包管理器,了解您的发行版能避免常见安装失败:
Ubuntu/Debian(apt):
该安装脚本会自动配置微软软件源并安装 Azure CLI。
Red Hat Enterprise Linux/CentOS Stream(dnf):
上述命令会在安装前导入微软签名密钥并配置软件源。
通用安装脚本:
该脚本会自动识别您的发行版并选择合适的包管理器。
macOS 安装
macOS 用户可借助 Homebrew 的包管理:
该命令会更新 Homebrew 包列表并安装最新 Azure CLI 版本。
未安装 Homebrew 的系统:
Docker 容器方式
在 Docker 容器中运行 Azure CLI 可实现完全隔离:
该命令将启动一个已预装并配置好 Azure CLI 的交互式容器。
Azure Cloud Shell:零安装选项
Azure Cloud Shell 可在无需任何本地安装的情况下立即使用 CLI。这个基于浏览器的环境预装了最新 Azure CLI,并包含 terraform、kubectl 及多种文本编辑器等附加工具。
检查版本与更新
安装完成后,使用全面的版本信息验证您的环境:
该命令会返回详细的 JSON,展示 Azure CLI 版本、核心组件和已安装扩展。
理解这份输出有助于排查兼容性问题,并确保您的脚本针对合适的 CLI 版本。微软发布了详细发行说明,记录不兼容变更与新功能。
> 升级 Azure CLI 版本时,请务必检查扩展的兼容性。
使用 Azure CLI 进行认证
认证是您使用 Azure CLI 的安全基石,近期的政策变化从根本上重塑了组织对凭据管理的方式。现代认证策略必须在安全需求与运营效率之间取得平衡,尤其是在微软对所有 Azure 服务实施更强认证标准之际。
认证方式
Azure Cloud Shell 自动登录
Cloud Shell 会基于您当前的 Azure 门户会话自动完成认证。这种无缝集成消除了交互式场景中的认证复杂度,非常适合学习与临时管理任务。
交互式登录
标准认证方式使用设备代码流程:
该命令会在默认浏览器中执行 Microsoft Entra ID 认证,并自动处理 MFA。
无头环境:
该命令会显示一个设备代码,可在任意联网设备上访问 https://microsoft.com/devicelogin 进行认证。
托管身份认证
Azure 资源可使用托管身份进行认证:
该方式免除了在 Azure 内运行的应用的凭据管理负担。
服务主体认证
基于遗留凭据的方式(若无工作负载身份联合则不再合规):
这种基于密码的认证方式是 2025 年 9 月 MFA 强制执行所影响的主要对象。使用该方式的脚本很可能失败,必须进行更新。
此命令使用应用程序凭据进行认证,适用于自动化场景。
应对 2025 年 10 月的 MFA 强制执行
自 2025 年 10 月 1 日起,微软将强制启用多重身份验证(MFA)。如果您使用基于密码的服务主体,届时自动化脚本将失败。这是近年对 Azure CLI 自动化影响最大的变更。
此次安全更新从根本上改变了组织对 Azure CLI 自动化的方式。它影响服务主体的认证模式,并要求许多自动化场景迁移至工作负载身份。
> 您的自动化面临风险。请立即优先迁移至工作负载身份联合,避免 10 月 1 日的服务中断。
用四步行动计划修复失败的自动化并符合新的 MFA 要求。
管理订阅
生产环境通常需要明确的订阅管理:
这些命令会列出可用订阅,并设置后续命令的默认订阅。
访问令牌
高级场景需要直接操作访问令牌:
该命令返回包含过期信息的访问令牌,便于程序化使用。
开始使用 Azure CLI 命令
掌握命令,首先要理解 CLI 的组织理念与发现机制。与其死记硬背数百条命令,不如通过 CLI 的智能帮助系统高效导航 Azure 庞大的服务生态。
查找命令
Azure CLI 的可发现性功能大幅降低学习曲线:
AI 驱动的搜索可定位相关命令并提供使用示例。
获取特定命令详情:
该帮助命令展示参数、子组与实用示例,便于即时参考。
使用 "az find" 获取 AI 建议,快速发现您所需的精确命令。
命令结构
Azure CLI 遵循一致的分层结构:
az <group> <subgroup> <command> [parameters]创建虚拟机示例:
该命令会按指定配置创建一台虚拟机。
全局参数
有若干参数可在所有命令中通用:
-
--output或-o:控制输出格式(json、table、yaml、jsonc、tsv)-
--query:使用 JMESPath 语法过滤结果-
--verbose:提供详细执行信息-
--debug:显示完整的 HTTP 请求/响应细节> --output table 适合可读性强的结果,--output json 适合脚本处理
交互模式与效率特性
交互模式通过智能辅助与上下文引导,重塑命令行体验。这种方式弥合了学习新命令和自信执行之间的鸿沟,提供实时校验与建议,加速 CLI 精通过程中的探索与执行两个阶段。
Azure CLI 交互模式
交互模式提供增强的命令行体验:
该命令启动交互模式,支持命令补全、参数提示与上下文帮助。
Azure CLI 的交互模式提供智能建议,让复杂命令变成引导式体验。
Tab 补全
通过 Shell 集成提升生产力:
Bash:
该命令在 Bash 中启用 Azure CLI 命令的 Tab 补全。
PowerShell:
该 PowerShell 配置用于启用 Azure CLI 命令的 Tab 补全。
VS Code 集成
适用于 Visual Studio Code 的 Azure CLI 扩展提供语法高亮、IntelliSense 与集成终端支持。
使用 Azure CLI 管理资源
现在您已安装并完成配置,是时候真正上手了。本节我们从理论走向实践,开始管理实际的 Azure 资源。我们将超越单个命令,关注您每天都会用到的模式,用以构建、连接与管理云基础设施。
资源组操作
资源组是 Azure 资源的逻辑容器:
这些命令以异步方式创建、列出与删除资源组。
常见资源创建
创建虚拟机:
该命令创建一台使用 SSH 密钥认证的 Linux 虚拟机。
创建存储账户:
该命令创建通用 v2 存储账户,使用本地冗余存储。
查询与输出格式化
JMESPath 查询可用于过滤与转换命令输出:
这些 JMESPath 查询用于提取特定字段,并基于条件过滤结果。
> 精通 JMESPath 查询,便能从复杂的 JSON 响应中精准提取所需数据。
用 Azure CLI 实现自动化
自动化将单条命令转化为可复用、可靠且能超越手工操作规模的工作流。当您不再把 CLI 命令视为一次性任务,而是将其构建为从资源部署到灾难恢复的一套系统时,真正的魔力就出现了。
我记得第一次把每周的开发环境刷新实现自动化时,以往三个小时的手动点击与等待,变成了一段 15 分钟的脚本,我还能边跑脚本边去拿咖啡。这个自动化脚本每月为团队节省了数十小时,并消除了手工流程中不可避免的人为错误。
> 从小处着手自动化——先把日常最重复的任务自动化,再逐步扩展到完整的基础设施工作流
脚本最佳实践
具备错误处理与日志记录的健壮脚本模板:
此脚本模板实现了全面的错误处理、日志与清理机制。
自动化的安全性
切勿在脚本中硬编码凭据。尽可能使用基于证书的认证:
> 将敏感值存入 Azure Key Vault 并以程序方式读取。优先使用证书而非密钥以增强安全性。
CI/CD 流水线集成
Azure DevOps YAML 流水线示例:
该流水线配置将 Azure CLI 命令集成至自动化部署流程。
Azure DevOps 中成功运行的流水线,通过执行 Azure CLI 命令自动化基础设施部署。
Azure CLI 常见问题与排障
即便是经验丰富的从业者,也会遭遇认证失败、版本不匹配与配置冲突,这些都可能拖慢效率。了解常见故障模式与解决策略,可将拦路虎变成小障碍,快速而自信地化解。
认证失败
问题:我的使用
az login --service-principal的自动化脚本在 2025 年 9 月突然报认证错误而停止工作。解决方案:这是强制启用 MFA 的直接结果。基于密码的服务主体现被视为遗留且安全性较低的认证方式。您必须将自动化迁移到合规模式。请参考上文应对 2025 年 9 月 MFA 强制执行一节中的四步行动计划,重点实施工作负载身份联合或基于证书的认证。
问题:"Please run 'az login' to setup account" 错误在已成功登录后仍然存在。
解决方案:清除认证缓存并重新认证:
一次调试经历让我认识到在认证疑难杂症面前,Azure CLI 的
--debug标志有多重要。看似随机的登录失败,实则是企业代理干扰令牌交换。调试输出揭示了被拦截的确切 HTTP 端点,从而迅速定位并解决,省去了数小时的猜测。这些命令会清除缓存的凭据,并提供详尽的认证调试,揭示网络、证书或策略问题。
命令未找到问题
问题:安装后提示 "az: command not found"。
解决方案:这个经典错误偶尔也会让老手中招。我曾在一台新的 Linux 虚拟机上为此折腾了一个小时,结果只是忘了在安装后执行
source ~/.bashrc。简单却常犯的错误。这些命令用于定位 Azure CLI 的安装位置并更新 Shell 的 PATH 配置。
版本兼容性
问题:脚本报错 "argument not recognized"。
解决方案:检查 CLI 版本兼容性并按我们版本检查部分所述进行更新:
该命令显示当前版本。各平台的更新命令请参见安装部分。
请记得保持 Azure CLI 更新,以获取新功能与安全补丁。
高级效率技巧
精通不仅在于执行基础命令,更包括复杂查询技巧、配置优化与性能提升——这些能力是管理大规模 Azure 环境的必备要素,效率与精准度将直接影响运营成效。
JMESPath 查询精通
高级查询可改变数据提取能力:
该高级查询按多个标签条件过滤虚拟机,并提取特定属性。
用一条 JMESPath 查询,将凌乱的 JSON 输出转化为清晰、可用的数据。
配置管理
通过持久化设置自定义 CLI 行为,减少重复操作的时间:
这些命令设置常用参数的默认值并展示当前配置。设置存储于
~/.azure/config,仅适用于您的用户配置文件,既可个性化 Azure CLI 体验,又不影响同机其他用户。性能优化
面向大规模操作的增强:
这些命令并行执行操作,并使用异步处理以提升性能。
结语
掌握 Azure CLI 能精简云管理,让您高效控制资源并自信地自动化工作流。先从交互模式或 Azure Cloud Shell 入手,再逐步用脚本实现可复用的部署。
想进一步提升技能,请查看 Understanding Microsoft Azure 或Microsoft Azure Fundamentals(AZ-900)学习路径
祝您自动化顺利,打造更聪明、更高效的 Azure 工作流!