🦐
【Bicep】デコレーターとコメントの違い
Bicepとは
Bicepとは、Azure専用のIaC(Infrastructure as Code)言語です。
ARMテンプレートよりもシンプルで読みやすく、インデントや構文もスッキリしています。Azureリソースをコードで管理するための標準的な手段として利用が広がっています。
デコレーターとは
デコレーターは、Bicepの宣言に対して追加の情報や制約を与える仕組みです。
@
から始まり、param や resource の直前に書きます。
↓よく使われるデコレーター
デコレーター | 役割 | 使用例 |
---|---|---|
@description | Azureポータルやツール上に説明文を表示する | @description('リソースのリージョン') |
@allowed | パラメータの値を制限する(指定外の値だとエラー) | @allowed(['Hot','Cool']) |
@minLength | 文字列の最小長を指定する | @minLength(3) |
@maxLength | 文字列の最大長を指定する | @maxLength(24) |
@secure | 機密情報を隠す(ログに出力されないようにする) | @secure() param password string |
@minValue | 数値の最小値を指定する | @minValue(1) |
@maxValue | 数値の最大値を指定する | @maxValue(100) |
例
@description('ストレージアカウント名 3文字~24文字、小文字数字のみ')
param name string
特徴
- AzureポータルやVSCodeで説明文が表示される(@description)
- 値の制限を加えられる(@allowed, @minLength, @maxLength)
- セキュリティを強化できる(@secureで機密パラメータを隠す)
- デプロイの挙動に直接影響する
コメントとは
コメントは、コードの動作に影響しない人間向けのメモです。
//
または /* ... */
で記述できます。
例
// ストレージアカウント名を定義
param storageName string
特徴
- デプロイ結果には影響しない
- チームメンバーや将来の自分のための説明文
- 書かなくてもコードは動くが、可読性のために重要
2つの違い
項目 | デコレーター | コメント |
---|---|---|
書き方 |
@description @allowed など |
// や /* */
|
役割 | BicepやAzureに追加の指示を与える | 人間に向けて補足を残す |
影響 | デプロイの挙動や入力値の制約に影響する | デプロイ結果には一切影響しない |
主な用途 | 入力制御、説明文の表示、セキュリティ強化 | 処理の意図や注意点を説明するため |
まとめ
- コメント は「人間のための説明」
- デコレーター は「Bicep/Azureへの指示」
- @descriptionは説明文を表示するという点でコメントに似ているが、AzurePortalに表示されるといった点で、デプロイに影響しているデコレーターである
↓このBicepコードがデプロイ時にAMRに変換されたとき
@description('ストレージアカウント名 3文字~24文字、小文字数字のみ')
param name string
↓AMRに変換されてもdescriptionによる説明が記述されている
Discussion