选择正确的命令行工具

已完成

在 Azure 门户采取的每个操作在后台都会转换为针对 API 运行的代码,以创建、读取、更新或删除 Azure 资源。 Azure 命令行工具是 API 的包装器,可用于自动大规模预配 Azure 资源。

Azure 中的自动化选项

四种命令行工具通常用于自动执行 Azure 资源:Azure CLI、Azure PowerShell、Bicep 和 Terraform。

这些工具相比如何?

Azure CLI、Azure PowerShell、Bicep 和 Terraform 有相似之处,但各自都有独特优势。 由于你的任务是预配 Azure 存储,哪些工具功能可以在你的环境中充分发挥优势?

下表列出了每个 Azure 命令行工具的功能。 在表中:

  • 是图标表示在指定命令行工具中该功能为 true
  • 否图标表示在指定命令行工具中该功能为 false
功能 Azure 命令行接口 (CLI) Azure PowerShell 二头肌 Terraform
命令性 IaC 是 是 否 否
声明性 IaC 否 否 是 是
Azure 原生 是 是 是 否
与云无关 否 否 否 是
可在 Windows、Linux 和 macOS 上运行 是 是 是 是
可创建、编辑和删除 Azure 存储资源 是 是 是 是

更深入地了解每个工具。 Azure CLI 与 Azure PowerShell 以及 Bicep 与 Terraform 的哪些功能非常适合在你的环境中使用?

Azure CLI 与 Azure PowerShell

Azure CLI 和 Azure PowerShell 都是命令行工具,可用于创建和管理 Azure 资源。

Azure 命令行接口 (CLI)

  • 是跨平台命令行接口,可安装在 Windows、Linux 和 macOS 上
  • 在 Azure Cloud Shell、PowerShell、Bash、Cmd.exe 或 Docker 容器中运行
  • 基于 Python
  • 默认输出 JSON 字符串,但也有其他格式选项可用,例如表、YAML 和 TSV
  • 支持使用 JMESPath 查询语法查询命令输出。
  • 使用按组(如 )和子组(如 az vm)进行组织的命令
  • 具有遵循简单 reference name -command -parameter -parameter value 模式的语法
  • 支持异步操作

Azure PowerShell

  • 是跨平台 PowerShell 模块,在 Windows、Linux 和 macOS 上运行
  • 在 PowerShell、Azure Cloud Shell 或 Docker 容器中本地运行
  • 是基于 .NET Standard
  • 提供 Tab 自动补全和 Predictive IntelliSense
  • 返回 .NET 对象
  • 使用 Verb-Noun 命令名以便于发现

Bicep 与 Terraform

二头肌

Bicep 是一种特定于域的语言 (DSL),使用声明性语法来部署 Azure 资源。 在 Bicep 文件中,定义要部署到 Azure 的基础结构。 然后在整个开发生命周期中使用该文件部署基础结构。 资源以一致的方式部署。

Bicep 提供简洁的语法、可靠的类型安全,并支持代码重用。 Bicep 为 Azure 中的 IaC 解决方案提供出色的创作体验。

Terraform

HashiCorp Terraform 是一种开源 IaC 工具,用于预配和管理云基础结构。 它在描述拓扑所需状态的配置文件中编写基础结构。 Terraform 支持通过 Terraform 提供程序管理任何基础结构,例如公有云、私有云和服务型软件 (SaaS) 服务。

哪种 Azure 命令行工具适合你?

在选择工具时,请考虑你过去的经验和当前的工作环境。 下面是选项摘要:

  • Azure CLI 语法类似于 Bash 脚本。
  • Azure PowerShell 是一个 PowerShell 模块。 命令遵循 Verb-Noun 命名模式,数据作为对象返回。
  • Bicep 是一种使用声明性语法来部署 Azure 资源的 DSL。
  • Terraform 是一种开源 IaC 工具,用于预配和管理云基础结构。

选择可利用你的经验并缩短学习曲线的工具。 思想开阔只会提高你的能力。 在适当的时候使用不同的工具。