#amazon-web-services #amazon-s3 #terraform #terraform-provider-aws
#amazon-web-services #amazon-s3 #terraform #terraform-provider-aws
Вопрос:
Новое в 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 мало что дал в плане результатов. Спасибо!
Ответ №1:
Лучший способ решить эту проблему — импортировать ваш сегмент в состояние terraform, а не использовать его как 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
Это импортирует сегмент в ваше состояние, и теперь вы можете вносить изменения или добавлять новые элементы в свой сегмент с помощью terraform.
Просто запустите последний шаг terraform apply
, и правило жизненного цикла будет добавлено.
Комментарии:
1. Спасибо! Именно то, что мне было нужно.
2. Отлично ! Нет проблем!