如何将生命周期规则应用于 Terraform 中的现有 s3 存储桶?
How do I apply a lifecycle rule to an EXISTING s3 bucket in Terraform?
Terraform 的新手。尝试将生命周期规则应用于声明为数据源的现有 s3 存储桶,但我想我不能对数据源执行此操作 - 会引发错误。这是我尝试实现的要点:
data "aws_s3_bucket" "test-bucket" {
bucket = "bucket_name"
lifecycle_rule {
id = "Expiration Rule"
enabled = true
prefix = "reports/"
expiration {
days = 30
}
}
}
...如果这是一种资源,而不是数据源,那么它就可以工作。如何将生命周期规则应用于声明为数据源的 s3 存储桶? Google 傅在路上收效甚微。谢谢!
解决此问题的最佳方法是将您的存储桶导入到 terraform 状态,而不是将其用作 data
。
为此,请尝试将其放在您的地形代码中:
resource "aws_s3_bucket" "test-bucket" {
bucket = "bucket_name"
lifecycle_rule {
id = "Expiration Rule"
enabled = true
prefix = "reports/"
expiration {
days = 30
}
}
}
然后在终端上运行:
terraform import aws_s3_bucket.test-bucket bucket_name
这会将存储桶导入您的状态,现在您可以使用 terraform 进行更改或向您的存储桶添加新内容。
最后一步 运行 terraform apply
将添加生命周期规则。
Terraform 的新手。尝试将生命周期规则应用于声明为数据源的现有 s3 存储桶,但我想我不能对数据源执行此操作 - 会引发错误。这是我尝试实现的要点:
data "aws_s3_bucket" "test-bucket" {
bucket = "bucket_name"
lifecycle_rule {
id = "Expiration Rule"
enabled = true
prefix = "reports/"
expiration {
days = 30
}
}
}
...如果这是一种资源,而不是数据源,那么它就可以工作。如何将生命周期规则应用于声明为数据源的 s3 存储桶? Google 傅在路上收效甚微。谢谢!
解决此问题的最佳方法是将您的存储桶导入到 terraform 状态,而不是将其用作 data
。
为此,请尝试将其放在您的地形代码中:
resource "aws_s3_bucket" "test-bucket" {
bucket = "bucket_name"
lifecycle_rule {
id = "Expiration Rule"
enabled = true
prefix = "reports/"
expiration {
days = 30
}
}
}
然后在终端上运行:
terraform import aws_s3_bucket.test-bucket bucket_name
这会将存储桶导入您的状态,现在您可以使用 terraform 进行更改或向您的存储桶添加新内容。
最后一步 运行 terraform apply
将添加生命周期规则。