Terraform - aws_cloud_watch_log_metric_filter - PullRequest
0 голосов
/ 24 мая 2018

Кто-нибудь имел опыт установки метрических фильтров в логах cloudwatch?Хотите знать, если я обнаружил ошибку в Terraform?

Так вот, что я пытаюсь сделать;

resource "aws_cloudwatch_log_metric_filter" "AWS_Console_Login" {
  name           = "${var.aws_account_id}_Console_Login_Failure"
  pattern        = "{ ($.eventName = ConsoleLogin) && ($.errorMessage = "Failed authentication") }"
  log_group_name  = "${var.aws_cloudtrail_name}"  

  metric_transformation {
    name      = "${var.aws_account_id}_Console_Login_Failure"
    namespace = "AccountMonitoring${var.aws_account_id}"
    value     = "1"
  }
}

Когда я запускаю или проверяю Terraform, я получаю этот ответ;

Ошибка: ошибка синтаксического анализа cloudwatch.tf На 157: 19: ожидаемый вложенный объект: LBRACE получил: ASSIGN

Для ясности 157: 19 относится к строке кода, содержащей log_group_name, где 19 стоит перед= символ.

Однако я думаю, что это связано с моим шаблоном, если я удаляю группу журналов ... и запускаю полученную проверку;

aws_cloudwatch_log_metric_filter.AWS_Console_Login :: неверный или неизвестный ключ:Не удалось

Я слишком много спрашиваю, используя шаблон фильтра AWS, который у меня есть?

Спасибо, Стивен

1 Ответ

0 голосов
/ 24 мая 2018

Попробуйте отменить ваши цитаты.Это сбой с синтаксисом.Проблема не в строке log_group_name.Это тот, что над ним.

resource "aws_cloudwatch_log_metric_filter" "AWS_Console_Login" {
  name           = "${var.aws_account_id}_Console_Login_Failure"
  pattern        = "{ ($.eventName = ConsoleLogin) && ($.errorMessage = \"Failed authentication\") }"
  log_group_name  = "${var.aws_cloudtrail_name}"  

  metric_transformation {
    name      = "${var.aws_account_id}_Console_Login_Failure"
    namespace = "AccountMonitoring${var.aws_account_id}"
    value     = "1"
  }
}

Кажется, все в порядке.Вы должны посмотреть на tflint .Это часть плагина Terraform для Visual Studio Code, который помог мне отследить, где была ошибка.

...