在 EventBridge 调度器中配置灵活的时间窗口 - EventBridge 调度器

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 EventBridge 调度器中配置灵活的时间窗口

当您使用灵活的时间窗口配置计划时,S EventBridge cheduler 会在您设置的时间窗口内调用目标。这在不需要通过精确计划来调用目标的情况下很有用。设置灵活的时间窗可分散目标调用,从而提高计划的可靠性。

例如,如果您为每小时运行一次的计划配置了 15 分钟的灵活时间窗口,则它会在计划时间之后的 15 分钟内调用目标。以下 AWS CLI和 EventBridge 调度程序SDK示例用于UpdateSchedule为每小时运行一次的计划设置 15 分钟的弹性时间窗口。

注意

您必须指定是否要设置灵活的时间窗口。如果不希望设置此选项,请指定 OFF。如果将该值设置为 FLEXIBLE,则必须指定计划运行的最大时间段。

例 AWS CLI
$ aws scheduler update-schedule --name lambda-universal --schedule-expression 'rate(1 hour)' \ --target '{"RoleArn": "ROLE_ARN", "Arn":"arn:aws:scheduler:::aws-sdk:lambda:invoke" "Input": "{\"FunctionName\":\"arn:aws:lambda:REGION:123456789012:function:HelloWorld\",\"InvocationType\":\"Event\",\"Payload\":\"{\\\"message\\\":\\\"testing function\\\"}\"}" }' \ --flexible-time-window '{ "Mode": "FLEXIBLE", "MaximumWindowInMinutes": 15} \
{
    "ScheduleArn": "arn:aws:scheduler:us-west-2:123456789012:schedule/lambda-universal"
}
例 Python SDK
import boto3 scheduler = boto3.client('scheduler') sqs_templated = { "RoleArn": "<ROLE_ARN>", "Arn": "<QUEUE_ARN>", "Input": "{}"} flex_window = { "Mode": "FLEXIBLE", "MaximumWindowInMinutes": 15} scheduler.update_schedule(Name="your-schedule", ScheduleExpression="rate(1 hour)", Target=sqs_templated, FlexibleTimeWindow=flex_window)