PowerShellを使ってARMテンプレートをエクスポート

2020-04-22Application Gateway,ARM Template,Azure,PowerShell/Azure CLI

PowerShellを使ったARMテンプレートのエクスポート方法です。
Azure Application Gateway(アプリケーションゲートウェイ)のリソースを例に確認しています。

ARMテンプレートのエクスポートにはExport-AzResourceGroupコマンドレットを使います。
エクスポートされたARMテンプレートはJSON形式のファイルとして保管します。

※本記事内ではAzure Application Gateway(アプリケーションゲートウェイ)をApplication Gatewayとして表記しています。

スポンサーリンク

PowerShellを使ったARMテンプレートエクスポート方法

ARMテンプレートのエクスポートにはExport-AzResourceGroupを使う

ARMテンプレートのエクスポートにはExport -AzResourceGroupコマンドレットを使います。

Export-AzResourceGroup

リソースグループ単位やリソース単位でARMテンプレートをエクスポートできます。
リソースIDを指定すると、リソース単位でARMテンプレートをエクスポートできます。
エクスポートされたARMテンプレートはJSON形式でファイル保管できます。

リソース単位でARMテンプレートをエクスポート

リソース単位でエクスポートする場合は、Export -AzResourceGroupコマンドレットでリソースIDを指定します。
Get-AzApplicationGatewayを利用して、Application GatewayのリソースIDを取得します。

    • サンプル
      • アプリケーションゲートウェイ名:agw-test-01
      • アプリケーションゲートウェイのリソースグループ:RG-AGW-TEST-01

PS C:> $rg = “アプリケーションゲートウェイのリソースグループ名"
PS C:> $agwname = “アプリケーションゲートウェイ名"
PS C:>
Get-AzApplicationGateway -Name $agwname -ResourceGroupName $rg |fl Name, Id

Name : agw-test-01
Id : /subscriptions/サブスクリプションID/resourceGroups/RG-AGW-TEST-01/providers/Microsoft.Network/applicationGateways/agw-test-01

Get-AzApplicationGatewayコマンドレットで取得したリソースIDを使ってARMテンプレートを取得します。
Export-AzResourceGroupコマンドレットでは保管先のディレクトリを指定します。
-Resourceのパラメータでエクスポート対象のリソースIDを指定します。

#ARM Template Export(Application Gateway)
#取得対象のApplication Gatewayのリソース名
$rg = “Azure Application Gatewayのリソースグループ名"
$agwname = “アプリケーションゲートウェイ名"

#ARM Template保管先ディレクトリ
$templatePath =“保管先ディレクトリのパス(例 C:\temp)"

#GetコマンドでリソースIDを取得
$agw = Get-AzApplicationGateway -Name $agwname -ResourceGroupName $rg

#ARM Templateをエクスポートする
Export-AzResourceGroup `
-ResourceGroupName $rg `
-Resource $agw.Id`
-Path $templatePath

名前をつけてPowerShellを保存します。
PowerShellを実行するとARMテンプレートをエクスポートして指定したディレクトリに保存できます。

テンプレートエクスポート結果

ARMテンプレートファイルは指定した保管先ディレクトリパスにリソースグループ名.JSONと言うファイル名で出力されます。

出力例

エクスポートしたARMテンプレートにパラメータを含む場合

デフォルトではエクスポートされたARMテンプレートにはパラメータは含まれません。
パラメータも一緒にエクスポートする場合は、Export-AzResourceGroupコマンドレットに-IncludeParameterDefaultValueパラメータを追加します。

#ARM Template Export(Application Gateway)
#取得対象のApplication Gatewayのリソース名
$rg = “アプリケーションゲートウェイのリソースグループ名"
$agwname = “アプリケーションゲートウェイ名"

#ARM Template保管先ディレクトリ
$templatePath =“保管先ディレクトリのパス(例 C:\temp)"

#GetコマンドでリソースIDを取得
$agw = Get-AzApplicationGateway -Name $agwname -ResourceGroupName $rg

#ARM Templateをエクスポートする
Export-AzResourceGroup `
 -ResourceGroupName $rg `
 -Resource $agw.Id`
 -IncludeParameterDefaultValue `
 -Path $templatePath

—広告—

最後に

Application Gatewayのリソースを例に、PowerShellを使ってARMテンプレートのエクスポートしてみました。
Export-AzResourceGroupコマンドレットでARMテンプレートをエクスポートできました。
リソースによってはすべての情報がARMテンプレートとしてエクスポート出来る訳ではありませんが、設定のバックアップや確認等できるので便利かと思いました。

ARMテンプレートのダウンロードからリソースのカスタムデプロイ方法についてはこちらで紹介しています。
仮想マシンを例に手順を確認しています。

Logic Apps使ったARMテンプレートのエクスポート方法についてはこちらで紹介しています。

Application Gatewayの概要から構築手順についてはこちらで紹介しています。

スポンサーリンク