Required Providersブロックのフォーマット

複数のプロバイダーソース、バージョン制約、チーム全体のTerraformバージョン管理のための適切な揃えでrequired_providersブロックをフォーマットします。

Provider & Backend

詳細な説明

Required Providersのフォーマット

terraformブロック内のrequired_providersブロックは、設定が依存するプロバイダーと許容されるバージョンを宣言します。プロジェクトが複数のプロバイダーを使用するようになると、一貫したフォーマットが不可欠になります。

マルチプロバイダーの例

terraform {
  required_version = ">= 1.5.0"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">= 3.0, < 4.0"
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.23"
    }
    helm = {
      source  = "hashicorp/helm"
      version = "~> 2.11"
    }
    datadog = {
      source  = "DataDog/datadog"
      version = "~> 3.30"
    }
  }
}

フォーマットの利点

各プロバイダーエントリはsourceversion属性が揃えられた同じ2行パターンに従います。これにより以下が容易になります:

  1. バージョン制約の欠落を発見 — バージョン指定のないプロバイダーは予期しないアップグレードを引き起こす可能性
  2. 環境間のバージョン比較 — 揃えられたフォーマットで差異が一目で分かる
  3. 新しいプロバイダーの追加 — パターンが明確で一貫している

バージョン制約形式

制約 意味
~> 5.0 任意の5.xバージョン(>= 5.0、< 6.0)
>= 3.0, < 4.0 明示的な範囲
= 2.23.1 正確なバージョン固定
!= 3.5.0 特定バージョンの除外

フォーマッターはこれらの制約文字列を記述されたとおりに保持しながら、周囲の構造を揃えます。

ユースケース

複数のクラウドプロバイダーを使用する大規模Terraformプロジェクトでのプロバイダー依存関係の管理、チームメンバー全員が互換性のあるプロバイダーバージョンを使用することの確保。

試してみる — Terraform HCL Formatter

フルツールを開く