Azureには様々なリージョンがあり、以下の公式サイトで公開されていますが、表記はすべて「Japan East」のようなスペースがある形式になっています。
List of Azure regions | Microsoft Learn
ところが、PowerShellやBicepでリージョンを指定する際などは「Japan East」のような形式ではなく、「japaneast」のようなスペースの無い形式のリージョン名称が必要になることがあります。
この情報は上記サイトには記載が無く、これまでは都度コマンドレットで調べていました。ただ、頻繁に利用するため、最新の情報を一覧する事は出来ないかと考え、やり方を調べました。
本記事では、PowerShellのコマンドレットGet-AzLocation
の出力結果を使って、Azureのリージョンに関する各種情報をExcelで利用できるようにする方法を解説します。
- Get-AzLocationによるリージョン情報の取得
- 新規Excelファイルの作成
- Power Queryによるjsonの展開と加工:展開編
- Power Queryによるjsonの展開と加工:加工編
- Excelの利用例
- リージョン情報の更新
- おわりに
Get-AzLocationによるリージョン情報の取得
Connect-AzAccount
でサインイン後、Get-AzLocation
コマンドレットを使ってリージョン情報を取得し、json形式で結果を保存します。
Get-AzLocation | ConvertTo-Json | Out-File C:\work\AzureLocations.json -Encoding utf8
保存したファイルは、OneDriveやSharePointなどのオンラインに保存しておきます。
そのうえで、Webからアクセスするためのパスを控えておきます。
実際の値は下記のようになります。
https://<テナント毎のID>-my.sharepoint.com/personal/<ユーザー毎のID>/Documents/Work/Azure/AzureLocations.json
新規Excelファイルの作成
出力したjsonファイルを取り込むためのExcelファイルを別途用意します。
場所はどこでもよいのですが、今回はjsonと同じフォルダに「Azureリージョン一覧.xlsx」として作成しました。
Power Queryによるjsonの展開と加工:展開編
作成した「Azureリージョン一覧.xlsx」を開き、jsonを読み込めるようにします。「データ」タブを開き、「Webから」を選択します。
先ほど控えたjsonのパスを入力します。
必要に応じてサインインを行います。
Power Queryエディタが起動しますので、まずは「テーブルへの変換」を実行します。
既定値のままOKを押して進めます。
「Column1」の横の記号をクリックし、「元の列名をプレフィックスとして使用します」のチェックを外し、「OK」を押します。
この時点でほぼ求める形になりました。
Power Queryによるjsonの展開と加工:加工編
ここからは、利用ケースによって加工の仕方が変わってくると思います。ニーズに合わせて加工してご利用ください。
今回は、利用可能なリージョンとその名前をサービス単位で絞り込んで判断できるように、データを加工していきます。
まず、LongitudeとLatitudeの列は削除します。*1
RegionTypeをPhysicalだけに変更した後で、列を削除します。
PairedRegionは今回は利用しないので削除します。
Providersの横の記号をクリックし、「新しい行に展開する」を選択します。
サービスごとに行が分割される形で展開されます
「閉じて読み込む」をクリックします。
これで、Azureのリージョン一覧をExcelで利用できるようになりました。
Excelの利用例
後は、普通にExcelのフィルタを使って必要な情報を絞り込んで利用します。
例として、アジアでAzure仮想マシンが利用できるリージョンのうち、推奨のものを抽出してみます。
- RegionCategory:Recommended
- GeographyGroup:Asia Pacific
- Providers:Microsoft.Compute
このように、一覧で取得することが出来ました。
リージョン情報の更新
このリージョン情報は、あくまでGet-AzLocationを実行した時点でのデータとなります。必要に応じて適宜更新して利用してください。
今回は更新を容易にする目的もあり、AzureLocations.jsonをOneDrive上に保存しています。
そのため、AzureLocations.jsonを再取得して上書き保存し、Excelの「データ」タブから「すべて更新」を実行するだけで、最新の情報にすることが出来ます。
おわりに
これまで都度「japaneast」のようなスペースの無い形式のリージョン名称を調べていたのですが、Get-AzLocationコマンドレットとPower Queryで継続的に利用できる仕組みが作れるのではないか、と思って試してみました。これから活用できそうです。
同じ悩みを持った方の参考になれば幸いです。
*1:緯度、経度の情報のようです
舟越 匠(日本ビジネスシステムズ株式会社)
人材開発部に所属。社内向けの技術研修をしつつ、JBS Tech Blog編集長を兼任。2024年8月からキーマンズネットでPower Automateの連載を開始。好きなサービスはPower AutomateやLogic Apps。好きなアーティストはZABADAKとSound Horizon。
担当記事一覧