按计划调用 Lambda 函数
Amazon EventBridge 调度器是一个无服务器调度器,使您能够从一个中央托管服务创建、运行和管理任务。借助 EventBridge 调度器,您可以使用 cron 和 rate 表达式为定期模式创建计划,也可以配置一次性调用。您可以设置灵活的交付时间窗口、定义重试限制,并为未处理的事件设置最长保留时间。
当您使用 Lambda 设置 EventBridge 调度器时,EventBridge 调度器会异步调用您的 Lambda 函数。本页介绍如何使用 EventBridge 调度器按计划调用 Lambda 函数。
设置执行角色
创建新计划时,EventBridge 调度器必须有权代表您调用其目标 API 操作。您可以使用执行角色授予 EventBridge 调度器这些权限。您附加到计划执行角色的权限策略定义了所需权限。这些权限取决于您希望 EventBridge 调度器调用的目标 API。
使用 EventBridge 调度器控制台创建计划时,EventBridge 调度器会根据选择的目标自动设置执行角色,如以下步骤所示。如果您想使用 EventBridge 调度器 SDK(Amazon CLI 或 Amazon CloudFormation )之一创建计划,您必须拥有现有的执行角色,以授予 EventBridge 调度器调用目标所需的权限。有关为计划手动设置执行角色的更多信息,请参阅 EventBridge Scheduler User Guide 中的 Setting up an execution role。
创建计划
使用控制台创建计划
打开 Amazon EventBridge 调度器控制台,网址为:https://console.aws.amazon.com/scheduler/home
。 -
在计划页面,选择创建计划。
-
在指定计划详细信息页面,在计划名称和描述部分中,执行以下操作:
-
对于计划名称,输入计划的名称。例如,
MyTestSchedule
。 -
(可选)对于描述,输入对计划的描述。例如,
My first schedule
。 -
对于计划组,从下拉列表中选择一个计划组。如果您没有计划组,选择默认。要创建计划组,选择创建自己的计划。
您可以使用计划组将标签添加到计划组。
-
-
-
选择计划选项。
出现 请执行此操作... 一次性计划
一次性计划仅在您指定的日期和时间调用一次目标。
对于日期和时间,请执行以下操作:
-
输入
YYYY/MM/DD
格式的有效日期。 -
输入 24 小时
hh:mm
格式的时间戳。 -
对于时区,选择时区。
定期计划
定期计划按照您使用 cron 表达式或 rate 表达式指定的速率调用目标。
-
对于计划类型,执行以下操作之一:
-
要使用 cron 表达式定义计划,请选择基于 cron 的计划并输入 cron 表达式。
-
要使用 rate 表达式定义计划,请选择基于 rate 的计划并输入 rate 表达式。
有关 cron 和 rate 表达式的更多信息,请参阅 Amazon EventBridge 调度器用户指南 中的 EventBridge 调度器的计划类型。
-
-
对于灵活的时间窗口,选择关闭以关闭该选项,或者选择一个预定义的时间窗口。例如,如果您选择 15 分钟并且将定期计划设置为每小时调用一次其目标,则该计划将在每小时开始后的 15 分钟内运行。
-
-
-
(可选)如果您在上一步中选择定期计划,在时间范围部分,请执行以下操作:
-
对于时区,请选择时区。
-
对于开始日期和时间,请输入
YYYY/MM/DD
格式的有效日期,然后指定 24 小时hh:mm
格式的时间戳。 -
对于结束日期和时间,请输入
YYYY/MM/DD
格式的有效日期,然后指定 24 小时hh:mm
格式的时间戳。
-
-
选择下一步。
-
在选择目标页面,选择 EventBridge 调度器调用的 Amazon API 操作:
-
选择 Amazon Lambda 调用。
-
在调用部分,选择功能或选择创建新 Lambda 函数。
-
(可选)输入 JSON 有效负载。如果您未输入有效负载,EventBridge 调度器将使用空事件来调用函数。
-
-
选择下一步。
-
在 Settings (设置) 页面上,执行以下操作:
-
要打开计划,在计划状态下,切换启用计划。
-
要为计划配置重试策略,在重试策略和死信队列(DLQ)下,请执行以下操作:
-
切换重试。
-
对于事件的最长期限,输入 EventBridge 调度器必须保留未处理事件的最长小时和分钟数。
-
最长时间为 24 小时。
-
对于最大重试次数,输入在目标返回错误的情况下,EventBridge 调度器重试计划的最大次数。
最大值为 185 次重试。
配置重试策略后,如果计划未能调用其目标,EventBridge 调度器将重新运行该计划。如果已配置,则必须为计划设置最长保留时间和最大重试次数。
-
-
选择 EventBridge 调度器存储未送达事件的位置。
死信队列(DLQ)选项 请执行此操作... 请勿存储 选择 None。 将事件存储在创建计划所在的同一 Amazon Web Services 账户 中 -
选择在我的 Amazon Web Services 账户 中选择一个 Amazon SQS 队列作为 DLQ。
-
选择 Amazon SQS 队列的 Amazon 资源名称(ARN)。
将事件存储在与创建计划所在不同的 Amazon Web Services 账户 中 -
选择在另一个 Amazon Web Services 账户 中指定一个 Amazon SQS 队列作为 DLQ。
-
输入 Amazon SQS 队列的 Amazon 资源名称(ARN)。
-
-
要使用客户托管密钥加密目标输入,在加密下,选择自定义加密设置(高级)。
如果选择此选项,请输入现有的 KMS 密钥 ARN 或选择创建一个 Amazon KMS key 以导航到 Amazon KMS 控制台。有关 EventBridge 调度器如何加密静态数据的更多信息,请参阅 Amazon EventBridge Scheduler User Guide 中的 Encryption at rest。
-
要让 EventBridge 调度器为您创建新的执行角色,请选择为此计划创建新角色。然后,在角色名称中输入名称。如果您选择此选项,EventBridge 调度器会将模板化目标所需的必要权限附加到该角色。
-
-
选择下一步。
-
在查看并创建计划页面上,查看计划的详细信息。在每个部分中,选择编辑返回到该步骤并编辑其详细信息。
-
选择创建计划。
您可以在计划页面上查看新的和现有的计划列表。在状态列下,验证新计划是否已启用。
要确认 EventBridge 调度器是否调用了该函数,查看该函数的 Amazon CloudWatch Logs。
相关资源
有关 EventBridge 调度器的详细信息,请参阅以下内容: