はじめに
こんにちは、ACS事業部の吉川です。
本記事はQiitaのAzure Advent Calendar 2022の5日目の記事です。
全国のAzureユーザーの皆様、リソースの命名に困っていないでしょうか。
自由に名前を決められるものはさておき、Azure全体でユニークな名前 が求められるリソースの場合、他のユーザーと被らないような名前を付ける必要があります。
ポータルで作る分には下記のようにエラーが表示されるのでいいのですが…
CLIやIaCを利用する際、実行してみて初めて利用可能な名前かどうかわかる、というのは不便ですよね。
そんなときに便利な、利用可能な名前かどうかを事前に確認できるコマンド を紹介します。
コマンド
以下がストレージアカウントの名前をチェックするコマンドです。
az storage account check-name -n <名前>
試しに example
という名前を指定して実行すると、以下のようにレスポンスが表示されました。
{ "message": "The storage account named example is already taken.", "nameAvailable": false, "reason": "AlreadyExists" }
"reason": "AlreadyExists"
ということですので、既に他で利用済みのため使用不可("nameAvailable": false
) という結果でした。
では名前を変えて再実行すると…
az storage account check-name -n example20221205
{ "message": null, "nameAvailable": true, "reason": null }
今度は "nameAvailable": true
と利用可能であるという結果が表示されました。
このように一部のリソースでは、Azure CLIを利用してリソース名を事前チェックすることが可能です。
ストレージアカウント以外では、以下のようなものがあります。
Azure Container Registry
az acr check-name -n <名前>
Cosmos DB
az cosmosdb check-name-exists -n <名前>
API Management
az apim check-name -n <名前>
REST API
Azure CLIでは確認できないリソースでも、REST APIでは対応している場合があります。
例えばApp Serviceでは以下のAPIが存在します。
サブスクリプションIDと認証トークンを取得して以下のように実行すると…
curl -X POST "https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/providers/Microsoft.Web/checknameavailability?api-version=2022-03-01" \ -H "Authorization:Bearer ${TOKEN}" \ -d "type=Microsoft.Web/sites" \ -d "name=example"
以下のようにレスポンスが返ってきます。
{ "nameAvailable": false, "reason": "AlreadyExists", "message": "Hostname 'example' already exists. Please select a different name." }
API呼び出すのは少し面倒ですが、CLIと同じように確認できそうですね。
おわりに
ちょっとだけ便利な名前確認コマンド、いかがでしたでしょうか。 皆様のAzureライフの一助となれば幸いです。
私達ACS事業部はAzure・AKSを活用した内製化のご支援をしております。ご相談等ありましたらぜひご連絡ください。
また、一緒に働いていただける仲間も募集中です!
切磋琢磨しながらスキルを向上できる、エンジニアには良い環境だと思います。ご興味を持っていただけたら嬉しく思います。