Azure CLI のコマンドで変数を使用する方法

コマンドで値を直接指定するだけでなく、いくつかの方法で値を指定できます。

  • シェル変数を使用する
  • 複数のコマンドで使用するサブスクリプションを設定する
  • 一部のパラメーターの既定値を作成する
  • 一部のパラメーターの永続的な値を使用する

この記事では Azure CLI コマンドで値を指定するさまざまな方法について説明します。

前提条件

  • Bash 環境で Azure Cloud Shell を使用します。

    新しいウィンドウで Cloud Shell を起動する

  • 必要に応じて、Azure CLI をインストールして、CLI リファレンス コマンドを実行します。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI でサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 追加のサインイン オプションについては、「Azure CLI を使用してサインインする」を参照してください。
    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用する」を参照してください。
    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

シェル変数を使用する

Azure CLI はシェルで実行されます。 この記事では Bash を使用します。 その他のシェルの詳細については、「Azure CLI を効果的に使用する」を参照してください。 Bash で変数を使用して、パラメーターの値をコマンドに渡すことができます。 また、Azure CLI で変数を使用すると、コマンドを断片的に、またはスクリプトで再利用できます。

この例では、既存の仮想マシンの記憶域ディスクと同じ種類の新しい記憶域ディスクを作成します。

# Assign values to variables
MyResourceGroup=ContosoRGforVM
MySubscription="Contoso subscription"
vmName=VM01

# Get a value for a variable based on an existing virtual machine
osType=$(az vm get-instance-view --resource-group $MyResourceGroup \
   --name $vmName --subscription "$MySubscription" \
   --query 'storageProfile.osDisk.osType' --output tsv)

# Create a disk of the same type by using the variable value
az disk create --resource-group $MyResourceGroup --name DestinationDisk --size-gb 20 --os-type $osType

この例では、MyResourceGrouposType など、再利用される変数に値を割り当てる方法を示します。 コマンド az vm get-instance-view とクエリ storageProfile.osDisk.osType を組み合わせると、ディスクの OS の種類が返されます。 このコマンドを $() でラップすると、コマンドの戻り値が osType に割り当てられます。 --query と JMESPath クエリの詳細については、「JMESPath クエリを使用して Azure CLI コマンドの出力に対してクエリを実行する方法」を参照してください。

別のコマンドから変数に値を代入する場合は、そのコマンドで互換性のある出力形式が使用されていることを確認してください。 az vm get-instance-view コマンドは tsv 出力形式を使用します。 このオプションは、追加の書式設定、キー、またはその他の記号を含まない値を返します。 一部の出力形式には、構造体や引用符などの文字が含まれます。 詳細については、「Azure CLI コマンドの出力形式」をご覧ください。

この例では、MySubscription 変数は引用符で囲む必要があります。 この変数の値には、コマンドで解析できないスペースが含まれています。 サブスクリプション ID のみを使用する場合は、引用符を使用する必要はありません。

サブスクリプションを設定する

多くのコマンドは、特定のサブスクリプションを必要とします。 Azure リソースは、サブスクリプションに存在するリソース グループに存在します。 Azure CLI は、ユーザーのセッションで既定のサブスクリプションを使用します。 現在のサブスクリプション値を確認するには、az account show コマンドを実行します。

az account show --output table

アクセスできるサブスクリプションが 1 つのみの場合もあります。 詳細については、「Azure CLI で Azure サブスクリプションを使用する」を参照してください。az account set コマンドを使用して、現在のサブスクリプションを設定することができます。

az account set --subscription "My Demos"

サブスクリプションを設定した後、--Subscription パラメーターを省略でき ます。 詳細については、「Azure CLI で Azure サブスクリプションを使用する」を参照してください。

既定値を作成する

az config set コマンドを使用して、いくつかのパラメーターの値を設定できます。 この例では、既定のリソース グループを設定します。

az config set defaults.group=ContosoRGforVM

このコマンドを実行した後、次のコマンドを実行して、ContosoRGforVM リソース グループにストレージ アカウントを作成できます。

az storage account create --name storage135 --location eastus --sku Standard_LRS

このコマンドにリソース グループが指定されていないことに注意してください。 詳細については、「既定のリソース グループを設定する」を参照してください。

ヒント

さまざまな方法でパラメーターの値を取得するコマンドによって、混乱が生じる可能性があります。 コマンドによって、リソース グループが見つからないなどの予期しない結果が発生した場合は、既定値が存在する可能性があります。

エラーが発生した場合は、パラメーターと値を指定してコマンドを再度実行してください。 パラメーターに対する明示的な値は、常に他のオプションよりも優先されます。

この方法で、いくつかのパラメーターに値を指定できます。 詳細については、「Azure CLI の構成」を参照してください。

永続的な値を使用する

永続化されたパラメーター値を使用すると、値を 1 回だけ指定できます。 リソース グループで複数の関連するアクションを実行している場合は、そのグループを繰り返し指定する必要はありません。

このコマンドを実行して、パラメーター値を永続化します。

az config param-persist on

永続化をオンにした後、リソース グループを作成します。

az group create --name ContosoStorageRG --location eastus

永続化がオンになっている限り、--resource-group パラメーターを以後のコマンドから省略できます。 次のコマンドでは、ContosoStorageRG リソース グループにストレージ アカウントが作成されます。

az storage account create --name storage135 --location eastus --sku Standard_LRS

詳細については、「Azure CLI の永続化されたパラメーター」を参照してください。

リソースをクリーンアップする

この記事のいずれかのコマンドを試すためにリソースを作成した場合、az group delete マンドを使用してそれらを削除できます。

az group delete --name ContosoRGforVM
az group delete --name ContosoStorageRG

このコマンドによって、グループと、そのグループに含まれているすべてのリソースが一度に削除されます。

永続的なパラメーターを削除するには、az config param-persist delete コマンドを実行します。

az config param-persist delete --all

参照