使用 lambda 和无服务器,在特定日期和时间仅一次 运行 CRON 的 CRON 表达式是什么?

What will be the CRON expression to run CRON only once at particular date and time using lambda and serverless?

我在 serverless.yml 文件中添加了以下块以安排 CRON:

testCron1:
    handler: handler.testCron1
    events:
      - schedule: cron(15 14 22 MAY FRI 2020)

然后我在 handle.js 文件中创建一个 testCron1 lambda 函数。

const testCron1 = (event, context) => {
    return new Promise(async (resolve, reject) => {
        console.log("*********** NEW est CRON ************");
        console.log("Current Time ==> ", new Date(moment().utc().format()));
        resolve(true);
    });
}

当我尝试使用命令 serverless deploy 进行部署时,出现以下错误:

An error occurred: TestCron1EventsRuleSchedule1 - Parameter ScheduleExpression is not valid. (Service: AmazonCloudWatchEvents; Status Code: 400; Error Code:ValidationException; Request ID: c5b3178b-348a-4ffd-a205-d5255dcca2ab)

如果您使用的是 lambda,请使用 cloud watch 作为 cron 触发器。

使用云监视在特定时间处理 lambda 函数触发器会很容易。

您可以在此处找到触发规则表达式:https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html

您可以在此处查看支持的值列表:https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html

Example cron : 0 11 17 4 ? 2020 min hours day month dayOfWeek year

This will execute once on FRI, 17 APR 2020 11:00:00 GMT as an example.