Как экспортировать журналы CloudWatch (результат лямбда-функции) в S3 с помощью Terraform - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть следующее требование. Мне нужно экспортировать журналы из Cloudwatch в S3, используя Terraform. У меня есть пара функций Lambda, и журналы от этих функций Lambda автоматически регистрируются в Cloudwatch / aws / lambda /. Я смотрю на положение для экспорта этих журналов в S3 для просмотра разработчиком.

Я рассмотрел следующую реализацию для отправки журналов Cloudwatch с использованием CloudTrail на S3. В этом примере используется несколько приложений, которые не охватывают функцию Lambda.

https://registry.terraform.io/modules/trussworks/logs/aws/1.4.0

Могу ли я следовать любому подобному подходу при создании Политики, которая позволяет журналам, зарегистрированным из функции Lambda в Cloudwatch, быть перенесен на S3?

Является ли создание Политики единственным требованием для отправки журналов Cloudwatch на S3? Можно ли как-то сказать Cloudwatch, чтобы он выталкивал все журналы, которые у него есть, вместо того, чтобы прикреплять к определенной функции?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Используйте пожарный шланг AWS для отправки журналов с CWL на S3: https://www.terraform.io/docs/providers/aws/r/kinesis_firehose_delivery_stream.html

0 голосов
/ 03 сентября 2018

вы можете использовать подписки, чтобы получить доступ к каналу событий журнала в реальном времени из CloudWatch Logs и доставлять его другим сервисам, таким как поток Amazon Kinesis, поток Amazon Kinesis Data Firehose или AWS Lambda для пользовательской обработки, анализа или загрузка в другие системы или S3 `` `/ * поток кинезиса * /

resource "aws_kinesis_stream" "log_stream" {
  name             = "test-logs"
  shard_count      = 1
  retention_period = 24

  shard_level_metrics = [
    "IncomingBytes",
    "OutgoingBytes",
    "IncomingRecords",
    "IteratorAgeMilliseconds",
    "OutgoingRecords",
    "ReadProvisionedThroughputExceeded",
    "WriteProvisionedThroughputExceeded",
  ]

  tags {
    EnvironmentType = "test"
  }
}

data "aws_iam_policy_document" "cloudwatchlogs_assume_role_policy" {
  statement {
    effect = "Allow"
    actions = ["sts:AssumeRole"]
    principals {
      type        = "Service"
      identifiers = ["logs.${data.aws_region.current.name}.amazonaws.com"]
    }
  }
}

`` ` что-то в этом роде

...