awesome-copilot/instructions/bicep-code-best-practices.instructions_ja.md

2.6 KiB
Raw Blame History

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ファイル内に有用な//コメントを含める