Azure リソースの命名スマートに実施したい ！ Azure Naming Toolについて

# 概要
最近、個人的にAzureの検証をおこなっておりリソースを作っては消し、作っては消しを繰り返す日常を過ごしております。

プロジェクトや部署で命名規則がルール付けされていればそれに従うのですが、個人かつ一時的使用のためと思うとどうに力が入りきらず適当な命名をしていまい、作成した瞬間はどんなリソースであるのか把握しているのですが、数日もするとこのリソースは何のために作ったものだったか？
ときれいさっぱり忘れてしまっていて、消していいものなのか、消してはいけないものなのか確認するのに無駄にリソースを消費してしまっておる状況です。

そんな状況を打破することができないかと思い調べていたところ、Azure Naming Tool というWebアプリがあり試してみましたので本記事でまとめます。

# Azure の命名規則のベストプラクティス

そもそもどういった命名規則とするのがよいのか？についてMicrosoft でのAzureの命名のベストプラクティスが公開されております。

 [名前付け規則を定義する - Cloud Adoption Framework | Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/cloud-adoption-framework/ready/azure-best-practices/resource-naming)

またベストプラクティスにのっとった運用する際のリソースの省略形は下記で公開されています。

  [Azure リソースの省略形の例 - Cloud Adoption Framework | Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations)

 また、命名時の制限事項については下記にまとめられております。

  [リソースの名前付けに関する制限事項 - Azure Resource Manager | Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/management/resource-name-rules)

ベストプラクティスをしっかり読み込み、理解しルールを適切に設定して命名ができればいいのですが、使いつぶす環境ですとどうしても横着してしまいます。
また作るリソースが固定されてれば省略形を思い浮かべるのに迷いは生じないと思いますが、その都度種類が異なるリソースを作成して試している状況であると省略形がなんだったか思い出すのも容易ではないです。

そのような状況を打破できないかと思い調べたところ Azure Naming Tool にたどり着いた次第です。

# Azure Naming Tool について

Azure Naming Tool は下記にて公開されております。

 [mspnp/AzureNamingTool: The Azure Naming Tool is a .NET 8 Blazor application, with a RESTful API. The UI consists of several pages to allow the configuration and generation of Azure Resource names. The API provides a programmatic interface for the functionality.](https://github.com/mspnp/AzureNamingTool)

本ツールはMicrosoftの公式情報の[名前付け規則を定義する - Cloud Adoption Framework | Microsoft Learn]の注意よりリンクされております。

ドキュメントが非常に充実しており、こちらを熟読いただくことで必要な事項はすべて網羅できると思います。

 [Home · mspnp/AzureNamingTool Wiki](https://github.com/mspnp/AzureNamingTool/wiki)

また日本語ではあまり情報がないのですが、海外サイトにはさまざまな情報がある模様です。
特に Youtube が充実している印象です。

 [Azure Naming Tool Changes Everything - YouTube](https://www.youtube.com/watch?v=Ztmxx_KhZdE)
※ ドキュメントからリンクされれいる動画

  [Configurando o Azure Naming Tool - YouTube](https://www.youtube.com/watch?v=CVkuTir9Xzw&t=806s)


 [Azure Naming Tool Overview - YouTube](https://www.youtube.com/watch?v=gO5jAeqtWlc&t=2664s)

機能としては、リソース種別ごとの名前付けの制限事項を踏まえた命名をサポートするのは当然として、初期設定状況では重複した名前の生成はできないよう設定されており、発行した名前をログに記録して管理できるようになっており、ツボを押おさせた作りとなっております。

# 実際の利用イメージ

リソースの種類を選んで、各種項目を選択していくと命名される。
命名規則に反するとどこが問題か指摘をしてくれるというのが大雑把な使い方です。

![240916001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/db4cc229-599b-247e-b5b8-7db515375167.png)


# インストールについて

ドキュメント内の[Installation]確認いただくければ比較的容易に導入できるのではないかと思います。

GitHub Actionを使用してAzure Webアプリとして実行する
インストール手順は

* Dockerで構成する
* コンテナアプリとして構成する
* スタンドアプリとして実行する

などがありますが、推奨される手順は GitHub Action を使用してAzure Webアプリとして実行する方法となります。

今回、GitHub Actionを使用してインストールしてみましたところ、１点のハマりを除き非常にスムーズにインストールができました。

ハマった点は基本認証が有効でないとアプリのインストールに失敗する点です。

なお、手順においてはコマンドレットか、App Service の概要から公開プロファイルをダウンロードするよう記載がされております。
コマンドレットは基本情報の有効・無効に関係なく実行できますが、ダウンロードは下記Microsoftの公開情報によりますと基本認証が無効の状態ではできません。

 [Azure App Service から発行プロファイルを取得する - Visual Studio (Windows) | Microsoft Learn](https://learn.microsoft.com/ja-jp/visualstudio/azure/how-to-get-publish-profile-from-azure-app-service?view=vs-2022)

 そのことから GitHub Action を使用する手順においては基本認証を有効にする必要性があると考えられます。

ただし私自身が App service や GitHub に慣れていないところがあり、操作をミスしている可能性がを否定できず断言までは出来かねます。
ご自身でインストールをされ認証でエラーが発生する場合には、基本認証を有効としたApp Service でのインストールを試してみてください。

# 実際の利用状況について

運用環境で利用するなら相当に効果を発揮するものと思います。

一方つくっては消し、作っては消しの検証環境だとちょっと微妙な印象がぬぐえません。

命名する際にはいいのですが、省略形がなにのリソースか把握していないと確認する際に？が飛んでしまい、省略形の例を参照しながら命名をしていく運用になるため Azure naming tool を導入したことで劇的に効率アップにつながった印象をもててはいないです。

しかしながら本ツールを使っていけば、必然的に省略形が身についてベストプラクティスにのっとった命名ができるようになると思いますので今後も継続利用していきたいと思っております。

# 補足 作成する際のプランについて

GitHubにおいては B1 プランが選択されておりますが、常時使い続けるツールでもないと思います。
実際してクォーターを確認する限り無料の F1 プランでも問題は発生していませので、まずはミニマムな F1 プランで利用を開始して、問題が発生したらプランを変更するという運用で支障はないと想定されます。