簡體   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