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


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

640?wx_fmt=png

导语

最近在学习 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,这样做是合适的。

640?wx_fmt=gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘鸿蒙生态背后的DevOps实践

(图片来源于网络)8月9日,华为发布了鸿蒙操作系统,在发布会上我们看到了鸿蒙系统的研发历程:2017年,鸿蒙内核1.0完成技术验证;2018年,鸿蒙内核2.0用于终端TEE;2019年&…

AT3557 Four Coloring 切比雪夫距离 + 四色构造

传送门 由于曼哈顿距离在图上显示的是一个棱形,并不是很好看,所以我们将其旋转454545,转换成切比雪夫距离,这样就变成了一个正方形,正方形内部的点距离都不超过ddd,此时可以将正方形内部的点看成一个整体&a…

SonarQube系列一、Linux安装与部署

来源:https://www.cnblogs.com/7tiny/p/11269774.html【前言】随着项目团队规模日益壮大,项目代码量也越来越多。且不说团队成员编码水平层次不齐,即便是老手,也难免因为代码量的增加和任务的繁重而忽略代码的质量,最终…

P2906 [USACO08OPEN]Cow Neighborhoods G 切比雪夫距离 + 并查集 + set

传送门 考虑将曼哈顿距离转换成切比雪夫距离,这样问题就变成了max(∣x1−x2∣,∣y1−y2∣)≤dmax(|x_1-x_2|,|y_1-y_2|)\le dmax(∣x1​−x2​∣,∣y1​−y2​∣)≤d,这个式子就很好看了,我们首先按照(x,y)(x,y)(x,y)排序,让后我…

2018-2019 ACM-ICPC, Asia Shenyang Regional Contest E. The Kouga Ninja Scrolls 切比雪夫距离 +线段树

传送门 将曼哈顿距离转换成切比雪夫距离,现在就是求max(∣x1−x2∣,∣y1−y2∣)max(|x_1-x_2|,|y_1-y_2|)max(∣x1​−x2​∣,∣y1​−y2​∣),显然我们可以将x,yx,yx,y分开考虑,下面以xxx为例。 考虑一段区间内不同门派的最大值和最小值&am…

ASP.NET Core 框架本质学习

本文作为学习过程中的一个记录。学习文章地址:https://www.cnblogs.com/artech/p/inside-asp-net-core-framework.html一. ASP.NET Core 框架上的 Hello World程序public class Program{public static void Main()> new WebHostBuilder() .UseKestrel() …

基于C#实现的轻量级多线程队列

工作中我们经常会遇到一些一些功能需要实现造作日志,数据修改日志,对于这种业务需求如果我们以同步的方式实现,难免会影响到系统的性能。如下我列出集中解决方案。使用Thread异步处理。使用线程池或Task异步处理。以上两种方案确实能解决我们…

【活动】厦门.NET俱乐部 省上云开发者专场

十年磨一剑,厦门.NET俱乐部诚挚邀请您相约软件园二期创驿站,参加云重启|厦门.NET俱乐部省上云开发者专场。活动干货满满,更有精美礼品,厦门.NET俱乐部期待与您“厦门论剑”。详情请点击图片或直接阅读原文报名

腾讯物联TencentOS tiny上云初探

2017年中旬曾写过一篇关于物联网平台的文章《微软最完善,百度最“小气” 看微软阿里百度三大物联网云平台对比》。现在已经过去两年了,物联网的格局又发生了不少的变化。不过针对腾讯来说,其物联网平台发轫的时间绝不算晚,基本就是…

ASP.NET Core on K8S深入学习(3-2)DaemonSet与Job

本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。上一篇《3-1 Deployment》中介绍了Deployment,它可以满足我们大部分时候的应用部署(无状态服务类容器),但是针对一些特…

Asp.Net Core WebAPI+PostgreSQL部署在Docker中

PostgreSQL是一个功能强大的开源数据库系统。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值值、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。PostgreSQL对很多高级开发…

博客园升级有感一点建议

实践出真知这几天在园子里面最热闹的事情各位都知道吧?没错,我说的就是博客园升级事件,有不熟悉的朋友吗,没关系,我给你搬运好了,请回顾一下Powered by .NET Core 系列博文:【故障公告】发布 .N…

.Net Core2.1 秒杀项目一步步实现CI/CD(Centos7)系列二:k8s高可用集群搭建总结以及部署API到k8s...

前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署的,这个集群差不多搞了一周时间,关于k8s的知识点,我也是刚入门,这方面的知…

使用Asp.net Core3Blazor 的全栈式网站开发体验

最新的微软视频: Full stack web development with ASP.NET Core 3.0 and Blazor - BRK3017 以下是重要步骤截图配注解,注意图多杀猫:此图是.Net Core3的全栈解决方案示意图。话说此图的第一部分Client 是可以灵活替换的,哪怕它是…

k8s集群部分常见问题处理

目录部分常见问题处理Coredns CrashLoopBackOff 导致无法成功添加工作节点的问题添加工作节点时提示token过期kubectl 执行命令报“The connection to the server localhost:8080 was refused”网络组件flannel无法完成初始化部分节点无法启动pod最后部分常见问题处理结合我们上…

Hyper-V + CentOS7 网络设置(视频教程)

Hyper-V Centos7 网络设置 本文目标:1、 设置虚拟机固定IP:无论物理机的网络环境怎么变化,都需要保持虚拟机的IP地址不变,保证本机使用xshell等终端访问始终用同一个IP地址2、物理机可访问虚拟机,虚拟机是否可访问网络…

Consul的反熵

熵熵是衡量某个体系中事物混乱程度的一个指标,是从热力学第二定律借鉴过来的。熵增原理孤立系统的熵永不自动减少,熵在可逆过程中不变,在不可逆过程中增加。熵增加原理是热力学第二定律的又一种表述,它更为概括地指出了不可逆过程…

通过Blazor使用C#开发SPA单页面应用程序(2)

今天我们尝试创建一个默认的Blazor应用。.Net Core 3.0需要Visual Studio 2019 的支持。安装.Net Core 3.0 预览版 SDK版本,注意预览版对应的VS版本,我这里安装的是v3.0.0-preview6。一定要开启预览选项才能使用Net Core Preview,在工具> …

通过Blazor使用C#开发SPA单页面应用程序(1)

2019年9月23——25日 .NET Core 3.0即将在.NET Conf上发布! .NET Core的发布及成熟重燃了.net程序员的热情和希望,一些.net大咖也在积极的为推动.NET Core而不懈的努力。在这次.NET Core 3.0中一项新的技术也首次出现在人们的视野,这就是Blazor。说起Bla…

基于 WPF 模块化架构下的本地化设计实践

背景描述最近接到一个需求,就是要求我们的 WPF 客户端具备本地化功能,实现中英文多语言界面。刚开始接到这个需求,其实我内心是拒绝的的,但是没办法,需求是永无止境的。所以只能想办法解决这个问题。首先有必要说一下我…