Azure CLI を使用してタグを適用する

この記事では、Azure CLI を使用してリソース、リソース グループ、サブスクリプションにタグを付ける方法について説明します。 タグの推奨事項と制限事項については、「タグを使用して Azure リソースと管理階層を整理する」を参照してください。

タグを適用する

Azure CLI には、タグを適用するために、az tag createaz tag update という 2 つのコマンドが用意されています。 Azure CLI 2.10.0 バージョン以降が必要です。 az version を使用して、お使いのバージョンを確認できます。 更新またはインストールする方法については、「Azure CLI のインストール」を参照してください。

az tag create では、リソース、リソース グループ、またはサブスクリプションのすべてのタグが置き換えられます。 コマンドを呼び出すときに、タグを付けるエンティティのリソース ID を渡します。

次の例では、一連のタグがストレージ アカウントに適用されます。

resource=$(az resource show -g demoGroup -n demostorage --resource-type Microsoft.Storage/storageAccounts --query "id" --output tsv)
az tag create --resource-id $resource --tags Dept=Finance Status=Normal

コマンドが完了すると、リソースに 2 つのタグが付いていることがわかります。

"properties": {
  "tags": {
    "Dept": "Finance",
    "Status": "Normal"
  }
},

異なるタグを指定してコマンドをもう一度実行すると、前のタグが消えることに注意してください。

az tag create --resource-id $resource --tags Team=Compliance Environment=Production
"properties": {
  "tags": {
    "Environment": "Production",
    "Team": "Compliance"
  }
},

既にタグがあるリソースにタグを追加するには、az tag update を使用します。 --operation パラメーターを Merge に設定します。

az tag update --resource-id $resource --operation Merge --tags Dept=Finance Status=Normal

2 つの新しいタグが追加され、既存のタグが大きくなることに注意してください。

"properties": {
  "tags": {
    "Dept": "Finance",
    "Environment": "Production",
    "Status": "Normal",
    "Team": "Compliance"
  }
},

各タグ名に対して設定できる値は 1 つだけです。 タグに新しい値を指定すると、マージ操作を使用した場合でも、新しいタグで古い値が置き換えられます。 次の例では、Status タグを Normal から Green に変更します。

az tag update --resource-id $resource --operation Merge --tags Status=Green
"properties": {
  "tags": {
    "Dept": "Finance",
    "Environment": "Production",
    "Status": "Green",
    "Team": "Compliance"
  }
},

--operation パラメーターを Replace に設定すると、既存のタグが新しいタグのセットに置き換えられます。

az tag update --resource-id $resource --operation Replace --tags Project=ECommerce CostCenter=00123 Team=Web

リソースには新しいタグだけが残ります。

"properties": {
  "tags": {
    "CostCenter": "00123",
    "Project": "ECommerce",
    "Team": "Web"
  }
},

同じコマンドを、リソース グループまたはサブスクリプションに対しても使用できます。 タグを付けるリソース グループまたはサブスクリプションの識別子をそれらに渡します。

リソース グループに新しいタグのセットを追加する場合の使用方法は、次のとおりです。

group=$(az group show -n demoGroup --query id --output tsv)
az tag create --resource-id $group --tags Dept=Finance Status=Normal

リソース グループのタグを更新する場合の使用方法は、次のとおりです。

az tag update --resource-id $group --operation Merge --tags CostCenter=00123 Environment=Production

サブスクリプションに新しいタグのセットを追加する場合の使用方法は、次のとおりです。

sub=$(az account show --subscription "Demo Subscription" --query id --output tsv)
az tag create --resource-id /subscriptions/$sub --tags CostCenter=00123 Environment=Dev

サブスクリプションのタグを更新する場合の使用方法は、次のとおりです。

az tag update --resource-id /subscriptions/$sub --operation Merge --tags Team="Web Apps"

タグの一覧を表示する

リソース、リソース グループ、またはサブスクリプションのタグを取得するには、az tag list コマンドを使用して、エンティティのリソース ID を渡します。

リソースのタグを表示するには、次のように使用します。

resource=$(az resource show -g demoGroup -n demostorage --resource-type Microsoft.Storage/storageAccounts --query "id" --output tsv)
az tag list --resource-id $resource

リソース グループのタグを表示するには、次のように使用します。

group=$(az group show -n demoGroup --query id --output tsv)
az tag list --resource-id $group

サブスクリプションのタグを表示するには、次のように使用します。

sub=$(az account show --subscription "Demo Subscription" --query id --output tsv)
az tag list --resource-id /subscriptions/$sub

タグで一覧を取得する

特定のタグ名と値を持つリソースを取得するには、次のように使用します。

az resource list --tag CostCenter=00123 --query [].name

特定のタグ名と任意のタグ値を持つリソースを取得するには、次のように使用します。

az resource list --tag Team --query [].name

特定のタグ名と値を持つリソース グループを取得するには、次のように使用します。

az group list --tag Dept=Finance

タグを削除する

特定のタグを削除するには、az tag update を使用し、 --operationDelete に設定します。 削除するタグのリソース ID を渡します。

az tag update --resource-id $resource --operation Delete --tags Project=ECommerce Team=Web

指定したタグが削除されました。

"properties": {
  "tags": {
    "CostCenter": "00123"
  }
},

すべてのタグを削除するには、az tag delete コマンドを使用します。

az tag delete --resource-id $resource

スペースを処理する

タグの名前または値にスペースが含まれている場合は、引用符で囲みます。

az tag update --resource-id $group --operation Merge --tags "Cost Center"=Finance-1222 Location="West US"

次のステップ