手动触发 AWS CloudWatch 事件

Ada*_*dam 10 amazon-web-services amazon-cloudwatch

我在 CloudWatch 中有一个事件,每天触发一次。有没有办法手动触发事件(用于测试目的)?

...我意识到我可以增加事件触发计划的频率。

dan*_*mal 10

如果您设置了 cloudwatch 警报,则可以使用 AWS CLI 为测试目的设置该警报的警报状态:

aws cloudwatch set-alarm-state --alarm-name "myalarm" --state-value ALARM --state-reason "testing purposes"
Run Code Online (Sandbox Code Playgroud)

请参阅此处文档

或者,您可以放置自定义事件,也可以使用 CLI 或 SDK

  • 有没有办法通过 UI 来做到这一点? (6认同)
  • 我不会通过警报触发该事件。它是根据时间表触发的。但是,撇开语义不谈,这是一个有用的解决方法。这类似于(在意图/想法上)调整活动的日程安排。 (2认同)

小智 8

我发现的另一个解决方案是禁用然后重新启用该规则:

aws events disable-rule --name "my_scheduled_rule"
aws events enable-rule --name "my_scheduled_rule"
Run Code Online (Sandbox Code Playgroud)

也许不是最好的路线,但一个选择......


Kar*_*nka 5

我还没有找到(而且我认为不可能)手动触发计划触发器的方法。但正如 danimal 提到的,您可以放置​​一个自定义事件来触发它。

# update your rule to trigger on a dummy-event source
# put-rule updates a rule if it exists or creates a new one if it doesn't
aws events put-rule --name "my-rule" --event-pattern "{\"source\":[\"karlanka\"]}"
    
# send an event with the same dummy source to trigger the rule
# Detail and DetailType are required but not used
aws events put-events --entries '[{"Source":"karlanka","DetailType":"X","Detail":"{}"}]'
    
# then change the rule back to your schedule
aws events put-rule --name "my-rule" --schedule-expression "rate(12 hours)"

Run Code Online (Sandbox Code Playgroud)