试图将云监视日志放入kineses firehose。
如下: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#FirehoseExample
收到此错误
调用PutSubscriptionFilter操作时发生错误(InvalidParameterException):无法将测试消息传递到指定的Firehose流。检查是否 给定的Firehose流处于活动状态。
aws日志put-subscription-filter --log-group-name“ xxxx” --filter-name“ xxx” --filter-pattern“ {$ .httpMethod = GET}” --destination-arn“ arn: aws:firehose:us-east-1:12345567:deliverystream / xxxxx“ --role-arn” arn:aws:iam :: 12344566:role / xxxxx“
答案 0 :(得分:0)
最可能导致此错误的问题是权限问题。也就是说,您传递给--role-arn
的IAM角色的定义有误。您可能要仔细检查一下角色及其权限是否按照文档中所述正确设置。
答案 1 :(得分:0)
如果您的Firehose处于活动状态,并且可以发送日志流,那么剩下的问题只是策略。
按照本教程操作时,我遇到了类似的问题。这里混淆的是Kinesis部分和Firehose部分,我们可能会混合在一起。您需要重新检查您的〜/ PermissionsForCWL.json,其详细信息部分为:
....
"Action":["firehose:*"], *// You could confused with kinesis:* like me*
"Resource":["arn:aws:firehose:region:123456789012:*"]
....
答案 2 :(得分:0)
您需要更新IAM角色的信任策略,以便为logs.amazonaws.com
服务主体提供权限以承担该职责,否则CloudWatch Logs将无法承担您的角色以将事件发布到Kinesis流。 (显然,您还需要仔细检查角色的权限,以确保该角色具有从日志组读取和写入Kinesis Stream的权限。)
如果他们将其添加到错误消息中以帮助人们指出正确的方向,那将是很好的事情。
答案 3 :(得分:0)
当我完成您提到的教程时,它默认使用其他区域,因此我必须将--region
传递给我的区域。直到我对整个步骤进行了正确的操作后,才开始工作。