AWS 使用 Cloudformation 为 Kinesis Firehose 放置订阅筛选器 - 检查给定的 Firehose 流是否处于活动状态

问题描述 投票:0回答:3

遵循本指南并创建 Kinesis Firehose Stream。

我已按照指南进行操作,当我开始创建订阅过滤器(步骤 12)时,我在尝试发送到 S3 时遇到此错误:

调用 PutSubscriptionFilter 操作时发生错误 (InvalidParameterException):无法将测试消息传递到指定的 Firehose 流。检查给定的 Firehose 流是否处于 ACTIVE 状态。

我可以确认流处于活动状态,并且我可以通过控制台发送测试数据,并且它按预期到达 S3。

这是我正在运行的命令(更改了我的帐户 ID):

aws logs put-subscription-filter --log-group-name "myLogGroup" --filter-name "Destination" --filter-pattern "{$.userIdentity.type = Root}" --destination-arn "arn:aws:firehose:ap-southeast-1:1234567890:deliverystream/my-delivery-stream" --role-arn "arn:aws:iam::1234567890:role/CWLtoKinesisFirehoseRole"

我已经检查了受信任的实体,并且该角色具有日志和 Firehose 的权限。有什么想法吗?

amazon-web-services aws-cloudformation amazon-cloudwatch amazon-cloudwatchlogs amazon-kinesis-firehose
3个回答
2
投票

我也为此苦苦挣扎了很长一段时间,对我来说就是那两个哥特卡:

指南中的步骤 4: 确保将存储桶名称更改为您的存储桶:

第 8 步!!!:

确保输入您的帐户 ID(未突出显示):


0
投票

我确信您已经知道如何配置日志订阅过滤器,因此无需在我的答案中添加步骤

  1. 转到 firehose 并检查日志,您的 firehose 是否有权执行 lambda,如果没有,请添加所需的角色。
  2. 现在使用 Firehose 测试启动虚拟数据流,看看您的数据是否正在移动到 lambda 或 S3。
  3. 检查云踪迹和云观察日志,看看是否发现任何错误。
  4. 打开您的 IAM 角色并检查添加到您的角色中的所有必需角色,现在单击信任关系添加 - “日志组”、“IAM”,组件名称在我的情况下为“Ec2”

希望这有助于解决您的问题。


0
投票

这是 Cloudwatch Logs 和 Firehose 流之间的权限问题。您的角色和政策可能是错误的。

我按照 this doc 在需要的地方用

kinesis
替换
firehose
,最终得到:

  • 此 IAM 政策:

    {
        "Version": "2012-10-17",
        "Statement": [{
            "Effect": "Allow",
            "Action": "firehose:PutRecord",
            "Resource": "arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream/STREAM_NAME"
        }]
    }
    
  • 一个 IAM 角色:

    • 包括上面创建的策略

    • 具有以下信任关系:

       {
           "Version": "2012-10-17",
           "Statement": [{
               "Effect": "Allow",
               "Principal": {
                   "Service": "logs.REGION.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringLike": {
                       "aws:SourceArn": "arn:aws:logs:REGION:ACCOUNT_ID:*"
                   }
               }
           }]
       }
      
  • 在创建日志组目标时选择 IAM 角色

别忘了更换

REGION
ACCOUNT_ID
STREAM_NAME

© www.soinside.com 2019 - 2024. All rights reserved.