【问题标题】:Enable cloudwatch logs for kinesis firehose cloudformation为 kinesis firehose cloudformation 启用 cloudwatch 日志
【发布时间】:2019-05-07 00:04:25
【问题描述】:

我正在尝试为我的 firehose 捕获 Cloudwatch 日志,以便在将数据发送到 S3 目的地时发现任何错误。我创建了一个带有日志记录详细信息的 cloudformation 模板

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

我已为创建 loggroupnamestreamname 提供必要的 IAM 权限。

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

当我触发模板时,我没有在 cloudwatch 日志中找到任何日志组名和流名。

但是当我们为AWS::Lambda 资源授予相同的 IAM 权限时,它会自动创建一个日志组名称(即/aws/lambda/mylambdaname)并将日志发送到该组。但是为什么这种情况不适用于 firehose 呢?

作为一种解决方法

我正在手动创建名称为/aws/firehose/firehose-devAWS::Logs::LogGroup 资源和名称为s3logsAWS::Logs::LogStream 资源。


Firehose 还会创建一个日志组名称和日志流名称 自动,如果我们使用 控制台。

当通过 cloudformation 配置时,firehose 不能像 aws lambda 那样自动创建日志组名称和日志流名称吗?

谢谢 任何帮助表示赞赏

【问题讨论】:

  • 进展如何?问题依然存在?

标签: amazon-web-services amazon-cloudformation amazon-kinesis-firehose amazon-cloudwatchlogs


【解决方案1】:

它的资源依赖。有些资源会为您创建日志组,有些则不会。有时控制台会在后台创建它们。当您使用 CloudFormation 时,通常您必须自己完成所有操作。

如果是 Firehose,您可以在 CloudFormation 中创建 AWS::Logs::LogGroupAWS::Logs::LogStream 资源。例如(yaml):

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

【讨论】:

    猜你喜欢
    • 2017-05-27
    • 2020-06-09
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2019-08-15
    • 2017-10-16
    • 2020-11-13
    相关资源
    最近更新 更多