Включить журналы Cloudwatch для Kinesis Firehose Cloudformation

Я пытаюсь поймать логи Cloudwatch для моего пожарного шланга, чтобы найти ошибки при отправке данных на S3 место назначения. Я создал шаблон облачной информации с подробностями регистрации

        "CloudWatchLoggingOptions" : {
          "Enabled" : "true",
          "LogGroupName": "/aws/firehose/firehose-dev", -->firehose-dev is my firehosedeliverystream name 
          "LogStreamName" : "s3logs"
        },

Я дал необходимое разрешение IAM на пожарный шланг для создания loggroupname а также streamname,

      {
    "Sid": "",
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": [
        "arn:aws:logs:*:*:*"
    ]
   }

Когда я запустил шаблон, я не нашел ни одного из имени группы журналов, а имя потока создается в логах cloudwatch.

Но когда мы даем те же разрешения IAM для AWS::Lambda ресурс будет автоматически создавать имя группы журналов (т.е./aws/lambda/mylambdaname) и отправьте журналы этой группе. Но почему этот сценарий не работает для пожарных?

В качестве обходного пути

Я создаю вручную AWS::Logs::LogGroup ресурс с именем как /aws/firehose/firehose-dev а также AWS::Logs::LogStream ресурс с именем как s3logs,


Кроме того, firehose автоматически создаст имя группы журналов и поток журналов, если мы настроим поток доставки пожарных шлангов с помощью консоли.

Не может ли firehose автоматически создавать имя группы журналов и имя потока журналов, как это делает aws lambda при настройке с помощью облачной информации?

Спасибо Любая помощь приветствуется

0 ответов

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

В случае с пожарным шлангом вы можете создать AWS::Logs::LogGroup а также AWS::Logs::LogStreamресурсы в CloudFormation. Например (ямл):

  MyFirehoseLogGroup:
    Type: AWS::Logs::LogGroup
    Properties: 
      RetentionInDays: 1

  MyFirehoseLogStream:      
    Type: AWS::Logs::LogStream
    Properties: 
      LogGroupName: !Ref MyFirehoseLogGroup

Затем, когда вы определите свой AWS::KinesisFirehose::DeliveryStream, вы можете ссылаться на них:

CloudWatchLoggingOptions: 
    Enabled: true
    LogGroupName: !Ref MyFirehoseLogGroup
    LogStreamName: !Ref MyFirehoseLogStream