2.6 KiB
2.6 KiB
| description | applyTo |
|---|---|
| BicepによるInfrastructure as Code | **/*.bicep |
命名規則
- Bicepコードを書く際は、すべての名前(変数、パラメーター、リソース)にlowerCamelCaseを使用する
- リソースタイプを記述的なシンボリック名を使用する(例:'storageAccountName'ではなく'storageAccount')
- シンボリック名でリソース名ではなくリソースを表すため、'name'の使用を避ける
- サフィックスの使用により変数とパラメーターを区別することを避ける
構造と宣言
- 常にファイルの上部で@descriptionデコレーターとともにパラメーターを宣言する
- すべてのリソースに最新の安定したAPIバージョンを使用する
- すべてのパラメーターに記述的な@descriptionデコレーターを使用する
- 命名パラメーターの最小・最大文字数を指定する
パラメーター
- テスト環境に安全なデフォルト値を設定する(低コストの価格ティアを使用)
- 有効なデプロイメントをブロックしないよう@allowedデコレーターは控えめに使用する
- デプロイメント間で変更される設定にパラメーターを使用する
変数
- 変数は解決された値から自動的に型を推論する
- 複雑な式をリソースプロパティに直接埋め込む代わりに、変数を使用して含める
リソース参照
- reference()やresourceId()関数の代わりに、リソース参照にシンボリック名を使用する
- 明示的なdependsOnではなく、シンボリック名(resourceA.id)を通してリソース依存関係を作成する
- 他のリソースからプロパティにアクセスする場合、出力を通じて値を渡す代わりに'existing'キーワードを使用する
リソース名
- 意味があり一意のリソース名を作成するためuniqueString()でテンプレート式を使用する
- 一部のリソースは数字で始まる名前を許可しないため、uniqueString()の結果にプレフィックスを追加する
子リソース
- 子リソースの過度なネストを避ける
- 子リソースのリソース名を構築する代わりに、parentプロパティまたはネストを使用する
セキュリティ
- 出力に秘密情報やキーを含めない
- 出力で直接リソースプロパティを使用する(例:storageAccount.properties.primaryEndpoints)
ドキュメンテーション
- 可読性を向上させるため、Bicepファイル内に有用な//コメントを含める