スクリプト環境

完了

このユニットでは、Azure リソースの管理に使用できるコマンド ライン シェルについて説明します。 要件に適したコマンド ライン シェルを選択する、概念をいくつか確認します。

コマンド ライン シェルとは

コマンド ライン シェルは、オペレーティング システムにアクションの実行を指示するテキストベースのプログラムです。 Bash、PowerShell、Windows PowerShell、cmd.exe はシェル環境です。 シェル環境によって、使用できるツールが決まりまるだけでなく、コマンドライン エクスペリエンスも変わります。

Bash

Bash は、コマンド ライン インタープリターおよびシェル スクリプト言語です。 Bash は Linux と macOS で実行されます。 Bash は、Azure Cloud Shell と Linux 用 Windows サブシステム (WSL) を介した Windows でも利用できます。

PowerShell

PowerShell は、コマンドライン シェル、スクリプト言語、および構成管理フレームワークで構成されるクロスプラットフォームのタスク自動化ソリューションです。 PowerShell は Windows、Linux、および macOS 上で実行されます。 PowerShell は、Azure Cloud Shell で利用することもできます。

Azure Cloud Shell

Azure Cloud Shell は、コンテナーで Linux を実行するホストされたシェル環境です。 Cloud Shell には、次の 2 つのコマンド ライン シェルがあります。

  • Azure CLI がプレインストールされた Bash
  • Azure PowerShell と Azure CLI がプレインストールされた PowerShell

Cloud Shell は Web ブラウザーからアクセスでき、Windows ターミナルと Visual Studio Code (VS Code) の統合を備えています。

サポートされているシェル環境

次の表は、各 Azure コマンド ライン ツールでサポートされているシェルを示しています。 この表で、

  • Supported アイコンは、指定したシェルでそのコマンド ライン ツールが supported 対象であることを示します。
  • Not supported アイコンは、指定したシェルのコマンド ライン ツールが not supported であることを示します。
シェル環境 Azure CLI Azure PowerShell Bicep Terraform
Bash Supported Not supported Supported Supported
PowerShell Supported Supported Supported Supported
Windows PowerShell Supported Supported Supported Supported
Azure Cloud Shell Supported Supported Supported Supported
cmd.exe Supported Not supported Supported Supported

Azure CLI には、5 つのすべてのシェル環境でそのコマンドを実行できるようにするインストーラーを備えています。

Azure PowerShell は Az という名前の PowerShell モジュールとしてパッケージ化されたコマンドレットのセットです。 実行可能ファイルではありません。 Az PowerShell モジュールでコマンドを実行するには、PowerShell または Windows PowerShell を使用する必要があります。

PowerShell は、そのランタイムとして .NET Core を使用するスタンドアロン インストールで、Windows、Linux、macOS にインストールすることができます。 Windows PowerShell は、Windows オペレーティング システムにプレインストールされているスクリプト環境シェルです。

PowerShell または Bash を使用して、Azure リソースを管理できます。 PowerShell と Bash では構文要素が異なるので、特定のシェル用にスクリプトを記述することをお勧めします。 たとえば、行連結文字に、Bash ではバックスラッシュ (\) が使用されますが、PowerShell ではバックティック (`) が使用されます。 シェル環境の違いによって、Azure CLI と Azure PowerShell の動作が変わることはありません。 ただし、コマンドライン エクスペリエンスは変わります。