【问题标题】:Does AWS EventBridge rule with a schedule fire right away when it is enabled?带有计划的 AWS EventBridge 规则在启用时会立即触发吗?
【发布时间】:2022-11-13 13:58:55
【问题描述】:

已定义 EventBridge 规则,默认情况下禁用。

    new Rule(this, 'EmailRule', {
      ruleName: 'email-event-rule',
      description: 'trigger email handler',
      enabled: false,
      eventPattern: {
        detailType: ['email-event-rule-event']
      },
      targets: [new LambdaFunction(emailHandlerConstruct.getLambda())],
      schedule: Schedule.rate(Duration.hours(1))
    });

在某些情况下,它是启用的。但我认为它会在启用一个小时后运行。但它会在每次启用时立即触发 lambda。

这是它的设计方式还是我错过了什么?我在文档中没有看到有关启用事件桥规则的时间表的任何地方。

【问题讨论】:

    标签: amazon-web-services aws-sdk aws-event-bridge aws-sdk-nodejs


    【解决方案1】:

    好问题。该文档仅提到它会在规则创建时立即触发。因此,此行为未记录在案,您不会遗漏任何内容。

    【讨论】:

      【解决方案2】:

      它确实是这样设计的。当您创建使用速率表达式而不是计划(例如您的示例)的 Eventbridge 规则时,它将在创建时运行,然后在您指定的任何时间段过去后再次运行。在您的示例中,您似乎希望规则每小时触发一次 lambda。创建规则后,它会立即触发 lambda,然后每隔一小时再执行一次。这意味着如果您在下午 1:30 部署规则,那么它将在下午 2:30、下午 3:30 等重复。

      链接到有关速率表达式 Eventbridge 规则的 AWS 文档:https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 2021-10-08
        • 2022-01-27
        • 2021-08-06
        • 2021-03-24
        • 2020-11-02
        • 1970-01-01
        相关资源
        最近更新 更多