AzurePowershell で特定のタグからリソース名を取得してみた

AzurePowershell AzurePowershell

AzurePowershellを利用して特定のタグからリソース名を取得してみました。

今回は、ローカル環境のファイルに取得した結果を書き込むということも試しています。

広告

事前準備

AzurePowershellのインストール

Powershellを利用しますがその中でAzurePowershellを実行しますのでAzurePowershellモジュールが必要になります。

以下の記事にインストール方法を記載していますので必要であれば参考にしてください。

Azure PowerShell をインストールしてみた
Powershell上でazモジュールを利用してAzureを操作する必要が出てきたため、Azure Powershellモジュールをインストールしてみました。 インストールするときに利用したコマンドや注意点などをインストールの流れに沿ってご...

サービスプリンシパルの作成

Azureのリソースを操作するために今回はサービスプリンシパルを利用します。

以下の記事にサービスプリンシパルの作成方法を記載していますので必要であれば参考にしてください。

【Azure】CLIでサービスプリンシパルを作成してみた
Azureを操作するCLIとしては「AzurePowershell」と「AzureCLI」が提供されています。 今回はそれらのCLIを利用してサービスプリンシパルを作成してみました。 1.AzureCLIで作成してみる Azureには にて...

Powershellスクリプトファイルの作成

以下の内容でpowershellファイル(拡張子が ps1 となるファイル)を作成します。

get-tag.ps1

#各情報が記載されたファイルから中身を読み取る
$ApplicationId = Get-Content C:\hogehoge\ApplicationId.txt
$Secret = Get-Content C:\hogehoge\Secret.txt
$tenantId = Get-Content C:\hogehoge\tenantId.txt

#クレデンシャルを作成する
$pw = ConvertTo-SecureString -String $Secret -AsPlainText -Force
$pscredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $pw

#ログインする
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId

#特定のファイルに指定したタグのリソース名を取得してファイルに書き込む
(Get-AzResource -Tag @{ TAG="test" }).name | ConvertTo-Json | Out-File C:\hogehoge\tag_result.json -Encoding utf8 -Append

このスクリプトを実行することで、

「C:\hogehoge」配下にある「tag_result.json」ファイルに、「タグ名が[TAG]の中でタグの値が[test]であるリソース名」を追記する

という処理を実行することができます。

スクリプト内で利用するファイルを配置

「ApplicationId.txt」「Secret.txt」「tenantId.txt」を用意します。
今回は「C:\hogehoge」配下にそれぞれの値を記載し配置しました。

また今回は「get-tag.ps1」ファイルも「C:\hogehoge」に配置し、バッチファイルを起動してPowershellファイルを実行しています。

以下の記事にPowershellファイルをバッチで起動する方法を記載していますので必要であれば参考にしてください。

【Powershell】バッチファイルでpowershellを実行する方法
powershlell で作成したスクリプトをバッチファイルで起動する方法をまとめました。 「powershellを実行させるときにクリック操作で実行できたら楽だな」と思ったのがきっかけで、バッチファイルと組み合わせることで実現ができそうで...

今回は「start.bat」というファイルを用意して、ps1ファイルを実行させます。

スクリプトを実行する

準備が終わり、ファイルが配置されたらバッチファイルを実行します。

hogehogeフォルダの確認

バッチファイルが実行されるとコマンドプロンプトが起動し、ps1ファイルのスクリプトも実行されていきます。

実行結果

実行が終わると、以下のように「tag_result.json」というファイルが作成され、その中に「タグ名が[TAG]の中でタグの値が[test]であるリソース名」が追記されます。

今回は2つのリソースがあることが確認できました。

実行後のjsonファイルの中身

手動で実行も可能

バッチファイルを実行するのでなく、Powershellのインターフェース上から上記のスクリプトを手動実行することも可能です。

ただし、その場合にはpowrshellの実行ポリシーには注意してください。

[参考]Tagで取得できる情報について

Azureのリソースにおいてタグが設定されている場合に、タグから取得できる情報には
「Name」「ResourceGroup」「ResourceType」「Location」「ResourceId」
などがあります。

この中から上記のスクリプトでは「Name」を取り出して、出力させてみました。

「Name」を取り出した結果
タイトルとURLをコピーしました