Version-Pinning
required_version pinnt die CLI,
required_providers pinnt Provider
(source + version).
Pessimistic-Operator ~> lässt nur die
letzte angegebene Stelle steigen: ~> 6.0 = 6.x,
~> 6.0.1 = 6.0.x.
.terraform.lock.hcl einchecken,
exakte Provider-Versionen + Hashes für alle
Umgebungen. terraform init -upgrade ist eine
bewusste Aktion, kein Default.
Provider-Alias
Mehrere Accounts/Rollen: gleicher Provider mit
alias, Zuordnung per provider = am
Resource- bzw. providers =-Map am Modul-Block.
Nur andere Region im selben Account: AWS-Provider 6.0+ nimmt
region an den meisten Ressourcen direkt, ohne Alias.
terraform {
required_version = ">= 1.16.7, < 2.0"
required_providers {
aws = { source = "hashicorp/aws",
version = "~> 6.0" }
}
}
provider "aws" { region = "eu-central-1" }
provider "aws" {
alias = "dr"
region = "eu-west-1"
assume_role { role_arn = var.dr_role_arn }
}
resource "aws_s3_bucket" "replica" {
provider = aws.dr
bucket = "${local.name_prefix}-replica"
}