如何将CloudWatch规则正确附加到SNS主题?

时间:2018-08-14 07:30:57

标签: amazon-web-services amazon-sns amazon-cloudwatch

我正在尝试从CloudWatch启动StepFunction。当事件源是日程表时,这就像一个魅力。但是,当我尝试创建事件模式来观看相应的SNS主题时,CloudWatch看不到该出版物。 我尝试了两种默认模式:

{
  "source": [
    "aws.sns"
  ]
}

并使用arn:

{
  "resources": [
    "// SNS topic arn here"
   ],
}

在两种情况下,当我发布到主题时,都不会发生任何事情。我究竟做错了什么? 更新:不幸的是,我不明白什么是“事件模式”规则,它在其他情况下不起作用-即使从lambda手动推送事件也是如此。我目前看到的解决问题的方法是创建CloudWatch调度规则,使其每1-3秒启动一次,并将其禁用。然后我要从lambda将事件推送到SNS,以启用此CloudWatch规则。当它触发并启动Step Function时,在Step Function内部禁用该规则。这是胡说八道,但应该可以。

1 个答案:

答案 0 :(得分:-1)

确保您的SNS主题具有一个允许event.amazonaws.com对其发布的策略集,例如:

  statement {
    effect  = "Allow"
    actions = ["SNS:Publish"]

    principals {
      type        = "Service"
      identifiers = ["events.amazonaws.com"]
    }

    resources = ["${aws_sns_topic.sns_topic.arn}"]
  }