PowerShellでCSVファイルの内容を読み込む(Azureの設定に使う)

2020-04-21Azure,PowerShell/Azure CLI,Resource Group

PowerShellでCSVファイルの内容を読み込むで利用する方法を紹介します。
PowerShellを使って読み込んだCSVファイルの内容を使ってAzureのリソースを作成しています。

スポンサーリンク

PowerShell使ってCSVファイルの内容を読み込み利用する

PowerShellでCSVファイルを読み込む場合はImport-Csvを使う

PowerShellでCSVファイルの読み込み場合にはImport-Csvを使います。

Import-Csv

※オブジェクトをCSVに変換する場合はConvertTo-Csvを使います。

反復処理にはforeachを使ってます

foreachは配列の要素を順次読み取って反復処理を行います。
読み込んだ設定内容を反復処理させ、複数のリソースを作成しています。
foreachを利用する事でCSVの最後に達した時点で処理を止める事が出来ます。

about_Foreach

※反復して処理を実行させる方法にはforを使う方法などもあります。

サンプルのCSVファイル

リソースグループの設定値になるCSVファイルを作成保存します。

CSVファイル

ResourceGroupName,Location
rg-01,japaneast
rg-02,japanwest

CSVファイルを読み込んで値を出力

CSVファイルを読み込み確認します。
ImportCsvPathの変数でCSVファイルのパスを指定しています。

※サンプルのCSVファイル保管場所はC:\ResourceGroup.csvとしています。

読み込んだCSVファイルを出力

PS C:\> $ImportCsvPath = “C:\ResourceGroup.csv"
PS C:\> $csv = Import-Csv -path $ImportCSVPath
PS C:\> echo $csv

ResourceGroupName Location
—————– ——–
rg-01 japaneast
rg-02 japanwest

CSVファイルの内容を使ってリソースグループを作成

Azure PowerShellでリソースグループを作成する場合はNew-AzResourceGroupを使います。
CSVファイルに記載した設定値を利用してリソースを作成します。

New-AzResourceGroup

リソースグループを纏めて作成

#設定(CSVファイル)のパス
$ImportCSVPath = “C:\Temp\ResourceGroup.csv"

#設定(CSVファイル)を読み込む
$csv = Import-Csv -path $ImportCSVPath

#リソースグループをデプロイ
foreach( $c in $csv ){

 New-AzResourceGroup `
  -Name $c.resourceGroupName `
  -Location $c.location
}

実行結果です。

#実行結果
ResourceGroupName : rg-01
Location : japaneast
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/サブスクリプションID/resourceGroups/rg-01

ResourceGroupName : rg-02
Location : japanwest
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/サブスクリプションID/resourceGroups/rg-02 

CSVファイルの内容を使ってリソースグループを削除

Azure PowerShellでリソースグループを削除する場合はRemove-AzResourceGroupを使います。
CSVファイルに記載した設定値を利用してリソースを削除します。

Remove-AzResourceGroup

リソースグループ削除時に確認メッセージが表示されます。

リソースグループを纏めて削除

#設定ファイルのパス
$ImportCSVPath = “C:\Temp\ResourceGroup.csv"

#設定値(CSVファイル)を読み込む
$csv = Import-Csv -path $ImportCSVPath

#リソースグループを削除
foreach( $c in $csv ){

 Remove-AzResourceGroup `
  -Name $c.ResourceGroupName
}
#実行結果(確認メッセージが表示されます。)
Confirm
Are you sure you want to remove resource group 'rg-01’
[Y] Yes [N] No [S] Suspend [?] Help (default is “Y"): Y
True

Confirm
Are you sure you want to remove resource group 'rg-02’
[Y] Yes [N] No [S] Suspend [?] Help (default is “Y"): Y
True

※リソースグループおよびリソースグループ内のリソース削除権限が必要です。
※リソースグループ内のリソースも一緒に削除されます。実行する場合は注意が必要です。
※確認メッセージを表示しない場合はRemove-AzResourceGroupの-Forceのパラメータを利用します。

—広告—

最後に

PowerShellを使ってCSVファイルから設定内容読み込んでリソースグループのデプロイをやってみました。
設定内容をCSVファイル化しておくと便利かと思います。
引き続き色々試してみたいと思います。

テンプレートスペック(ARMテンプレートテンプレートスペック)を利用してLog Analyticsワークスペースから作成する手順はこちらに纏めています。
本記事と同様にPowerShellやCSVファイルを利用してリソース作成しています。
ARMテンプレートのパラメータをCSVファイルから読み込んでいます。

Terraformを利用したリソースグループのデプロイはこちらに纏めています。

スポンサーリンク