Мне нужно отправить журналы Cloudwatch в службу анализа журналов.
Я следил за этими статьями здесь и здесь, и все получилось вручную, не беспокоясь.
Теперь я пытаюсь автоматизировать все это с помощью Terraform (роли/политики, группы безопасности, группа журналов cloudwatch, лямбда-выражения и запуск лямбда-выражения из группы журналов).
Но я не могу понять, как использовать TF для настройки AWS для запуска лямбды из журналов облачных часов.
Я могу связать два ресурса TF вручную, выполнив следующее (в пользовательском интерфейсе веб-консоли Lambda):
- перейти в раздел "Триггеры" лямбда-функции
- нажмите "Добавить триггер"
- выберите "Журналы CloudWatch" из списка типов триггеров
- выберите группу журналов, которую я хочу, чтобы вызвать лямбду
- введите имя фильтра
- оставьте шаблон фильтра пустым (подразумевается триггер для всех потоков журнала)
- убедитесь, что выбран "триггер включения"
- нажмите кнопку отправки
Как только это будет сделано, лямбда будет отображаться на консоли журналов cloudwatch в столбце подписок и будет отображаться как "Lambda (cloudwatch-sumologic-lambda)".
Я пытался создать подписку со следующим ресурсом TF:
resource "aws_cloudwatch_log_subscription_filter" "cloudwatch-sumologic-lambda-subscription" {
name = "cloudwatch-sumologic-lambda-subscription"
role_arn = "${aws_iam_role.jordi-waf-cloudwatch-lambda-role.arn}"
log_group_name = "${aws_cloudwatch_log_group.jordi-waf-int-app-loggroup.name}"
filter_pattern = "logtype test"
destination_arn = "${aws_lambda_function.cloudwatch-sumologic-lambda.arn}"
}
Но это не так с:
aws_cloudwatch_log_subscription_filter.cloudwatch-sumologic-lambda-subscription: InvalidParameterException: destinationArn для лямбды-поставщиков нельзя использовать с roleArn
Я нашел этот ответ о настройке аналогичной вещи для запланированного события, но это не похоже на то, что делают действия консоли, которые я описал выше (метод пользовательского интерфейса консоли не создает событие/правило, которое я вижу).
Может кто-нибудь дать мне указатель на то, что я делаю не так, пожалуйста?