私はこの質問をWindowsユーザーとして質問していますが、回答をWindowsのみに限定しないでください。
Azure CLIコマンドをPower-Shellで実行してみましたが、それらは正常に実行されていますが、逆はできません。その場合、なぜ2つの別個のコマンドセットがあるのですか? Power-Shellだけで作業しないのはなぜですか?私はいくつかの基本的なコマンドを試してみましたが、フィルターコマンド以外はすべて機能しています| find
はCLIでのみ機能し、| Select
はPower-Shellでのみ機能します。
Azure CLIはクロスプラットフォームサポート用であることを知っています。しかし、Windowsユーザーには違いがありますか? Power-ShellでCLIコマンドを実行すると、何か影響がありますか?
前もって感謝します。
既存の答えはこの質問を見るばかげた方法です。そして誤解を招く。
最大の違いは、Azure CLIがbinary
(異なるプラットフォームで実行可能)であり、Powershellがプラットフォーム間で機能するShell
であることです。 Azure Powershellは、Powershellモジュールの集まりで、他のすべてはそこから派生しています。
シェルではないため、in the cli
がないため、find
はCLIでは機能しません。 Windows OSのbinary
はWindows OSのselect
であるため、findはWindowsのPowershellで完全に正常に機能します。
さらに、Azure CLIからデータを検索する場合は、findではなく--queryパラメーターを使用する必要があります
これも議論の余地があります。JMESPathクエリ言語は、特別な理由なしに複雑すぎるため、Azure Cliが公式のJMESPathドキュメントと実際にどのように互換性があるのかわかりません。私は、Powershellを使用してAzure Cliコマンドを実行し、PowerShellで出力JSONを解析することを好みます。明らかに、Powershellは私ほど快適ではないかもしれませんし、これが便利ではないかもしれません。
私は以前の答えが好きです。私は、企業世界の人々に1つを選ばざるを得ない別の視点を追加したいだけです。
その場合、なぜ2つの別個のコマンドセットがあるのでしょうか。なぜPower-Shellで作業しないのですか?
言い換え:Az CLIとAz PowerShellはどちらも、同じAPIセットであるAzure APIを呼び出すだけです。 理論的にと最終的には両方の方法ですべてを行うことができるため、これは重要です
では、なぜマイクロソフトは同じことを行う2つの方法を作成して維持したのでしょうか。
マーティンファウラーの発言:ただし、チームのスキルはモノリス/マイクロサービスの選択を上回ります
monolith/microserviceをPowerShell/Bashで変更すると、これが質問に答えます。
Bashを使用してシステムを何十年も開発している人がいると思いますが、PowerShellのヘビーユーザーである他のチームもいると思います。 Microsoftは、Azureを使用できるようにするために、まったく新しいプログラミング言語を学ぶ必要がないように望んでいます。
概要:
チームがPowerShellに慣れている場合は、PowerShellを使用して、できる限り多くのネイティブPowerShellを実行します。このようにして、エラー処理、OOPの概念、環境設定、並列化など)から利益を得ることができます
あなたのチームがLinux管理者、ジェンキンスのヘビーユーザーであり、Bashを何百万行も使って既にそこにある他のものを自動化し、生涯Bashで作業している場合は、CLIを使用して、すでに構築されているすべてのツールで一貫性を保つ