Không. Provider là plugin dịch resource block thành API call của một dịch vụ cụ thể, mà resource của mỗi cloud khác nhau hoàn toàn. aws_instance không chạy trên GCP, đổi cloud vẫn phải viết lại gần hết code.
Cái dùng chung được là tool, workflow và team skill, không phải config.
hcl
terraform {
required_providers {
aws = { source = "hashicorp/aws", version = "~> 5.40" }
}
}
provider "aws" { region = "ap-southeast-1" }Provider không chỉ có cloud: Kubernetes, Datadog, Cloudflare, GitHub, PostgreSQL đều có provider, quản lý được cả team GitHub lẫn alert Datadog bằng cùng một workflow.
Bắt buộc trong dự án thật: pin version. Không pin thì AWS provider 5.x lên 6.x có thể đổi default, và một sáng đẹp trời plan đề xuất sửa 200 resource mà không ai hiểu vì sao.