😀
Azure CLI を使って Azure Quota API を試してみた
背景と目的
Azure ポータルのサブスクリプション -> 設定にある「使用料+クォータ」で確認している、VM の vCPU 使用量が REST API で取得出来るようになったようです。
ただ、REST API のアクセストークンを毎回取得して実行しても良いのですが、もっと簡単に Azure CLI を使った REST API の実行方法があるので試してみました。
前提条件
コマンドの実施環境は、Mac + Azure CLI です。
zsh
% sw_vers
ProductName: macOS
ProductVersion: 11.2.3
BuildVersion: 20D91
% az version
{
"azure-cli": "2.21.0",
"azure-cli-core": "2.21.0",
"azure-cli-telemetry": "1.0.6",
"extensions": {}
}
実施内容
zsh
# Azure Quota API を実行するためのリソースプロバイダーが登録されているか確認します。
% az provider show \
--namespace Microsoft.Capacity \
--query registrationState
"NotRegistered" # 登録されていませんでした。
# Azure Quota API を実行するためのリソースプロバイダーを登録します。
% az provider register \
--namespace Microsoft.Capacity
Registering is still on-going. You can monitor using 'az provider show -n Microsoft.Capacity'
# Azure Quota API を実行するためのリソースプロバイダーが登録されたかを確認します。
% az provider show \
--namespace Microsoft.Capacity \
--query registrationState
"Registering" # 登録されました。
# サブスクリプションの ID を取得します。
subscriptionid=$(az account show \
--query id \
--output tsv)
# 対象リージョンをセットします。
region=japaneast
# Azure CLI で REST API を実行します。
% az rest \
--method get \
--url "https://management.azure.com/subscriptions/${subscriptionid}/providers/Microsoft.Capacity/resourceProviders/Microsoft.Compute/locations/${region}/serviceLimits?api-version=2020-10-25" \
--query "value[].{name:properties.name.localizedValue, currentValue:properties.currentValue, limit:properties.limit}" \
--output table
Bad Request({"error":{"code":"MissingRegistrationForResourceProvider","message":"The subscription is not in registered state for the resource provider: Microsoft.Capacity."}}) # まだリソースプロバイダーの登録が反映していないようです。
実施結果
Azure Quota API を Azure CLI から実行して、対象リージョンのクォータ名、現在の使用量、リミット(現在の上限)を一覧表示することが出来ました。
zsh
% az rest \
--method get \
--url "https://management.azure.com/subscriptions/${subscriptionid}/providers/Microsoft.Capacity/resourceProviders/Microsoft.Compute/locations/${region}/serviceLimits?api-version=2020-10-25" \
--query "value[].{name:properties.name.localizedValue, currentValue:properties.currentValue, limit:properties.limit}" \
--output table
Name CurrentValue Limit
---------------------------------------- -------------- -------
Total Regional vCPUs 2 10
Total Regional Low-priority vCPUs 0 10
Standard DSv4 Family vCPUs 2 10
Standard BS Family vCPUs 0 10
Basic A Family vCPUs 0 10
Standard A0-A7 Family vCPUs 0 10
Standard A8-A11 Family vCPUs 0 10
Standard D Family vCPUs 0 10
Standard Dv2 Family vCPUs 0 10
Standard DS Family vCPUs 0 10
Standard DSv2 Family vCPUs 0 10
Standard G Family vCPUs 0 10
Standard GS Family vCPUs 0 10
Standard F Family vCPUs 0 10
Standard FS Family vCPUs 0 10
Standard NV Family vCPUs 0 6
Standard NC Family vCPUs 0 6
Standard H Family vCPUs 0 8
Standard Av2 Family vCPUs 0 10
Standard LS Family vCPUs 0 10
Standard MS Family vCPUs 0 0
Standard Dv3 Family vCPUs 0 10
Standard DSv3 Family vCPUs 0 10
Standard Ev3 Family vCPUs 0 10
Standard ESv3 Family vCPUs 0 10
Standard Dv4 Family vCPUs 0 10
Standard DDv4 Family vCPUs 0 10
Standard DDSv4 Family vCPUs 0 10
Standard Ev4 Family vCPUs 0 10
Standard EDv4 Family vCPUs 0 10
Standard ESv4 Family vCPUs 0 10
Standard EDSv4 Family vCPUs 0 10
Standard FSv2 Family vCPUs 0 10
Standard NDS Family vCPUs 0 0
Standard NCSv2 Family vCPUs 0 0
Standard NCSv3 Family vCPUs 0 0
Standard LSv2 Family vCPUs 0 10
Standard EIv3 Family vCPUs 0 10
Standard EISv3 Family vCPUs 0 10
Standard DCS Family vCPUs 0 0
Standard MSv2 Family vCPUs 0 0
Standard HBS Family vCPUs 0 0
Standard HCS Family vCPUs 0 0
Standard NVSv3 Family vCPUs 0 0
Standard NC Promo Family vCPUs 0 6
Standard H Promo Family vCPUs 0 8
Standard DAv4 Family vCPUs 0 10
Standard DASv4 Family vCPUs 0 10
Standard EAv4 Family vCPUs 0 10
Standard EASv4 Family vCPUs 0 10
Standard DCSv2 Family vCPUs 0 0
Standard NVSv4 Family vCPUs 0 0
Standard NDSv2 Family vCPUs 0 0
Standard HBrsv2 Family vCPUs 0 0
Standard NCASv3_T4 Family vCPUs 0 0
Standard EIDSv4 Family vCPUs 0 10
Standard XEISv4 Family vCPUs 0 10
Standard HBv3 Family vCPUs 0 0
Standard MDSMediumMemoryv2 Family vCPUs 0 10
Standard MIDSMediumMemoryv2 Family vCPUs 0 10
Standard MSMediumMemoryv2 Family vCPUs 0 10
Standard MISMediumMemoryv2 Family vCPUs 0 10
Discussion