【发布时间】:2022-01-26 02:08:28
【问题描述】:
我有一个简单的 Terraform 代码,用于在 S3 中管理应用程序的版本代码
我想在 S3 中管理此代码的多个版本。
我的代码如下:
main.tf
resource "aws_s3_bucket" "caam_test_bucket" {
bucket = "caam-test-bucket"
versioning {
enabled = true
}
}
resource "aws_s3_bucket_object" "caam_test_bucket_obj" {
bucket = aws_s3_bucket.caam_test_bucket.id
key = "${var.env}/v-${var.current_version}/app.zip"
source = "app.zip"
}
每次更新代码时,我将其导出到 app.zip,增加变量 current_version 并推送 terraform 代码。
这里的问题是,它不是在 S3 存储桶中保留多个版本文件夹,而是删除现有的一个并创建另一个。
我希望 Terraform 保留创建的所有路径和文件,而不是将其删除。
例如,如果路径 dev/v-1.0/app.zip 已经存在并且我将当前版本增加到 2.0 并推送代码,我希望 Terraform 保留 dev/v-1.0/app.zip 并将 dev/v-2.0/app.zip 添加到存储桶中。
有没有办法做到这一点?
【问题讨论】:
标签: amazon-web-services amazon-s3 terraform