命名規則バリデーション付きプロジェクト名変数を定義する
小文字英数字の命名規則を強制する正規表現バリデーション付きのTerraformプロジェクト名string変数を作成します。
Common Patterns
詳細な説明
プロジェクト名変数
プロジェクト名変数はリソースの命名、タグ付け、組織化のためにインフラストラクチャ全体で使用されます。命名規則を強制することで、厳格な名前要件を持つサービスでの問題を防ぎます。
変数定義
variable "project_name" {
type = string
description = "Name of the project, used for resource naming"
default = "my-project"
validation {
condition = can(regex("^[a-z][a-z0-9-]*$", var.project_name))
error_message = "Project name must start with a letter and contain only lowercase letters, numbers, and hyphens."
}
}
この命名規則の理由
多くのAWSサービスには命名制限があります:
| サービス | 最大長 | 許可される文字 |
|---|---|---|
| S3バケット | 63 | a-z、0-9、-、. |
| IAMロール | 64 | A-Za-z0-9+=,.@_- |
| Lambda関数 | 64 | a-zA-Z0-9-_ |
| RDSインスタンス | 63 | a-z0-9- |
^[a-z][a-z0-9-]*$を強制することで、プロジェクト名は最も厳格な要件(S3とRDS)と互換性があります。
ユースケース
S3、IAM、RDS、その他のサービス間で一貫したリソース命名に検証済みプロジェクト識別子が必要な標準化されたインフラストラクチャモジュール。