PowerShellでCSVファイルの値を読み込んで利用する方法(CSVからAzureリソースの設定値を取得)
PowerShellでCSVファイルの内容を読み込んで利用する方法です。
読み込んだCSVファイルの設定値をもとに、Azure PowerShellでリソースグループを作成・削除する例を紹介しています。
PowerShellを使ってCSVファイルの内容を読み込み利用する
今回利用した環境
確認に使用したバージョンです。
-
- PowerShell : 7.6.0
- Az Module : 15.4.0
※Azure PowerShellを利用する場合は、事前にConnect-AzAccountでAzureへサインインしておく必要があります。
PowerShellでCSVファイルを読み込む場合はImport-Csvを使う
PowerShellでCSVファイルを読み込む場合にはImport-Csvを使います。
Import-Csvは、CSVファイルの各行をオブジェクトとして読み込み、ヘッダー行をプロパティ名として使用します。
逆にCSVファイルとして保存する場合はExport-Csvを使います。
なお、オブジェクトをCSV形式の文字列に変換する場合はConvertTo-Csvを使います。
※CSVファイルの文字コードがShift-JISなどUTF-8以外の場合には、-Encodingパラメーターでエンコーディングを指定します。
foreachを使って反復処理
foreachは配列やコレクションの要素を順次読み取って反復処理を行います。
読み込んだCSVの各行に対して反復処理を実行し、複数のリソースをまとめて作成できます。
about_Foreach(Microsoft Learn)
※反復処理にはforeachのほかにforを使う方法や、パイプラインでForEach-Objectを使う方法もあります。
サンプルのCSVファイル
リソースグループ名とリージョンの設定値を記載したCSVファイルを作成し、保存します。
CSVファイルの1行目はヘッダー行で、Import-Csvがプロパティ名として使用します。
| CSVファイル | |
|
CSVファイルを読み込んで値を出力
CSVファイルを読み込み、内容を確認します。
$ImportCSVPathという変数で、CSVファイルのパスを指定しています。
※サンプルのCSVファイルの保存先はC:\Temp\ResourceGroup.csvとしています。
| 読み込んだCSVファイルを出力 | |
|
読み込んだCSVファイルの設定値を使ってリソースグループを作成
Azure PowerShellでリソースグループを作成する場合は、New-AzResourceGroupを使用します。
foreachでCSVの各行を順に読み取り、リソースグループを作成します。
New-AzResourceGroup(Microsoft Learn)
※事前にConnect-AzAccountでAzureにサインインしておいてください。
| 読み込んだCSVファイルの設定値を使ってリソースグループを作成 | |
|
|
|
PowerShellの実行結果です。
|
※PowerShellの各行の最後に不要な空白などが入っていると、正しく動作しないことがあります。
読み込んだCSVファイルの設定値を使ってリソースグループを削除
Azure PowerShellでリソースグループを削除する場合は、Remove-AzResourceGroupを使用します。
foreachでCSVの各行を順に読み取り、リソースグループを削除します。
Remove-AzResourceGroup(Microsoft Learn)
Remove-AzResourceGroupを実行すると、リソースグループの削除前に確認メッセージが表示されます。
確認メッセージを表示せずに削除するには、-Forceパラメーターを指定します。
また、-AsJobパラメーターを指定すると、バックグラウンドジョブとして非同期に削除を実行できます。
| 読み込んだCSVファイルの設定値を使ってリソースグループを削除 | |
|
|
|
※リソースグループおよびリソースグループ内のリソースを削除する権限(共同作成者ロール以上)が必要です。
※リソースグループを削除すると、リソースグループ内のすべてのリソースも一緒に削除されるため、実行する際は十分注意してください。
※削除操作は元に戻せません。削除前にリソースグループの削除について確認することをお勧めします。
—広告—
最後に
PowerShellのImport-Csvを使ってCSVファイルを読み込み、設定値を利用してリソースグループを作成・削除する方法を紹介しました。
CSVファイルで設定値を管理することで、複数リソースの一括操作が容易になります。
Log Analyticsワークスペースを例に、テンプレートスペックを利用してAzureのリソースを作成する手順はこちらで紹介しています。
ARMテンプレートのパラメーターをCSVファイルから読み込み、PowerShellを利用してリソースを作成しています。
Terraformを利用したリソースグループの作成手順は、こちらで紹介しています。

