命名規則バリデーション付きプロジェクト名変数を定義する

小文字英数字の命名規則を強制する正規表現バリデーション付きの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-z0-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、その他のサービス間で一貫したリソース命名に検証済みプロジェクト識別子が必要な標準化されたインフラストラクチャモジュール。

試してみる — Terraform Variable Generator

フルツールを開く