首页 > 解决方案 > 如何使用 ScheduleExpression 手动触发 cloudwatch 规则(10 天)

问题描述

我必须使用 ScheduleExpression(10 天)在 cloudwatch 中设置“AWS::Events::Rule”,并编写一些代码来测试它,但我无法将“10 天”更改为 1 分钟或直接调用 lambda 函数。我知道我们可以调用 put 事件来调用带有 EventPattern 的规则。但不知道如何为 ScheduleExpression 做到这一点。欢迎任何评论,谢谢。

标签: amazon-cloudformationamazon-cloudwatch

解决方案


SDK 方法: 可以,您可以使用 putRule SDK 函数来更新 CloudWatch 规则的 ScheduleExpression。正如我在下面的片段中提到的

   let params = 
    {
       Name: timezoneCronName, /* required */
       ScheduleExpression: cronExpression
    }
        
        return CloudWatchEvents.putRule(cloudWatchEventsParams).promise().then((response) => {
       console.debug(`CloudWatch Events response`, response);
       return response;
    }).catch((error) => {
       console.error(`Error occurred while updating Cloud Watch Event:${error.message}`);
        throw error;
    });

请参阅此官方 AWS 开发工具包文档

CLI 方法:

通过 CLI 运行以下命令

aws events put-rule --name "You Rule name (not full ARN)" --schedule-expression "cron(0/1 * * * ? *)"

推荐阅读