※本記事は、個人の意見および個人的活動で得た経験を記したものであり、会社を代表するものではありません
1. Resource Groupの定義
今回は以下の定義で構築する。
- name = “RagSystem”
- region = “Japan East”
2. リソースの作成
2-1. BicepテンプレートでResource Groupをデプロイする
Bicepを使ったリソースグループの作成
BicepのVSCode拡張機能
Bicepにタグを指定する方法
2-1-1. Bicepテンプレート
リソースグループだけなのでBicepはシンプル。PortalログインしてUI操作するより、コマンド実行がよい。実行ログも簡単に残せるし。
小さいテンプレートだが少しだけ工夫してみた。今後作成するBicepも自分仕様として同様に定義していく。より大きいテンプレートになるに従って、効果を発揮してくれると期待。
- パラメータを用いて固定値を排除
- テンプレート内で以下領域が明確にわかるように強調コメントを利用
- 各リソース共通パラメータの定義領域
- 特定リソースのパラメータの定義領域
- 各リソースの定義
- 各パラメータには普段使い用のデフォルト値を指定
- タグには部署(”dept”)、デプロイ実行時間(”lastDeployed”)、デプロイ名(”deploy”)を含める
- デプロイメント名は指定しないことで、Bicepのファイル名が設定されるようにする(デプロイメント名のデフォルト値はBicepファイル名)
タグの「デプロイ実行時間」は、今のところは「アクティビティログを見なくてもデプロイした時間がわかる」程度。
デプロイ名は「deployment」関数で自動取得したものセットする。これはデプロイメント名を指定しないことによって「デプロイメント名」=「Bicepファイル名」となるBicep仕様を利用したもの。これにより、どのリソースがどのBicepファイルでデプロイされたものかを識別できる。
上記の各パラメータはbicepparamファイルに定義し、コマンドラインでパラメータを指定する手間を省いた。
2-1-2. az deploymentコマンド
Bicepのパラメータに色々定義したけど、コマンド実行時は使用するBicepファイル名とリソースグループ名の2つのみを指定。
最初にログイン中のアカウント、サブスクリプションを確認してから実行。
sato@[9:30:44]:~/proj/RagSystem% az account show
...
ログイン中のテナント、サブスクリプション、ユーザーが表示される。
...
sato@[9:30:44]:~/proj/RagSystem/resource-group% az deployment sub create --template-file rg.biep --parameters rg.bicepparam
...
実行結果が表示される
...
2-2. [issue] bicepテンプレートのデプロイ時にローカルフォルダーのpermissionエラー解消方法
デプロイする時に、インストール時に作成されるBicepのconfigファイルの権限エラーが発生して実行できない事象が発生。
configファイルというものが存在することすら知らなかったし、エラーメッセージがこれしか出力されないから意味不明。
sato@[10:36:23]:~/proj/RagSystem% az deployment sub create --template-file rg.bicep --parameters rg.bicepparam
[Errno 13] Permission denied: '/Users/sato/.azure/bin/bicep'
権限は問題ないはず、原因も不明。バックエンド側で他のプロセスとファイルの取り合いになっているのかも。でも簡単な方法で解決できたから多分違う理由。
sato@[10:36:05]:~/.azure/bin% ls -Fal
total 0
drwxr-xr-x 3 sato staff 96 6 9 10:30 ./
drwxr-xr-x 27 sato staff 864 6 9 10:32 ../
-rw-r--r-- 1 sato staff 0 6 9 10:30 bicep
対処方法は”bicep”ファイルを削除してaz bicep拡張機能を再インストール。
これで実行できるようになった。
sato@[10:44:24]:~% rm -rf .azure/bin/bicep
sato@[10:44:31]:~% az bicep install
Installing Bicep CLI v0.28.1...
The configuration value of bicep.use_binary_from_path has been set to 'false'.
Successfully installed Bicep CLI to "/Users/sato/.azure/bin/bicep".
参考情報
3. 実行結果
リソースグループの作成結果、タグも意図した通りに付与されていることを確認。
sato@[11:17:45]:~/proj/RagSystem% az group show -n RagSystem
{
...
"location": "japaneast",
...
"name": "RagSystem",
"properties": {
"provisioningState": "Succeeded"
},
"tags": {
"deploy": "rg",
"dept": "default",
"lastDeployed": "07/07/2024"
},
...
}
sato@[11:17:49]:~/proj/RagSystem%