使用 Azure CLI 入门

如果您拥有微软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 服务。

output of az help

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

scrolling down to find group

3. 找到你正在寻找的命令后,使用--help参数运行它。使用--help参数不会进行任何更改;它会返回组或命令的所有帮助文档。

az group --help

在下面你可以看到group组和一个单一的子组(lock)以及其中包含的各种命令。

output of az group help

4. 由于你想要创建一个资源组,create命令似乎是正确的命令。现在,通过将更详细的命令附加到原始az group引用并查找帮助来继续变得更加具体。

az group create --help

引用--help参数以查看任何命令的帮助文档。

现在--help参数显示有关create命令的信息。命令具有如下所示的参数。在这个例子中,你现在拥有指定资源组和必需location的参数。

help parameter

使用az find查找语法示例

如果使用--help参数无法轻松找到你正在寻找的组或命令,请查看az find命令。该命令使用组/命令引用搜索语法示例,如下所示。

例如,与上面显示的使用--help导航帮助系统不同,可以使用az find一行完成相同的任务。

az find "az group create"
output of find command

使用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 继续。

output from azconfigure

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

If you’re unsure, below you’ll find some examples.

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

JSON(Java对象表示法)

json output

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

jsonc output

表格

table output

TSV(制表符分隔值)

tsv output

YAML(YAML不是标记语言)

yaml output

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

yamlc output

无 – Azure CLI仅会返回错误或警告。

4. 设置输出格式后,Azure CLI将提示您启用日志记录。在这里,选择Y以启用记录所有命令和输出到文件。

Output Format

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

下面是日志的示例。

Log file contents after executing az login

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

Telemetry Data

有关 Microsoft 收集的信息的详细信息,请参阅从 Azure CLI 收集匿名数据的 Microsoft 隐私信息

最后,az configure 将要求设置 CLI 对象缓存生存时间值。您应该将其保留为默认值 10。

cli object cache setting

仅在 Microsoft 在使用 Azure CLI 进行故障排除时建议更改 CLI 对象 TTL。

设置默认参数值

Azure CLI 具有多个具有相同参数(例如位置和组)的命令。您无需为每个命令的每个参数输入这些值,而是可以设置默认参数值。

要设置参数默认值,请在 az configure 上使用 --defaults 参数。此参数允许您定义参数及其默认值。例如,也许您厌倦了为各种命令键入 locationgroup。没问题。设置一些默认值。

以下示例将默认区域 (location) 设置为 westus2,资源组 (group) 设置为 MyResourceGroup。现在,每当运行具有 locationgroup 参数的任何 Azure CLI 命令时,Azure CLI 将自动将值传递给这些参数。

az configure --defaults location=westus2 group=MyResourceGroup

如果您正在使用容器,可以通过在每个容器实例中设置默认值,来管理特定区域、订阅或资源组。您可以使用`az configure`命令在每个容器中创建4个容器,并设置默认区域和默认资源组。

使用浏览器进行身份验证

您现在已经学会了使用 Azure CLI 的基础知识,但实际上还没有做任何事情。现在让我们迈出一步,开始创建一些资源!但首先,您必须登录到 Azure,使用命令az login

如果您有多个 Azure 订阅,请运行az account list命令查找所有订阅。当找到订阅后,运行az account set --subscription <subscription name>来设置要在会话中使用的订阅。您也可以使用全局subscription参数显式指定一个订阅。

1. 打开终端并运行az login命令。此命令将打开一个浏览器窗口,让您提供用户名和密码。

az login in Powershell session

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

authenticate with Microsoft

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

Output from az login, once authenticated

使用设备代码进行身份验证

如果您在没有浏览器的系统上,或者想要在另一台计算机上下载身份验证令牌,请使用--use-device-code参数。该参数允许用户使用另一设备提供的代码进行身份验证。

要使用设备代码进行身份验证,请打开终端并:

运行az login并使用--use-device-code参数。这次,az login命令不会打开浏览器。相反,它将提供一个代码,供在另一台计算机上的设备登录页面上使用。

az login --use-device-code
output of az-login —use-device-code

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

Enter code to authenticate

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

choosing an account to authenticate with

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

verification your session is logged on to azure

Azure CLI输出选项

如前所述,Azure CLI可以以不同的方式返回输出。您可以定义默认输出并使用output参数即时更改。但是output参数并不是唯一更改输出行为的参数。

要更改详细程度,过滤输出或修改错误输出行为,请使用以下参数。

  • query – 使用JMESPath查询语言来过滤所有命令的输出。请参考这篇文章以了解更多信息。
  • verbose – 返回有关在Azure中创建的资源以及有关这些资源的扩展信息。
  • debug – 返回用于调试的CLI操作的低级别信息。
  • only-show-errors – 显示错误并抑制警告。

创建资源组

现在您已经通过Azure进行了身份验证,可以自由管理您被授权访问的所有资源。让我们首先运行一个创建资源组的常见示例。

假设您使用已安装Azure CLI的计算机,并且已经通过CLI对Azure进行了身份验证:

使用az group create命令创建资源组,如下所示。此命令正在在北欧位置创建名为TESTGrpresource-group,并返回所有verbose输出。

az group create --location northeurope --resource-group TESTGrp --verbose
output of az group create

2. 确认Azure已创建资源。az group list

az group list

注意您已创建TESTGrp资源组。

output of az group list

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

az group list --query "[?location=='northeurope']"
output of a JMESPath query

创建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

az vm image list

对于此演示,请选择下面突出显示的UbuntuLTS映像。

Cached list of images available

Azure CLI维护所有VM映像的缓存列表。如果UbuntuLTS映像没有显示,请使用all参数获取更新的列表。

2. 一旦您知道要用于虚拟机的磁盘映像,请使用 az vm create 创建虚拟机。下面的代码片段创建一个名为 name 的虚拟机 ATAVM1,使用 UbuntuLTS imageresource-group TESTGrp 中。当 Azure 创建虚拟机时,它将生成 SSH 密钥 (generate-ssh-keys) 以便稍后连接,并以 JSON (output) 返回输出。

az vm create --resource-group TESTGrp \
   --name ATAVM1 \ ## 虚拟机的主机名
   --image UbuntuLTS \ ## 使用 az vm image list 收集的映像名称
   --generate-ssh-keys \ ## 自动为虚拟机生成 SSH 密钥
   --output json \ ## 覆盖输出格式以返回 JSON
   --verbose ## 额外输出

使用尾随反斜杠将较长的单个 Azure CLI 命令分割为多行。

az vm create 命令有更多配置构建虚拟机的方法。记住帮助系统是您的朋友!az vm create --help

如果命令成功启动,则应该看到类似下面截图的内容。

VM being created

通过使用 verbose 参数,您将以绿色看到实际的 REST API 方法和参数。

3. 当部署完成时,输出的最后部分将显示有关您的虚拟机的信息。对于这个演示,最重要的是复制公共 IP 地址。您将需要这个地址通过互联网连接到虚拟机。

output from vm creation

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

connected to the vm created

您能够无需密码即可 SSH 到 VM,因为在创建 VM 时使用了 generate-ssh-keys 参数。这会将私钥下载到您的 ~/.ssh 目录,并将公钥上传到 VM,从而允许您进行身份验证。

5. 现在清理 VM 和资源组。

az group delete --name TestGRP

接下来的步骤

您现在应该已经准备好使用 Azure CLI 了。您现在可以开始管理一些资源了!接下来做什么呢?

Source:
https://adamtheautomator.com/azure-cli/