我对地形有一个问题,我真的不理解。
让我解释一下:当我运行时
- 地形初始化一切正常
- 地形fmt都很好
- 地形验证一切良好
但是,当我运行地形计划时,我会出现错误地形图
我设置了AWS_ACCESS_KEY&AWS_SECRET_key对代码进行快速测试(否则值由gitlab传递(
如果我在变量上尝试而不使用它们。tf和使用我在之前导出的值来使用AWS CLI,一切都会很好,我可以在AWS上部署。
变量.tf
variable "aws_region" {
default = "eu-central-1"
}
variable "bucket_name" {
type = string
default = "test-bucket"
}
variable "aws_access_key" {
default = "XXXXXXXXXXXXXXXXX"
}
variable "aws_secret_key" {
default = "XXXXXXXXXXXXXX"
}
main.tf
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.9.0"
}
}
}
provider "aws" {
region = var.aws_region
access_key = var.aws_access_key
secret_key = var.aws_secret_key
# Make faster by skipping something
# https://registry.terraform.io/providers/hashicorp/aws/latest/docs#skip_get_ec2_platforms
skip_get_ec2_platforms = true
skip_metadata_api_check = true
skip_region_validation = true
skip_credentials_validation = true
skip_requesting_account_id = true
}
提供者.tf
module "s3-bucket" {
source = "terraform-aws-modules/s3-bucket/aws"
version = "3.4.0"
bucket = var.bucket_name
acl = "private"
force_destroy = true
create_bucket = true
versioning = {
enabled = true
}
server_side_encryption_configuration = {
rule = {
apply_server_side_encryption_by_default = {
sse_algorithm = "AES256"
}
}
}
}
谢谢你的帮助。我不知道该怎么办了
尝试使用
"区域">
";access_key">
";secret_key">
不带
aws_
作为变量.tf和main.tf 的前缀
有时它会与地形代码产生冲突
原因似乎是aws_前缀。当它用于变量名称时,会发生此错误。