🎼

[Azure] ARM テンプレート読み解き (テンプレートからの出力)

2021/01/23に公開

はじめに

Azure QuickStart Templates を読み込んで勉強しよう!
ということで、アウトプットもしてみます。第7弾です。

今回の読み解き対象

Create a standard storage account

テンプレートの概要

こちらのテンプレートをデプロイすると、Storage Account を作成することができます。

が、この ARM テンプレートから得られるポイントは、Storage Account がどうこうではなくテンプレート実行後に情報を出力できるという部分です。

読み解く

毎度ですが、よくあるテンプレートのパターンは下記の通りです。

  1. パラメータ指定 (parameters)
  2. 変数の設定 (variables)
  3. デプロイするリソースの記述 (resources)

が、今回はここにもう一つ追加があります。最後に "outputs": という箇所がありますね。つまり、こうなります。

  1. パラメータ指定 (parameters)
  2. 変数の設定 (variables)
  3. デプロイするリソースの記述 (resources)
  4. 実行後のアウトプット (outputs)

では、見ていきましょう。

パラメータ指定 (parameters)

前半の "parameters": から始まる部分では、テンプレート内で使われるパラメータ (変数) の設定です。テンプレートのデプロイ時に選択肢として表示させたりすることができます。

今回のテンプレートでは、「Storage Account の Type」と「作成先のリージョン」を指定させています。

変数の設定 (variables)

"variables": セクションでは、この yaml ファイル中で利用する変数名を設定できます。

azuredeploy.json
  "variables": {
    "storageAccountName": "[concat('store', uniquestring(resourceGroup().id))]"
  },

このテンプレートでは、作成する Storage Account の名前をパラメータから生成しています。

uniquestring() は引数からハッシュ文字列を生成する関数、concat() は、ざっくり言えば引数の文字列を全て結合する関数です。

参考 : uniqueString
参考 : concat

デプロイするリソースの記述 (resources)

"resources": セクションで、デプロイするリソースを記述しています。

azuredeploy.json
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2019-06-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],

めちゃくちゃシンプルですね。パラメータに基づいて、Storage Account を作成しているだけです。

参考 : Microsoft.Storage storageAccounts template reference

実行後のアウトプット (outputs)

"outputs": セクションで、出力、つまり実行後に残しておきたい情報を出力させる設定が可能です。

azuredeploy.json
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[variables('storageAccountName')]"
    }
  }

ここでは、テンプレート中で生成されたハッシュ値を出力させています。

こうすることで、実行後に「あっ、テンプレート実行で生成されたパラメータが必要だ…。各リソースのページに行ってコピペして…」という面倒な作業を回避することができるわけですね!

参考 : ARM テンプレート内の出力

最後に

Azure QuickStart Templates 読み解きの記事も 7 個目になりました😊

他の記事も、こちらから見ていただければ嬉しいです!

Discussion