选择正确的命令行工具
在 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 工具,用于预配和管理云基础结构。
选择可利用你的经验并缩短学习曲线的工具。 思想开阔只会提高你的能力。 在适当的时候使用不同的工具。