[英]Terraform and S3 - How to upload files to an existing bucket
如何在不破坏存储桶内容或重新创建存储桶的情况下将文件上传到现有的 s3 存储桶(由 terraform 基础设施创建)。
terraform {
backend "s3" {
bucket = "terraformtests"
key = "terraformstate.tf"
region = "us-east-1"
}
}
resource "aws_s3_bucket_object" "terraformtests" {
bucket = "terraformtests"
key = "test/prod/1000/keys"
source = "deploy"
etag = "${md5(file("keys"))}"
}
这就是我所拥有的。 它在第一次运行时运行良好,并将其上传到密钥空间“1000”。 当我编辑它并使用 1001 重新运行时,该脚本会尝试销毁之前在 test/prod/1000/keys 中创建的文件。 我想要做的就是
您得到的结果是 Terraform 所期望的结果。
TF 在.tfstate文件中维护基础设施的“状态”。 它们是上次同步时基础架构的镜像。
.tf文件中描述了基础结构的理想状态。
运行terraform plan
或terraform apply
命令比较.tf和.tfstate文件。 然后,所有存在于.tfstate中但不存在于 .tf 中的资源都将被销毁。
在您的情况下,它在上一次运行的.tfstate中有键空间 1000 ,但在.tf中没有,因为您将它编辑为1001 。
另外,我注意到你有
source = "deploy"
etag = "${md5(file("keys"))}"
通常,它们应该引用同一个文件:
source = "readme.md"
etag = "${filemd5("readme.md")}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.