AWS Cron 计划表达式

AWS Cron schedule expression

我想在 NodeJS/Typescript 中使用无服务器框架将函数部署到 AWS Lambda。这是我的 serverless.yml:

service: backend

plugins:
  - serverless-webpack

provider:
  name: aws
  region: eu-central-1
  runtime: nodejs14.x
  stage: dev

functions:
  createDailyStatistics:
    handler: dist/services/schedules.scheduleDailyStatistics
    events:
      - schedule:
          rate: cron(0 0 * * *)
          enabled: true

有人能告诉我,为什么在启动后 serverless deploy 我收到这样的错误:

CREATE_FAILED: CreateDailyStatisticsEventsRuleSchedule1 (AWS::Events::Rule)
Parameter ScheduleExpression is not valid. (Service: AmazonCloudWatchEvents; Status Code: 400; Error Code: ValidationException; Request ID: xxx; Proxy: null)

我的表达式 - 0 0 * * * 是一个标准的 cron 表达式,但 AWS 不处理这个?我想在每天午夜启动这个功能。

感谢您的帮助!

AWS 使用扩展的 CRON 表达式格式:

请注意,表达式中有 6 个字段:MinutesHoursDay of monthMonthDay of weekYear.

在您的例子中,您只提供了 5 个值。我猜您最有可能使用 crontab.guru 来创建您的 cron 表达式,这意味着您希望触发一个事件 At 00:00。在这种情况下,对于 AWS,您会希望有这样的内容:0 0 * * ? *.