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"
}
}
}
フォーマットの利点
各プロバイダーエントリはsourceとversion属性が揃えられた同じ2行パターンに従います。これにより以下が容易になります:
- バージョン制約の欠落を発見 — バージョン指定のないプロバイダーは予期しないアップグレードを引き起こす可能性
- 環境間のバージョン比較 — 揃えられたフォーマットで差異が一目で分かる
- 新しいプロバイダーの追加 — パターンが明確で一貫している
バージョン制約形式
| 制約 | 意味 |
|---|---|
~> 5.0 |
任意の5.xバージョン(>= 5.0、< 6.0) |
>= 3.0, < 4.0 |
明示的な範囲 |
= 2.23.1 |
正確なバージョン固定 |
!= 3.5.0 |
特定バージョンの除外 |
フォーマッターはこれらの制約文字列を記述されたとおりに保持しながら、周囲の構造を揃えます。
ユースケース
複数のクラウドプロバイダーを使用する大規模Terraformプロジェクトでのプロバイダー依存関係の管理、チームメンバー全員が互換性のあるプロバイダーバージョンを使用することの確保。