[Azure] ARM テンプレート読み解き (テンプレートからの出力)
はじめに
Azure QuickStart Templates を読み込んで勉強しよう!
ということで、アウトプットもしてみます。第7弾です。
今回の読み解き対象
Create a standard storage account
テンプレートの概要
こちらのテンプレートをデプロイすると、Storage Account を作成することができます。
が、この ARM テンプレートから得られるポイントは、Storage Account がどうこうではなくテンプレート実行後に情報を出力できるという部分です。
読み解く
毎度ですが、よくあるテンプレートのパターンは下記の通りです。
- パラメータ指定 (parameters)
- 変数の設定 (variables)
- デプロイするリソースの記述 (resources)
が、今回はここにもう一つ追加があります。最後に "outputs":
という箇所がありますね。つまり、こうなります。
- パラメータ指定 (parameters)
- 変数の設定 (variables)
- デプロイするリソースの記述 (resources)
- 実行後のアウトプット (outputs)
では、見ていきましょう。
パラメータ指定 (parameters)
前半の "parameters":
から始まる部分では、テンプレート内で使われるパラメータ (変数) の設定です。テンプレートのデプロイ時に選択肢として表示させたりすることができます。
今回のテンプレートでは、「Storage Account の Type」と「作成先のリージョン」を指定させています。
変数の設定 (variables)
"variables":
セクションでは、この yaml ファイル中で利用する変数名を設定できます。
"variables": {
"storageAccountName": "[concat('store', uniquestring(resourceGroup().id))]"
},
このテンプレートでは、作成する Storage Account の名前をパラメータから生成しています。
uniquestring()
は引数からハッシュ文字列を生成する関数、concat()
は、ざっくり言えば引数の文字列を全て結合する関数です。
参考 : uniqueString
参考 : concat
デプロイするリソースの記述 (resources)
"resources":
セクションで、デプロイするリソースを記述しています。
"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":
セクションで、出力、つまり実行後に残しておきたい情報を出力させる設定が可能です。
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[variables('storageAccountName')]"
}
}
ここでは、テンプレート中で生成されたハッシュ値を出力させています。
こうすることで、実行後に「あっ、テンプレート実行で生成されたパラメータが必要だ…。各リソースのページに行ってコピペして…」という面倒な作業を回避することができるわけですね!
参考 : ARM テンプレート内の出力
最後に
Azure QuickStart Templates 読み解きの記事も 7 個目になりました😊
他の記事も、こちらから見ていただければ嬉しいです!
Discussion