

# 按计划调用 Lambda 函数
<a name="with-eventbridge-scheduler"></a>

[Amazon EventBridge 调度器](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html)是一个无服务器调度器，您可以使用它从一个中央托管服务创建、运行和管理任务。借助 EventBridge 调度器，您可以使用 cron 和 rate 表达式为定期模式创建计划，也可以配置一次性调用。您可以设置灵活的交付时间窗口、定义重试限制，并为未处理的事件设置最长保留时间。

当您使用 Lambda 设置 EventBridge 调度器时，EventBridge 调度器会异步调用您的 Lambda 函数。您可以从 Lambda 控制台（使用“添加触发器”流程）、EventBridge 调度器控制台、AWS CLI 或 CloudFormation 创建计划。本页介绍如何使用 EventBridge 调度器按计划调用 Lambda 函数。

## 设置执行角色
<a name="using-eventbridge-scheduler-execution-role"></a>

 创建新计划时，EventBridge 调度器必须有权代表您调用其目标 API 操作。您可以使用*执行角色*授予 EventBridge 调度器这些权限。您附加到计划执行角色的权限策略定义了所需权限。这些权限取决于您希望 EventBridge 调度器调用的目标 API。

 使用 Lambda 控制台或 EventBridge 调度器控制台创建计划时，EventBridge 调度器会根据您选择的目标自动设置执行角色。如果您想使用 EventBridge 调度器 SDK（AWS CLI 或 CloudFormation ）之一创建计划，您必须拥有现有的执行角色，以授予 EventBridge 调度器调用目标所需的权限。有关为计划手动设置执行角色的更多信息，请参阅 *EventBridge Scheduler User Guide* 中的 [Setting up an execution role](https://docs.aws.amazon.com/scheduler/latest/UserGuide/setting-up.html#setting-up-execution-role)。

## 从 Lambda 控制台创建计划
<a name="create-schedule-lambda-console"></a>

使用 Lambda 控制台中的**添加触发器**流程创建 EventBridge 调度器计划，而无需离开控制台。

**使用 Lambda 控制台创建调度器触发器**

1. 打开 Lamba 控制台的[函数](https://console.aws.amazon.com/lambda/home#/functions)页面。

1. 选择要计划的函数。

1. 在**函数概述**窗格中，选择**添加触发器**。

1. 从触发器来源下拉列表中，选择**调度器**。

1. 配置计划设置：

   1. **计划名称**：输入计划的名称。

   1. **计划组**：选择一个计划组或使用 `default`。

   1. **计划类型**：选择以下选项之一：
      + **一次性计划**：在指定的日期和时间调用函数一次。
      + **重复计划**：使用 cron 或 rate 表达式重复调用函数。

   1. （可选）输入 JSON 有效负载。如果您未输入有效负载，EventBridge 调度器将使用空事件来调用函数。

   1. 配置执行角色。要让 EventBridge 调度器为您创建新的执行角色，请选择**为此计划创建新角色**。然后，在**角色名称**中输入名称。如果选择此选项，EventBridge 调度器会创建一个具有所需权限的策略，并将其附加到该角色。

1. 选择**添加**。

**提示**  
您也可以搜索 **schedule**、**cron**、**time** 或 **recurring**，以在“添加触发器”流程中查找此触发器。

您也可以使用 [EventBridge 调度器控制台](https://console.aws.amazon.com/scheduler/home)来创建计划。使用 EventBridge 调度器控制台，您可以配置其他选项（例如，弹性时间范围和死信队列）。

## 查看 EventBridge 调度器触发器
<a name="viewing-scheduler-triggers"></a>

所有针对您的函数的 EventBridge 调度器计划都显示在函数配置页面的**触发器**部分的**调度器**标签下。这包括从下面任何来源创建的计划：
+ Lambda 控制台（“添加触发器”流程）
+ EventBridge 调度器控制台
+ AWS CLI、SDK、CloudFormation、AWS SAM（使用 `ScheduleV2` 事件类型）或 AWS CDK（使用 `aws-scheduler` 模块）

**注意**  
如果计划使用客户自主管理型密钥对通用目标调用（UTI）目标进行加密，则该计划可能不会出现在触发器列表中。要查看这些计划，请使用 [EventBridge 调度器控制台](https://console.aws.amazon.com/scheduler/home)。

要确认 EventBridge 调度器是否调用了该函数，[查看该函数的 Amazon CloudWatch Logs](monitoring-cloudwatchlogs-view.md#monitoring-cloudwatchlogs-console)。

## 相关资源
<a name="using-eventbridge-scheduler-related-resources"></a>

 有关 EventBridge 调度器的详细信息，请参阅以下内容：
+ [EventBridge Scheduler User Guide](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html)
+ [EventBridge Scheduler API Reference](https://docs.aws.amazon.com/scheduler/latest/APIReference/Welcome.html)
+ [EventBridge Scheduler Pricing](https://aws.amazon.com/eventbridge/pricing/#Scheduler)