Terraform AWS опциональный каротаж для ковша S3 - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь создать S3 bucket, используя terraform из примеров в ссылке https://www.terraform.io/docs/providers/aws/r/s3_bucket.html Я создал модуль S3.

Проблема, с которой я сталкиваюсь, заключается в том, что для определенного сегмента я не хочу, чтобы протоколирование было включено. Как это можно сделать в терраформе.

 logging {
        target_bucket = "${aws_s3_bucket.log_bucket.id}"
        target_prefix = "log/"   
}

Использование пустой строки для target_bucket и target_prefix заставляет terraform попытаться создать target_bucket.

Кроме того, я пытаюсь использовать модуль.

1 Ответ

1 голос
/ 02 апреля 2019

Может летать. Если вы хотите, чтобы значения ведения журнала были необязательными, сначала настройте модуль aws_s3_bucket.tf:

.
resource "aws_s3_bucket" "b" {
  bucket = "my-tf-test-bucket"
  acl    = "private"

  logging = "${var.logging}"
}

variable "logging" {
  type    = "list"
  default = []
}

затем в подпапке пример добавьте свой шаблон module.tf :

module "s3" {
  source = "../"

  logging = [
    {
      target_bucket = "loggingbucketname"
      target_prefix = "log/"
    },
  ]
}

provider "aws" {
  region  = "eu-west-1"
  version = "2.4.0"
}

Это ваша версия, в которой ведется логирование.

Затем измените файл module.tf, чтобы он выглядел как

  module "s3" {
      source = "../"
   }

    provider "aws" {
      region  = "eu-west-1"
      version = "2.4.0"
    }

Это ваша версия без. Это работало с: Terraform v0.11.11 + provider.aws v2.4.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...