点击上方蓝字关注“汪宇杰博客”

导语

最近在学习 Azure 的命令行玩法,发现官方有不止一种命令行工具,容易对新手产生混淆,本文将介绍各种工具都是干啥的,以及如何选择。

目前,微软官方有3个Azure命令行工具,分别是:

  • Azure CLI

  • Azure PowerShell - Az Module

  • Azure PowerShell - AzureRM

它们的历史和作用各有不同。

Azure CLI

Azure CLI 是一个跨平台的命令行程序,可连接到 Azure 并对 Azure 资源执行管理命令。例如,若要创建 VM,可使用如下命令:

az vm create \

--resource-group CrmTestingResourceGroup \

--name CrmUnitTests \

--image UbuntuLTS

...

可通过两种方式使用 Azure CLI:通过 Azure Cloud Shell 在浏览器内使用或安装在本地 Linux、Mac 或 Windows 计算机上使用。通过这两种方式,均可以交互方式或编写脚本的方式使用 Azure CLI。若要以交互方式使用,请先在 Windows 上启动 cmd.exe 等 shell 或是在 Linux 或 macOS 上启动Bash,然后在 shell 提示符处发出命令。若要自动执行重复性任务,请使用所选 shell 脚本语法将命令配置到 shell 脚本中,然后执行该脚本。

(以上内容摘自 Microsoft Learn 官方免费学习平台)

Azure PowerShell

Azure PowerShell 是可添加到 Windows PowerShell 或 PowerShell Core 的模块,可用于连接 Azure 订阅并管理资源。Azure PowerShell 需通过 PowerShell 才能运行。PowerShell 提供 shell 窗口、命令解析等服务。Azure PowerShell 可添加特定于 Azure 的命令。

例如,Azure PowerShell 提供了可在 Azure 订阅中创建虚拟机的 New-AzVM 命令。若要使用 Azure PowerShell,请启动 PowerShell 应用程序,然后发出如下命令:

New-AzVm `

-ResourceGroupName "CrmTestingResourceGroup" `

