【Azure】テンプレートを利用してリソースを複製してみた(StorageAccount)

Azure Azure

ARMテンプレートを利用してリソースを複製してみました。

広告

ストレージアカウントをテンプレートから複製する

今回は以下の記事で作成したストレージアカウントを複製します。
このストレージではコンテナーにblobがあり、ライフサイクルの管理が有効化されているストレージアカウントです。

1.テンプレートをエクスポート(コピー)

・該当のリソースに移動し [テンプレートのエクスポート] を選択して出てくるテンプレートをすべてコピーします。

該当のリソースに移動し [テンプレートのエクスポート] を選択して出てくるテンプレートをすべてコピー

2.カスタムテンプレートからデプロイ

・AzureポータルのTOPページから [リソースの作成] をクリックして、[テンプレートのデプロイ (カスタム テンプレートを使用してデプロイ)] を選択します。
 ※この項目が見当たらない場合には検索して選択してください。

AzureポータルのTOPページから [リソースの作成] をクリック
[テンプレートのデプロイ (カスタム テンプレートを使用してデプロイ)] を選択

・[エディターで独自のテンプレートを作成する] を選択します。

[エディターで独自のテンプレートを作成する] を選択

・「テンプレートの編集」画面が開くので先ほどコピーしたテンプレートをペーストし、保存を押します。

「テンプレートの編集」画面が開くので先ほどコピーしたテンプレートをペースト

・デプロイ画面に戻るので、サブスクリプション、リソースグループ、リージョン、リソース名を入力し作成します。

サブスクリプション、リソースグループ、リージョン、リソース名を入力し作成

デフォルトでは既存と同じリソース名が選択されていますが、ストレージアカウントは一意のリソース名を求められるためエラー表示されます。

なのでストレージアカウント名は変更することになります。

作成したらストレージアカウントの複製は以上です。

複製されたストレージアカウントを確認する

複製されたストレージアカウントがどの設定まで複製されているのかを確認します。

テンプレートはリソース名以外同じ設定

新しく作成したストレージでもテンプレートを取得して比較してみます。

以下の記事でも紹介している Compare-Object を利用して比較します。

すると、見づらいですが、テンプレートの比較による変更箇所はリソース名のみであることが分かりました。

PS C:\> Compare-Object -ReferenceObject @(Get-Content -Path .\sa8697458.txt) -DifferenceObject @(Get-Content -Path .\sa9999999.txt)

InputObject                                                                                                                                             SideIndicator
-----------                                                                                                                                             -------------
        "storageAccounts_satestlifecycle9999999_name": {                                                                                                =>
            "defaultValue": "satestlifecycle9999999",                                                                                                   =>
            "name": "[parameters('storageAccounts_satestlifecycle9999999_name')]",                                                                      =>
            "name": "[concat(parameters('storageAccounts_satestlifecycle9999999_name'), '/default')]",                                                  =>
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle9999999_name'))]"                          =>
            "name": "[concat(parameters('storageAccounts_satestlifecycle9999999_name'), '/default')]",                                                  =>
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle9999999_name'))]"                          =>
            "name": "[concat(parameters('storageAccounts_satestlifecycle9999999_name'), '/default')]",                                                  =>
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle9999999_name'))]"                          =>
            "name": "[concat(parameters('storageAccounts_satestlifecycle9999999_name'), '/default')]",                                                  =>
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle9999999_name'))]"                          =>
            "name": "[concat(parameters('storageAccounts_satestlifecycle9999999_name'), '/default/insights-logs-networksecuritygroupevent')]",          =>
                "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_satestlifecycle9999999_name'), 'default')]", =>
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle9999999_name'))]"                          =>
            "name": "[concat(parameters('storageAccounts_satestlifecycle9999999_name'), '/default/insights-logs-networksecuritygrouprulecounter')]",    =>
                "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_satestlifecycle9999999_name'), 'default')]", =>
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle9999999_name'))]"                          =>
            "name": "[concat(parameters('storageAccounts_satestlifecycle9999999_name'), '/default/testcontainer01')]",                                  =>
                "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_satestlifecycle9999999_name'), 'default')]", =>
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle9999999_name'))]"                          =>
        "storageAccounts_satestlifecycle8697458_name": {                                                                                                <=
            "defaultValue": "satestlifecycle8697458",                                                                                                   <=
            "name": "[parameters('storageAccounts_satestlifecycle8697458_name')]",                                                                      <=
            "name": "[concat(parameters('storageAccounts_satestlifecycle8697458_name'), '/default')]",                                                  <=
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle8697458_name'))]"                          <=
            "name": "[concat(parameters('storageAccounts_satestlifecycle8697458_name'), '/default')]",                                                  <=
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle8697458_name'))]"                          <=
            "name": "[concat(parameters('storageAccounts_satestlifecycle8697458_name'), '/default')]",                                                  <=
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle8697458_name'))]"                          <=
            "name": "[concat(parameters('storageAccounts_satestlifecycle8697458_name'), '/default')]",                                                  <=
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle8697458_name'))]"                          <=
            "name": "[concat(parameters('storageAccounts_satestlifecycle8697458_name'), '/default/insights-logs-networksecuritygroupevent')]",          <=
                "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_satestlifecycle8697458_name'), 'default')]", <=
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle8697458_name'))]"                          <=
            "name": "[concat(parameters('storageAccounts_satestlifecycle8697458_name'), '/default/insights-logs-networksecuritygrouprulecounter')]",    <=
                "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_satestlifecycle8697458_name'), 'default')]", <=
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle8697458_name'))]"                          <=
            "name": "[concat(parameters('storageAccounts_satestlifecycle8697458_name'), '/default/testcontainer01')]",                                  <=
                "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_satestlifecycle8697458_name'), 'default')]", <=
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_satestlifecycle8697458_name'))]"                          <=


PS C:\>

コンテナーに格納されたblobは複製できない

次にコンテナーのblobを確認してみますが、blobは複製されていませんでした。
blobの複製はできず、あくまでAzureリソースのストレージアカウントを作成するようです。

blobは複製されなかった

ライフサイクル管理の設定は複製できない

また、ライフサイクル管理の設定を入れていましたが、ライフサイクル管理の設定は複製されていませんでした。

ライフサイクル管理の設定は複製されなかった

ライフサイクル管理の設定内容はテンプレート内では存在しないので、複製ができなかったのだとと思います。

ですので、他のリソースでもテンプレートに含まれていない設定項目はテンプレートからのデプロイでは複製できないものと推察できます。

タイトルとURLをコピーしました