我正在尝试使用链接中示例中的 terraform 创建 S3 存储桶 https://www.terraform.io/docs/providers/aws/r/s3_bucket.html 我已经创建了一个 S3 模块。
我面临的问题是,对于某些存储桶,我不想启用日志记录。 如何在 Terraform 中实现这一点。
logging {
target_bucket = "${aws_s3_bucket.log_bucket.id}"
target_prefix = "log/"
}
对 target_bucket 和 target_prefix 使用空字符串会导致 terraform 尝试创建 target_bucket。
此外,我正在尝试使用一个模块。
最佳答案
使用 terraform 0.12+ 中较新的动态 block 支持,如果我们想要像这样进行日志记录,我们将传递一个包含日志记录设置的单项数组:
variable "logging" {
type = list
default = []
description = "to enable logging set this to [{target_bucket = 'xxx' target_prefix = 'logs/'}]"
}
resource "aws_s3_bucket" "s3bucket" {
dynamic "logging" {
for_each = [for l in var.logging : {
target_bucket = l.target_bucket
target_prefix = l.target_prefix
}]
content {
target_bucket = logging.value.target_bucket
target_prefix = logging.value.target_prefix
}
}
}
关于amazon-s3 - S3 存储桶的 Terraform AWS 可选日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55478352/