リソースグループを Bicepテンプレートでデプロイしてみよう
これまで ARMテンプレートでの記述の記事をいくつか掲載してきましたが、やはりこれからはBicepだよね、ということで今後は必要に応じてこれで記述した内容を掲載していきたいと思います。
あと、これまではリソースグループを作成して、そこに対してリソースをデプロイする内容しか紹介してきませんでしたが、いよいよもうちょっと踏み込んで実践的にしていきたいと思います。
今回のテーマは、『 Azureサブスクリプションのレベルでリソースをデプロイ 』です。
具体的には、リソースグループ自体をデプロイします。
といっても、今回の記事はそんなに難しくも複雑でもありません。
三分くらいで読めるサクッと記事なのでぜひ最後まで読んでもらえると嬉しいです。
そもそもBicepって??
要はARMテンプレート(JSON)とは違った記述の仕方で、より快適にしたものです。
どう快適になるかも公式ドキュメントに色々書いてありますが、個人的に大きな特長だと思うのは
全体の行数が減る
依存関係の定義が基本不要
です。
ざっくりとは、テンプレート作った後のデプロイのエラーが減ると考えてもらって差し支えないです。
テンプレートを記述する
作成
main.bicepというファイルを作成し、以下の内容を記述しました。
単純な内容で、西日本リージョンにtest-rgというリソースグループを作成するというだけのものです。
targetScope = 'subscription' // 1️⃣
param resourceGroupName string = 'test-rg'
@allowed([
'japaneast'
'japanwest'
])
param resourceGroupLocation string = 'japanwest'
resource newRG 'Microsoft.Resources/resourceGroups@2021-04-01' = { // 2️⃣
name: resourceGroupName
location: resourceGroupLocation
}
補足
1️⃣ 今回は規定ではいけないので、サブスクリプションを設定
2️⃣ リソースオブジェクトとしてリソースグループを宣言
これまでの記事ではここをVMとかを宣言していたわけです。
Bicepの場合コメントが記述可能
YAML 形式で記述できる AWS CloudFormation テンプレートと同じような感じにちょっとなりますね。
デプロイを行う
Azure CLI で実行
$ az deployment sub create --location japaneast --template-file main.bicep
過去の記事で紹介してきたコマンドと当然ながら違いますね。
これまではまずリソースグループを作成していましたので。
補足
なぜ location(リージョン)を指定している?
前述のテンプレート内に記述(指定)したはずなのに、なぜ? と思う方もいるかもしれません。
ということなんです。
なので、テンプレートないでは 'japanwest' だったのに、ここではあえて『 --location japaneast 』としたわけです。
もちろん同じく 'japanwest' でも全然いいですよ~
完了(成功)
{\ Finished .. 👈
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Resources/deployments/main",
"location": "japaneast",
"name": "main", 👈
・・・
中略
・・・
"provisioningState": "Succeeded", 👈
"templateHash": "10413805528488928133",
"templateLink": null,
"timestamp": "2022-04-23T03:00:43.991646+00:00",
"validatedResources": null
},
"tags": null,
"type": "Microsoft.Resources/deployments"
}
「 Finished 」 と表示され 『 provisioningState": "Succeeded" 』 ともなっていますね。
問題ありません。
ちなみに、今回のコマンドではデプロイ名を指定しなかったので既定の値である 『 テンプレートファイル名(拡張子なし)』 となりました。
(念のため)確認
$ az group list --output table | grep -e 'test' -e 'Name' -e '------'
Name Location Status
------------------------ ---------- ---------
test-rg japanwest Succeeded 👈
うん、狙った 「 test-rg 」 がステータス 『 Succeeded 』 となっていますね。
$ az deployment sub show --name main
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Resources/deployments/main",
"location": "japaneast",
"name": "main",
・・・
中略
・・・
"provisioningState": "Succeeded",
"templateHash": "10413805528488928133",
"templateLink": null,
"timestamp": "2022-04-23T03:00:43.991646+00:00",
"validatedResources": null
},
"tags": null,
"type": "Microsoft.Resources/deployments"
}
デプロイコマンドが完了したときと同じ情報が見れるコマンドですが、こちらでも当然ながらちゃんとデプロイが成功していることを確認できました。
はい、ということで問題なく狙ったとおり作成されました。
ちなみに
内部的には Azure にデプロイするときに Bicepファイルは JSON (ARMテンプレート) にコンパイルされ、その JSON がデプロイのために Azure に送信されて実際のデプロイが実行されることになります。
🟠 さいごに 🔚
いかがだったでしょうか?
今回はリソースグループを作成するのみを紹介しましたが、ここにさらに VM などのリソースも併せてデプロイするようにまとめて記述できます。
これは便利ですよね、今後これも記事にしようと思います。
今後も Azure に関する技術情報やその他の資格試験に関する記事を書いていこうと思いますので、よろしければフォローをお願いします🔆
また、この記事が少しでもタメになった、面白かったという方がいらっしゃいましたら、ぜひ 「 スキ 」 ボタンのクリックをお願いします😋
最後までお読みいただきありがとうございました 😊