【问题标题】:Trigger AWS CloudWatch Event Manually手动触发 AWS CloudWatch 事件
【发布时间】:2020-01-21 20:58:17
【问题描述】:

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

...我意识到我可以增加事件触发时间表的频率。

【问题讨论】:

  • 触发什么?如果是 lambda,那么解决方案可能会更容易。
  • 我想触发事件本身以确保授予它的权限以及连接到它调用的东西(一个步进函数)是正确的。我已经独立运行了 step 函数来测试它的流程。

标签: amazon-web-services amazon-cloudwatch


【解决方案1】:

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

aws cloudwatch set-alarm-state --alarm-name "myalarm" --state-value ALARM --state-reason "testing purposes"

docs here

您也可以put a custom event,也可以使用 CLI 或 SDK

【讨论】:

  • 我没有通过警报触发事件。它是按计划触发的。但是,抛开语义不谈,这是一个有用的解决方法。这类似于(在意图/想法上)调整活动的时间表。
  • 有没有办法通过 UI 做到这一点?
【解决方案2】:

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

aws events disable-rule --name "my_scheduled_rule"
aws events enable-rule --name "my_scheduled_rule"

也许不是最好的路线,而是一种选择……

【讨论】:

    【解决方案3】:

    我还没有找到(而且我认为不可能)手动触发计划的触发器。但是正如 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)"
    
    

    【讨论】:

      猜你喜欢
      • 2020-05-08
      • 2019-07-15
      • 1970-01-01
      • 2022-01-27
      • 2020-09-20
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多