如果您拥有微软Azure账户,但仍然只通过Azure门户管理资源,那您就错过了。减少点击并提高生产力的最佳方法之一是使用Azure CLI。
Azure CLI是一个用Python编写的跨平台工具集,允许您从命令行管理几乎所有的Azure资源。无论您使用哪种操作系统,Azure CLI都提供了在所有平台上一致的体验。
在本教程中,您将学习如何开始使用Azure CLI。您将学习如何执行初始配置,并使用各种Azure CLI命令创建和删除一些常见资源。
先决条件
本文将是一个教程。如果您打算一步一步地跟着操作,您至少需要以下之一:
- Azure CLI – 本教程将使用Docker容器上的v2.20.0版本,但其他平台上的命令也同样适用。
- 一个Azure云账户 – 本教程可以使用免费账户完成。
- 通过Microsoft账户具有在Azure中创建资源的权限,可能使用服务主体。
使用 az help
获取帮助
在运行 Azure CLI 中的任何命令之前,请学习如何使用 az help
命令。Azure CLI 中提供了丰富而充足的帮助。本教程无法涵盖所有命令,因此学会如何使用 az help
至关重要。
要开始,请浏览帮助系统,了解如何查找有关各种命令的进一步信息。
浏览典型的帮助示例
示例是最好的学习材料。让我们通过查看如何使用 Azure CLI 帮助系统来演示查找在 Azure 中创建 资源组 所需命令的示例。
打开终端:
1. 运行 az help
命令。该命令返回两种类型的输出:组和子组。
命令以组的形式组织。通常会看到教程(甚至文档)将组称为“命令”。组以分层方式组织,每个组代表一个 Azure 服务。

2. 向下滚动,直到找到名为 group
的子组。从下面的描述中可以看出,该子组负责管理资源组。组按字母顺序排列。

3. 找到你正在寻找的命令后,使用--help
参数运行它。使用--help
参数不会进行任何更改;它会返回组或命令的所有帮助文档。
在下面你可以看到group
组和一个单一的子组(lock
)以及其中包含的各种命令。

4. 由于你想要创建一个资源组,create
命令似乎是正确的命令。现在,通过将更详细的命令附加到原始az group
引用并查找帮助来继续变得更加具体。
引用
--help
参数以查看任何命令的帮助文档。
现在--help
参数显示有关create
命令的信息。命令具有如下所示的参数。在这个例子中,你现在拥有指定资源组和必需location
的参数。

使用az find
查找语法示例
如果使用--help
参数无法轻松找到你正在寻找的组或命令,请查看az find
命令。该命令使用组/命令引用搜索语法示例,如下所示。
例如,与上面显示的使用--help
导航帮助系统不同,可以使用az find
一行完成相同的任务。

使用az configure
分配默认配置
Azure CLI有许多命令和功能。每个功能都有各种配置,如日志记录和数据收集偏好。设置 Azure CLI 的首要任务之一是首次运行 az configure
命令。
在一个命令中,az configure
命令将引导您完成三个不同的设置:
- 输出格式 – Azure CLI 返回输出的七种不同方式
- 日志记录 – 将所有 Azure CLI 活动记录到文件中的能力
- 遥测 – 启用或禁用向 Microsoft 发送有关您如何使用 Azure CLI 的信息
要开始,请假设您已安装了 Azure CLI:
1. 打开终端(Bash 或 PowerShell)。
2. 输入命令 az configure
。您将看到一个简单的菜单,提示您所有设置将存储在 .azure/config 文件中。按 Y 继续。

3. 该命令首先会询问您所需的默认输出格式。在这里,选择您想要的输出格式。默认输出格式设置了在执行命令或接收错误消息后屏幕上显示输出的方式。

以下示例使用
output
参数。无论您选择什么格式作为默认值,您始终可以使用output
参数覆盖默认输出。
JSON(Java对象表示法)

JSONC(带有注释\着色的Java对象表示法)

表格

TSV(制表符分隔值)

YAML(YAML不是标记语言)

YAMLC(带有注释\着色的YAML)

无 – Azure CLI仅会返回错误或警告。
4. 设置输出格式后,Azure CLI将提示您启用日志记录。在这里,选择Y
以启用记录所有命令和输出到文件。

在此选择Y
将创建一个包含使用CLI时收集的所有命令和输出的日志。此日志位于Linux和macOS中的$HOME/.azure/logs目录中,而在Windows中则位于%USERPROFILE%\.azure\logs。
下面是日志的示例。

az login
5. 然后,Azure CLI会询问您是否要向Microsoft发送遥测数据。在这里选择Y
将向Microsoft发送有关您如何使用Azure CLI的匿名信息。

有关 Microsoft 收集的信息的详细信息,请参阅从 Azure CLI 收集匿名数据的 Microsoft 隐私信息。
最后,az configure
将要求设置 CLI 对象缓存生存时间值。您应该将其保留为默认值 10。

