在 EventBridge 排程器中設定彈性時段 - EventBridge 排程器

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 EventBridge 排程器中設定彈性時段

當您使用彈性時間範圍設定排程時, EventBridge Scheduler 會在您設定的時間範圍內呼叫目標。這在不需要精確排程呼叫目標的情況下非常有用。設定彈性的時間範圍可透過分散目標呼叫來改善排程的可靠性。

例如,如果您為每小時執行的排程設定 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)