-Name "CrmUnitTests" `

-Image "UbuntuLTS"

...

同样可通过两种方式使用 Azure PowerShell:通过 Azure Cloud Shell 在浏览器内使用或安装在本地 Linux、Mac 或 Windows 计算机上使用。对于这两种方式,均有两种模式可供选择。可在交互模式下使用,一次手动发出一个命令;也可在脚本模式下使用,执行包含多个命令的脚本。

(以上内容摘自 Microsoft Learn 官方免费学习平台)

然而,Azure PowerShell 里其实有两种:Az模块和AzureRM,这是两套不同的命令行工具,但功能非常重合。这一点在 Microsoft Learn 官网上并没有提到。

Az 模块

此新模块是采用 .NET Standard 从头开始编写的。 由于采用了 .NET Standard,Azure PowerShell 可以在 Windows 上的 PowerShell 5.1 下运行,也可以在任何平台上的 PowerShell Core 6.x 及更高版本下运行。Az 模块现在是通过 PowerShell 与 Azure 进行交互的首选方式。AzureRM 将继续进行 bug 修复,但不会再收到新功能。

(摘自微软官网文档 https://docs.microsoft.com/zh-CN/powershell/azure/overview?view=azps-2.5.0)

AzureRM

这实际上就是多年前的 Windows Azure PowerShell,我在2014年的博客文章里介绍过。但因为已经被微软官方遗弃,所以新学习 Azure 的读者,现在可以完全无视 AzureRM 这套 PowerShell 工具,也不用去看使用这个工具的文章

有关迁移到 Az 模块的文档和所有变更,都可以在上面的微软官网文档里找到。

如何选择

现在,我们的命令行选项其实只剩下了 Azure CLI 以及 Azure PowerShell (Az 模块),如何选择用哪个工具呢?

依然摘录 Microsoft Learn 官方免费学习平台 里的说明:

就可管理的 Azure 对象及可创建的配置而言,门户、Azure CLI 和 Azure PowerShell 大致上是相同的。三者也都是跨平台的工具。这就意味着在选择时,通常要考虑其他几个因素:

  • 自动化:是否需要自动执行一系列复杂的或重复性任务?Azure PowerShell 和 Azure CLI 支持自动化,而门户则不支持。

  • 学习曲线:是否需要在不学习新命令或语法的情况下快速完成任务?使用 Azure 门户,无需学习语法或记住命令。使用 Azure PowerShell 和 Azure CLI 时,必须了解所使用的每个命令的详细语法。

  • 团队技能组:团队是否拥有现成的专业知识?例如,团队可能使用过 PowerShell 来管理 Windows。若是如此,团队成员可快速熟练使用 Azure PowerShell。

示例

回想一下,你正在选择管理工具来为 CRM 应用程序创建测试环境。你的管理员需要执行两项特定的 Azure 任务:

  1. 为每种测试(单元、集成和验收)创建一个资源组。

  2. 在进行每轮测试前,在每个资源组中创建多个 VM。

若要创建资源组,可以选择 Azure 门户。这些是一次性任务,无需使用脚本来执行。

确定创建 VM 的最佳工具则更具挑战。你需要创建数个 VM 并且需要重复创建,可能每周要创建几次。这就意味着你需要自动化,因此 Azure 门户并非一个好的选择。在这种情况下,Azure PowerShell 或 Azure CLI 可满足你的需求。如果团队成员拥有现成的 PowerShell 知识,那么 Azure PowerShell 可能就是最佳选择。Azure PowerShell 可在管理团队使用的各种操作系统上运行,可支持自动化,且团队很容易上手。

大多数管理员首次接触 Azure 时都是使用的门户。这是一个很好的起点,因为门户提供了一个干净的、结构清晰的图形界面,但限制了自动化选项。如果需要自动化,Azure 提供了两个选项:Azure PowerShell 适用于具有 PowerShell 经验的管理员;Azure CLI 适用于其他所有人。

在实践中,企业通常既有一次性任务,也有重复性任务。这就意味着通常需要同时使用门户和脚本解决方案。在我们的 CRM 示例中,通过门户创建资源组,并使用 PowerShell 自动创建 VM,这样做是合适的。

Azure 命令行工具大混战,都是什么,该选哪个?相关推荐

  1. 【转】Azure 命令行工具大混战,都是什么,该选哪个?

    导语 最近在学习 Azure 的命令行工具,发现官方有不止一种命令行工具,容易对新手产生混淆,本文将介绍各种工具都是干啥的,以及如何选择. 目前,微软官方有3个Azure命令行工具,分别是: Azur ...

  2. 【JVM与性能调优】与Java性能调优相关的JDK命令行工具大盘点

    一. jps 命令 1.1 jps介绍 jps(JVM Process Status Tool) 列出Java进程,显示指定系统内所有的HotSpot虚拟机进程. 查询Linux系统当前所有java进 ...

  3. C#中的样板命令行工具应用程序

    目录 介绍 概念化这个混乱 处理命令行参数 异常处理 用户界面 过期文件处理 编码此混乱 MSBuild支持 用于在C#中构建命令行工具应用程序的入门代码.该样板代码为应用程序提供异常处理和命令行参数 ...

  4. 一天1300 Star量,GitHub上新官方命令行工具

    机器之心 机器之心编辑部 不想用命令行操作 GitHub 的开发者,不是好的开发者. Git简介 小编私以为,Git 是世界上最好的代码版本控制工具,木有之一.在做项目的时候,通常我们会在本地写代码, ...

  5. 面试官:你用过哪些JDK自带的命令行工具

    本文基于HotSpot虚拟机,JDK版本1.8.0_171,windows系统 目录 一.jps:虚拟机进程状况工具 二.jstat:虚拟机统计信息监视工具 三.jmap:Java内存映像工具 四.j ...

  6. Redis 笔记(16)— info 指令和命令行工具(查看内存、状态、客户端连接数、监控服务器、扫描大key、采样服务器、执行批量命令等)

    Info 命令返回关于 Redis 服务器的各种信息和统计数值.通过给定可选的参数 section ,可以让命令只返回某一部分的信息. 1. 显示模块 server : 一般 Redis 服务器信息, ...

  7. linux gpu 测试工具,推荐 7 大 Linux GPU 监控和诊断命令行工具

    原标题:推荐 7 大 Linux GPU 监控和诊断命令行工具 作者:Linux迷 链接:https://www.linuxmi.com/7-linux-gpu-jiankong.html 视频卡是一 ...

  8. GitHub日收12000星,微软新命令行工具引爆程序员圈!

    作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 继上次微软开源计算器刷爆GitHub后,今天凌晨在微软Build大会登场的Windows Terminal,如旋风般目前已登顶GitHu ...

  9. 微软最强命令行工具 Windows Terminal,强势霸榜GitHub

    命令提示符也是算 Windows 系统的一大特色了,相信很多人刚看到这白底黑字的界面都有点哭笑不得吧,好在后来微软陆续推出了Powershell.cmd之类的命令行工具,来提供一些更加高级的功能 如今 ...

最新文章

  1. 从零开始学 Python 之运算符
  2. 在visual studio 2010中调用ffmpeg
  3. Ubuntu 上 Node.js 安装和卸载
  4. 5G会重新定义数据中心吗?
  5. 尽力去帮助一个陌生人
  6. 撞球编程c语言,急!C语言编程题——撞球
  7. 移动端布局 - REM方式
  8. c++ string详解 assign
  9. Bailian4096 信号转换【密码】
  10. 电信光猫找不到服务器,高手说说电信光猫没网如何设置?
  11. python图像光谱视觉分析库-imgvision
  12. 完爆面试官!2021Java高频精选面试题讲解
  13. Python.json.常见两个错误处理(Expecting , delimiter)(Invalid control character at)
  14. 修改rpg maker mv的几种上限2020-05-25
  15. 五年磨一剑,灵雀云的蜕变
  16. 华为企业交换机ACL经典案例
  17. 创业公司如何搭建服务器配置方案?
  18. 我对遥感影像分类的理解(1)
  19. 让CS的头像支持GIF动画
  20. Code For Better 谷歌开发者之声——初识Web与谷歌,拉起兴趣之心。

热门文章

  1. Mac OS使用技巧之九:Mission Control和DIY自己的Dashboard
  2. 在Firefox中结合Wolfram Alpha和Google搜索结果
  3. linux uniq命令_如何在Linux上使用uniq命令
  4. chromebook刷机_如何将网站添加到您的Chromebook架子上
  5. android 文本后图标_如何在Android中更改文本,图标等的大小
  6. dropbox_来自提示框:望远镜激光瞄准器,Dropbox桌面和Kindle剪辑转换
  7. web前端工程师热门岗位技能要求前瞻
  8. django rest framework 过滤 lim分页
  9. 如何使用Instruments诊断App(Swift版):起步
  10. 解决ubuntu下eclipse 经常崩溃的问题