我必须使用ScheduleExpression(10天)在cloudwatch中设置"AWS::Events::Rule“,并编写一些代码来测试它,但我不能将"10天”更改为1分钟或直接调用lambda函数。我知道我们可以通过EventPattern调用put事件来调用规则。但不知道如何为ScheduleExpression做到这一点。欢迎提出任何意见,谢谢。
发布于 2020-09-02 15:00:43
据我所知,您不可能手动触发规则并使其执行lambda函数。您可以做的是将频率从10天更改为1分钟,让它执行,当它执行时,将其切换回10天
发布于 2020-10-23 03:07:26
我也遇到了这个问题。我查看了亚马逊网络服务的文档,它说一个规则只能包含either EventPattern or ScheduleExpression。但是为了调用aws events put-events,我们必须为EventPattern匹配提供一个源。所以我认为我们不能手动触发预定的事件。
不知道你的用例是什么,但我决定改用AWSLambda客户端的Invoke接口。
发布于 2021-09-01 00:36:22
SDK方法:可以,您可以使用putRule SDK函数更新ScheduleExpression的CloudWatch规则。正如我在下面的代码片段中提到的
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 SDK DOC。
命令行界面方法:
通过CLI运行以下命令
aws events put-rule --name "You Rule name (not full ARN)" --schedule-expression "cron(0/1 * * * ? *)"https://stackoverflow.com/questions/59704802
复制相似问题