繁体   English   中英

如何将生命周期规则应用于 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 Fu 收效甚微。 谢谢!

解决此问题的最佳方法是将您的存储桶导入 terraform state 而不是将其用作data

为此,请尝试将其放入您的 terraform 代码中:

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

这会将存储桶导入您的 state,现在您可以使用 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 Fu 在结果方面收效甚微。 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM