【问题标题】:AWS Put Subscription Filter for Kinesis Firehose using Cloudformation - Check if the given Firehose stream is in ACTIVE stateAWS Put Subscription Filter for Kinesis Firehose using Cloudformation - 检查给定的 Firehose 流是否处于 ACTIVE 状态
【发布时间】:2020-11-19 01:49:28
【问题描述】:

按照此guide 并创建 Kinesis Firehose 流。

我已按照指南进行操作,当我开始创建订阅过滤器(第 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 的特权。有什么想法吗?

【问题讨论】:

  • 前段时间 Stack Overflow 上有一个类似的问题,可能会帮助您解决问题:stackoverflow.com/questions/53828913/…
  • 您能说明您使用的 CW 日志的角色吗?
  • @DennisTraub 我已经看到了,并尝试了那里列出的步骤,但它并没有解决我的问题。
  • @Marcin 这里是 CW-Logs 的角色 { "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:*" ], "资源”:“arn:aws:firehose:ap-southeast-1:12345:deliverystream/Stream”,“效果”:“允许”},{“操作”:[“iam:PassRole”],“资源”:“ arn:aws:iam::12345:role/Stack57-CWLtoKinesisFirehoseRole-1PAUVCYZPRYWL", "效果": "允许" } ] }
  • 不确定是否有帮助,但我发现我需要将AmazonKinesisFirehoseFullAccess 权限添加到我的 IAM 角色。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2019-05-07
    • 1970-01-01
    • 2021-02-17
    • 2016-08-20
    • 2019-09-29
    相关资源
    最近更新 更多