見出し画像

ARMテンプレートのお供にパラメーターファイルをぜひ

今までいくつか ARMテンプレートが絡んだ記事を掲載していますが、大事というか現実的な話をしてなかったのでその辺の話をしようと思います。

具体的には、『 テンプレートファイルの分割 』です。

可読性や再利用性、セキュリティの観点から現実的にはいくつかのファイルに分割する場合が多いです。

そこで今回の記事では、こういった分割の中でも最も簡単でよく使うものを紹介します。
三分くらいで読めるサクッと記事なのでぜひ最後まで読んでもらえると嬉しいです。

テンプレートのリンク(機能)

メインテンプレート(屋台骨とするテンプレート)ファイルにリソース  "type": "Microsoft.Resources/deployments" を記述し、 その "templateLink"プロパティでリンクしたいテンプレートファイルの URI を指定することで、メインテンプレートから別のテンプレートファイルをリンクを介して参照することができます。

作成するリソースが大量であったり複雑なファイルの場合、こういったリンクを活用しモジュール化しておくと可読性の面ではもちろん再利用の面でも恩恵がありますね。
インフラのマイクロサービス化といった感じですかね。

詳細が気になる方は、ぜひ以下の公式ドキュメントもご確認ください。

ただ、この記事ではこれについての話ではないんです(笑)

パラメーターファイルを用いた分割

parametersセクション で定義している任意の parameter に渡す値を別途作成したパラメーターファイルに記述するということです。

例えば、パスワードなどの機密性の高い値は、"defaultValue" に直接書かない方が良いのです。そのテンプレートファイルが流出などすれば見せるべきではない第三者にそういった値も知られてしまいますからね。

しかし、デプロイの度にそういった値を指定するのも少々面倒です。
できる限り defaultValue で指定したいものです。

詳細が気になる方は、ぜひ以下の公式ドキュメントもご確認ください。

パラメーターファイルを作成する

ARMテンプレートの作成といえば Visual Studio Code ( VScode ) が最も便利ですが、その専用の拡張機能 ( Azure Resource Manager (ARM) Tools ) を使えば簡単に作れます。

以下の例では、azuredeploy.json というメインテンプレートを作成しparametersセクション でいくつか parameter を定義したのですが、何やらメッセージが出ています。

そう、これをクリックして条件を選んでいけば簡単に作れます。

新規作成となるので New を選びます。

定義されているパラメーターすべて対象にするか任意のものだけで作るか聞かれます。

これはお好みと状況によって最適なものを選んでください。
とりあえず全て対象にして要らないものは消すというやりかもありますし。

すると以下のように作成されました。
分かりやすく azuredeploy.parameters.json というファイル名が自動で振られました。

そのあとは、作成されたパラメーターファイルを編集し値を記述していきます。
今回は以下のように編集しました。

特段小細工が不要であれば

"adminUsername": {
            "value": "azureuser"
        }

のように単純に値を記述してください。

もしくは、データベース接続文字列や OSの管理者ユーザーパスワードなどの秘匿性の高いものは Key Vault と併用するのが一般的です。

パラメーターファイルには値を記述せず、Key Vault に格納してあるものを取り出してねといった具合です。

"adminPassword": {
            "reference": {
                "keyVault": {
                  "id": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"
                },
                "secretName": "ExamplePassword"
              }
        }

Key Vault の詳細が気になる方は、ぜひ以下の公式ドキュメントもご確認ください。

🟠 最後に 🔚

いかがだったでしょうか?
その後実際にデプロイする際には例えば Azure CLI であれば --parameters でパラメーターファイルを指定するわけです。

複雑なテンプレートを作成しない場合でも、GitHub などで公開する場合には機密情報を埋め込むわけにいきませんからね、パラメーターファイルはぜひ使ってみてください。

今後も Azure に関する技術情報やその他の資格試験に関する記事を書いていこうと思いますので、よろしければフォローをお願いします🔆

また、この記事が少しでもタメになった、面白かったという方がいらっしゃいましたら、ぜひ 「 スキ 」 ボタンのクリックをお願いします😋

最後までお読みいただきありがとうございました 😊

この記事が参加している募集

最近の学び

つくってみた

もしこの記事が何かの参考になったもしくは面白かったという方は、応援していただけると大変嬉しいです😊 これからもよろしくお願いします。