我试图将多个文件上传到一个S3桶中,如这个文章所示,其中也有一个视频,下面是我使用的代码
# Create a bucket
resource "aws_s3_bucket" "b1" {
bucket = "s3-terraform-bucket-labbb"
acl = "private" # or can be "public-read"
tags = {
Name = "My bucket"
Environment = "Dev"
}
}
resource "aws_s3_bucket_object" "object1" {
for_each = fileset("myfiles/", "*")
bucket = aws_s3_bucket.b1.id
key = each.value
source = "myfiles/${each.value}"
etag = filemd5("myfiles/${each.value}")
}Buildspec.yml
version: 0.2
phases:
install:
commands:
- "apt install unzip -y"
- "wget https://releases.hashicorp.com/terraform/0.11.14/terraform_0.11.14_linux_amd64.zip"
- "unzip terraform_0.11.14_linux_amd64.zip"
- "mv terraform /usr/local/bin/"
pre_build:
commands:
- terraform init
build:
commands:
- terraform $TF_COMMAND -auto-approve
post_build:
commands:
- echo terraform $TF_COMMAND completed on `date`当我在代码构建中运行TF模板时,我会得到以下错误
Error: Error parsing /codebuild/output/src634819119/src/s3bucket.tf: At 12:16: Unknown token: 12:16 IDENT fileset
有人知道我是不是漏掉了什么或者Terraform有什么问题吗?谢谢!
发布于 2021-02-21 23:56:48
您使用的是非常老的terraform (0.11.14)。当前版本为0.14.7。尽管使用了旧版本,但terraform代码是现代的,因此无法使用0.11版本。
您必须重写代码才能在0.11版本中生效,或者有什么更好的方法来使升级您的terraform版本。
发布于 2021-02-21 21:43:46
您错过了文件路径中的${path.module}。这是在Terraform官方文档中推荐的。它也有一些很好的例子。
resource "aws_s3_bucket_object" "object1" {
for_each = fileset("${path.module}/myfiles/", "*")
bucket = aws_s3_bucket.b1.id
key = each.value
source = "myfiles/${each.value}"
etag = filemd5("myfiles/${each.value}")
}https://stackoverflow.com/questions/66305612
复制相似问题