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