You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AWS SDK for .NET创建Amazon EventBridge调度计划以调用Lambda?

使用AWS SDK for .NET创建EventBridge Scheduler并触发Lambda函数

之前你用EventBridge规则实现任务调度,现在要切换到新的EventBridge Scheduler功能,核心是使用AmazonSchedulerClient调用CreateSchedule API,同时配置Lambda作为调度目标,以下是具体实现步骤和代码:

前提准备

  • 确保项目已引入AWS SDK for .NET的Amazon.EventBridge.Scheduler包(可通过NuGet安装)
  • 提前创建一个IAM角色,该角色需要授予EventBridge Scheduler调用Lambda的权限(权限策略需允许scheduler.amazonaws.com执行lambda:InvokeFunction动作,目标为你的Lambda函数ARN)

代码实现

using Amazon.EventBridge.Scheduler;
using Amazon.EventBridge.Scheduler.Model;

// 初始化Scheduler客户端
var schedulerClient = new AmazonSchedulerClient();

// 构造创建调度计划的请求
var createScheduleRequest = new CreateScheduleRequest
{
    Name = "你的调度计划名称",
    ScheduleExpression = "cron(0 12 * * ? *)", // 替换为你的Cron表达式
    State = isEnabled ? ScheduleState.ENABLED : ScheduleState.DISABLED,
    Description = "Demo: 定时触发Lambda函数",
    // 配置目标为Lambda函数
    Target = new Target
    {
        Arn = "你的Lambda函数ARN",
        RoleArn = "允许Scheduler调用Lambda的IAM角色ARN"
        // 如果需要传递自定义参数给Lambda,可添加Input字段
        // Input = "{\"key\": \"value\"}"
    }
};

// 发送请求创建调度计划
var createScheduleResponse = await schedulerClient.CreateScheduleAsync(createScheduleRequest);

// 输出调度计划ARN(可选)
Console.WriteLine($"已创建调度计划,ARN: {createScheduleResponse.ScheduleArn}");

关键说明

  • 与旧的EventBridge规则不同,EventBridge Scheduler的目标配置直接包含在CreateScheduleRequest的Target属性中,无需单独创建事件目标
  • 必须指定RoleArn,该角色需要信任scheduler.amazonaws.com作为主体,同时具备调用目标Lambda的权限
  • 调度表达式支持Cron或Rate格式,用法与旧规则一致
  • 如果需要更新调度计划,可使用UpdateScheduleAsync方法;删除则用DeleteScheduleAsync

内容的提问来源于stack exchange,提问作者Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:55:04