仅在 Microsoft 在使用 Azure CLI 进行故障排除时建议更改 CLI 对象 TTL。
设置默认参数值
Azure CLI 具有多个具有相同参数(例如位置和组)的命令。您无需为每个命令的每个参数输入这些值,而是可以设置默认参数值。
要设置参数默认值,请在 az configure
上使用 --defaults
参数。此参数允许您定义参数及其默认值。例如,也许您厌倦了为各种命令键入 location
和 group
。没问题。设置一些默认值。
以下示例将默认区域 (location
) 设置为 westus2
,资源组 (group
) 设置为 MyResourceGroup
。现在,每当运行具有 location
或 group
参数的任何 Azure CLI 命令时,Azure CLI 将自动将值传递给这些参数。
如果您正在使用容器,可以通过在每个容器实例中设置默认值,来管理特定区域、订阅或资源组。您可以使用`az configure`命令在每个容器中创建4个容器,并设置默认区域和默认资源组。
使用浏览器进行身份验证
您现在已经学会了使用 Azure CLI 的基础知识,但实际上还没有做任何事情。现在让我们迈出一步,开始创建一些资源!但首先,您必须登录到 Azure,使用命令az login
。
如果您有多个 Azure 订阅,请运行
az account list
命令查找所有订阅。当找到订阅后,运行az account set --subscription <subscription name>
来设置要在会话中使用的订阅。您也可以使用全局subscription
参数显式指定一个订阅。
1. 打开终端并运行az login
命令。此命令将打开一个浏览器窗口,让您提供用户名和密码。

2. 提供您的 Azure 帐户凭据或点击下面显示的现有用户帐户。

3. 一旦 Azure 验证您的帐户,关闭您的 Web 浏览器并返回到您的 Azure CLI 会话。az login
命令将返回有关您的订阅的信息,以确认您现在拥有身份验证令牌。

使用设备代码进行身份验证
如果您在没有浏览器的系统上,或者想要在另一台计算机上下载身份验证令牌,请使用--use-device-code
参数。该参数允许用户使用另一设备提供的代码进行身份验证。
要使用设备代码进行身份验证,请打开终端并:
运行az login
并使用--use-device-code
参数。这次,az login
命令不会打开浏览器。相反,它将提供一个代码,供在另一台计算机上的设备登录页面上使用。

2. 在另一台计算机上,导航至https://microsoft.com/devicelogin,粘贴提供的代码,并点击下一步。

3. 现在输入您的凭据以在Azure进行身份验证,并关闭浏览器,如果不再需要。

回到Azure CLI会话,在az login
将返回您的订阅信息。

Azure CLI输出选项
如前所述,Azure CLI可以以不同的方式返回输出。您可以定义默认输出并使用output
参数即时更改。但是output
参数并不是唯一更改输出行为的参数。
要更改详细程度,过滤输出或修改错误输出行为,请使用以下参数。
query
– 使用JMESPath查询语言来过滤所有命令的输出。请参考这篇文章以了解更多信息。verbose
– 返回有关在Azure中创建的资源以及有关这些资源的扩展信息。debug
– 返回用于调试的CLI操作的低级别信息。only-show-errors
– 显示错误并抑制警告。
创建资源组
现在您已经通过Azure进行了身份验证,可以自由管理您被授权访问的所有资源。让我们首先运行一个创建资源组的常见示例。
假设您使用已安装Azure CLI的计算机,并且已经通过CLI对Azure进行了身份验证:
使用az group create
命令创建资源组,如下所示。此命令正在在北欧位置
创建名为TESTGrp的resource-group
,并返回所有verbose
输出。

2. 确认Azure已创建资源。az group list
注意您已创建TESTGrp资源组。

3. 或许您有很多资源组要筛选。不要滚动,使用query
参数来缩小列表。以下命令仅返回使用JMESPath在北欧location
中的资源组。

创建Linux虚拟机
在这个最后的例子中,学习如何使用Azure CLI创建Azure VM。创建虚拟机及其周围的配置是一个很好的学习技能。创建Azure VM是您在云旅程中可能反复执行的常见任务。
在这个练习中,您将使用默认设置创建Azure Linux VM,并将其部署到上一节中创建的资源组中。
Azure VM由许多Azure资源组成,所有这些资源一起工作,如磁盘映像、虚拟网络适配器、虚拟机等。
要使用Azure CLI创建Azure VM:
1. 运行az vm image list
命令以查找VM的所有可用映像。此命令返回所有缓存/离线映像。az vm image list
对于此演示,请选择下面突出显示的UbuntuLTS
映像。

Azure CLI维护所有VM映像的缓存列表。如果UbuntuLTS映像没有显示,请使用
all
参数获取更新的列表。
2. 一旦您知道要用于虚拟机的磁盘映像,请使用 az vm create
创建虚拟机。下面的代码片段创建一个名为 name
的虚拟机 ATAVM1,使用 UbuntuLTS image
在 resource-group
TESTGrp 中。当 Azure 创建虚拟机时,它将生成 SSH 密钥 (generate-ssh-keys
) 以便稍后连接,并以 JSON (output
) 返回输出。
使用尾随反斜杠将较长的单个 Azure CLI 命令分割为多行。
az vm create
命令有更多配置构建虚拟机的方法。记住帮助系统是您的朋友!az vm create --help
如果命令成功启动,则应该看到类似下面截图的内容。

通过使用
verbose
参数,您将以绿色看到实际的 REST API 方法和参数。
3. 当部署完成时,输出的最后部分将显示有关您的虚拟机的信息。对于这个演示,最重要的是复制公共 IP 地址。您将需要这个地址通过互联网连接到虚拟机。

此时,现在通过上面找到的虚拟机的公共 IP 地址,使用 SSH 连接到 Ubuntu VM。要执行此操作,请打开您喜欢的 SSH 客户端,并像下面显示的那样连接到 VM,用户名为 azureuser。默认情况下,az vm create
命令会创建一个名为 azureuser 的本地用户。

您能够无需密码即可 SSH 到 VM,因为在创建 VM 时使用了
generate-ssh-keys
参数。这会将私钥下载到您的 ~/.ssh 目录,并将公钥上传到 VM,从而允许您进行身份验证。
5. 现在清理 VM 和资源组。
接下来的步骤
您现在应该已经准备好使用 Azure CLI 了。您现在可以开始管理一些资源了!接下来做什么呢?