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

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

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

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

※本記事では、一部を除きAzure 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が取得できます。

# リソースIDを取得
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/リソースグループ名/providers/Microsoft.Network/applicationGateways/リソース名

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

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

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

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

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

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

エクスポートされたARMテンプレート

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

出力例

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

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

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

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

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

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

—広告—

最後に

アプリケーションゲートウェイのリソースを例に、PowerShellを使ったARMテンプレートのエクスポート方法を確認しました。
Export-AzResourceGroup コマンドレットでARMテンプレートをエクスポートできることが分かりました。
リソースによっては、すべての情報がARMテンプレートとしてエクスポートできるわけではありませんが、設定のバックアップや確認に役立つので便利だと思いました。

引き続き、いろいろ試してみたいと思います。

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

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

アプリケーションゲートウェイの概要から構築手順については、こちらで紹介しています。

スポンサーリンク