我是亚马逊网络服务CloudWatch的初学者。当我使用AWS java SDK创建CloudWatch事件规则,并使用sns作为目标时,事件不会被触发。
它在使用Direct AWS管理控制台创建时运行良好。
当比较java sdk创建和管理控制台创建时,一切都保持不变。
唯一的区别是在亚马逊网络服务管理控制台规则调用中,创建了两个指标(invocation,TriggeredRules),在java sdk规则调用中,创建了三个指标(invocation,TriggeredRules,FailedInvocation)。
发布于 2020-07-01 06:02:23
如果您在SNS主题中使用自定义KMS密钥,则还需要将以下策略添加到您的KMS密钥策略中:
{
"Sid": "CloudwatchEvents",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": [
"kms:Encrypt*",
"kms:Decrypt*",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:Describe*"
],
"Resource": "*"
}发布于 2018-11-14 18:58:03
如果您发现它在通过控制台创建时可以工作,但如果您使用应用程序接口(或类似于Terraform)进行创建,则很可能您没有更新SNS主题策略,以便它允许从CloudWatch事件发布事件。控制台半神奇地为您完成了这项工作,但是如果您使用API,您将有更多的工作要做。
有一个详细的答案here in the FAQ,但长话短说,你需要在你的社交网络主题策略中添加(而不是替换)类似的东西:
{
"Sid" : "CloudWatchEvents",
"Effect" : "Allow",
"Resource" : "${aws_sns_topic.events.arn}",
"Action" : "sns:Publish",
"Principal" : {
"Service" : "events.amazonaws.com"
}
}https://stackoverflow.com/questions/50411632
复制相似问题