Provider 参考

required_providers 块

terraform { required_version = ">= 1.6.0" required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } google = { source = "hashicorp/google" version = ">= 5.0, < 6.0" } azurerm = { source = "hashicorp/azurerm" version = "~> 3.80" } } }

AWS Provider 配置

provider "aws" { region = "us-east-1" profile = "production" # 跨账号扮演角色 assume_role { role_arn = "arn:aws:iam::123456789012:role/TerraformRole" session_name = "terraform-session" } default_tags { tags = { ManagedBy = "terraform" Environment = var.environment } } } # 多区域 provider 别名 provider "aws" { alias = "us_west" region = "us-west-2" } resource "aws_s3_bucket" "west" { provider = aws.us_west bucket = "my-west-bucket" }

GCP Provider 配置

provider "google" { project = var.gcp_project_id region = "us-central1" } provider "google-beta" { project = var.gcp_project_id region = "us-central1" } # 使用 beta provider 的特定资源 resource "google_container_cluster" "primary" { provider = google-beta name = "my-cluster" location = "us-central1" }

Azure Provider 配置

provider "azurerm" { features { key_vault { purge_soft_delete_on_destroy = true } resource_group { prevent_deletion_if_contains_resources = true } } subscription_id = var.azure_subscription_id tenant_id = var.azure_tenant_id }

版本约束语法

约束含义示例
= 5.0.0精确版本仅 5.0.0
>= 5.0最低版本5.0 及以上
~> 5.0仅补丁更新5.0.x(不含 5.1)
>= 5.0, < 6.0版本范围任意 5.x