Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure CLI vs Powershell?_Powershell_Azure_Azure Cli_Azure Cli2 - Fatal编程技术网

Azure CLI vs Powershell?

Azure CLI vs Powershell?,powershell,azure,azure-cli,azure-cli2,Powershell,Azure,Azure Cli,Azure Cli2,无法准确理解Windows环境中Azure CLI的优点 它是否针对希望从Linux环境管理Azure IAAS的用户 我认为这将是非Windows管理员的方式。 PowerShell Core是否不会在所有平台上都进行良好的移植,以服务于跨平台观众 简而言之,值得学习Azure CLI吗 Azure CLI是一个类似于PowerShell的工具,可用于所有平台。无论您使用什么平台:Windows、Linux或Mac,都可以使用相同的命令 现在,有两个版本的Azure CLI。Azure CLI

无法准确理解Windows环境中Azure CLI的优点

它是否针对希望从Linux环境管理Azure IAAS的用户

我认为这将是非Windows管理员的方式。 PowerShell Core是否不会在所有平台上都进行良好的移植,以服务于跨平台观众

简而言之,值得学习Azure CLI吗


Azure CLI是一个类似于PowerShell的工具,可用于所有平台。无论您使用什么平台:Windows、Linux或Mac,都可以使用相同的命令

现在,有两个版本的Azure CLI。Azure CLI 1.0使用Node.js编写以实现跨平台功能,而新的Azure CLI 2.0使用Python编写以提供更好的跨平台功能。两者都是开源的,可以在Github上获得但是,目前只有某些PowerShell cmdlet支持在Linux上使用。

它是否针对希望从Linux管理Azure IAAS的用户 环境


我想答案是肯定的。对于Linux或Mac开发人员,我认为他们更可能使用Azure CLI。

Azure CLI和PowerShell包都使用Azure的REST API

正如我们的一位微软联系人所说:使用你喜欢和喜欢的任何东西

Azure CLI有一些优点:

  • 开源——它有很多优点。未来可能会发展得更快。您可以查看代码中真正的内容,社区可能会更大,等等
  • Azure CLI可以与Groovy、Python、Ruby或任何其他脚本语言一起使用。与有经验的PowerShell开发人员相比,找到这种语言的优秀开发人员更容易。例如:我选择Groovy是因为Java。使用此组合比学习PowerShell脚本更容易
  • 目前,PowerShell有一个非常大的积极因素:Azure有一个巨大的PowerShell脚本示例库。但是:通常情况下,你必须自己去做才能满足你的需求——因此一个例子可能是一个很好的起点——有时候从头开始比较容易


    我的建议是:使用Azure CLI-->进行脚本编写,使用贵公司熟悉的语言。

    在2018年之前,Powershell在非Windows平台上不可用。从2018年1月开始,Powershell将在MacOS和Linux平台上提供


    MacOS或Linux上的Powershell安装说明可用

    Powershell也是开源的。 微软刚刚发布了PowerShell Azure Az模块(2018年12月),该模块使用.Net内核。因此它可以在Linux、Mac OS和Windows上运行。
    如果愿意,Azure CLI仍然适用于Linux开发人员。

    只是想添加我对Azure CLI和Az PowerShell的体验

    根据2019年的情况,这两个命令都是跨平台的,因此它应该只是一种语言/语法首选项,但对于Azure Cli,所有/大多数命令都是幂等的

    我最终用Azure Cli脚本替换了我所有的ARM模板,因为它不那么冗长,而且易于阅读

    使用Az Powershell,您仍然需要在创建资源之前检查资源是否存在,否则它将引发异常,因此脚本可能会变得非常复杂

    我们在Azure DevOps中同时使用Azure Cli和Az Powershell。Azure Cli命令现在可以从bash(Linux)或bat(Windows)脚本执行。所以它不是最佳的。。。(编辑2020您现在也可以使用Powershell脚本运行Azure CLI)

    • 我们使用Azure Cli部署资源,因为它易于阅读,并且命令是幂等的
    • 对于复杂的脚本,我更喜欢使用PowerShell,因为它有许多有用的语言功能
    编辑2021

    有了新的,我开始回到“ARM类型”部署:如果您理解ARM模板,并且即使在复杂的部署中也能保持可读性,那么Bicep真的很容易使用


    除了Az CLI(Powershell core)之外,它还处理我需要执行的大部分脚本编写。

    Powershell与CLI相比有一些显著的优势:

    • 。因此,您可以轻松编写模块或代码,并将其推送到安全的Azure函数。CLI不是受支持的语言
    • 同样适用于,但CLI不是受支持的语言
    • 如果您希望协调覆盖本地和云的混合工作负载,即将服务部署到Windows服务器,然后在Azure中部署一个端点以供其交互,PowerShell可以,但CLI不能(如果它这样做了,我会感到惊讶)
    • 如果您想投资一种可以调用旧模块进行管理的语言,PowerShell可以,但CLI不能
    • 如果您想用C#或任何其他语言创建自己的DLL,并将其合并到脚本中。我不得不对DLL进行反向工程,并将它们包装在PowerShell中,以合并到编排中
    • 使用PowerShell扩展DevOps管道的成功率明显高于CLI
    • PowerShell对Azure单元和冒烟测试以及大型Azure并行部署等场景具有非常好的多线程工作负载支持(DevOps并行任务会变得笨重)。TBH,我不知道Azure CLI中的本机多线程
    • 我可以开发一个模块,在上述所有场景中使用它,然后将其提供给终端客户;TBH,我不相信我能为CLI做到这一点(创建一个模块,对其进行数字签名,然后使用nuget feed发行版)
    在PowerShell中几乎没有我没有编写过的脚本,而使用CLI我可以做一些事情,但不能做其他事情。我的PowerShell技能在过去10年中一直保持着相关性,我一直在做企业SharePoint、Dynamics、now Office和Azure。。。所以我有偏见

    简而言之,值得学习Azure CLI吗

    我注意到在进行MS Azure培训(AZ-900基础知识和AZ-303 Azure架构师)时,练习是在Azure CLI中完成的。当然,他们都是