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

如何通过EventBridge Scheduler调用API Gateway端点?求可用示例

如何用EventBridge Scheduler调用API Gateway端点(CLI方式)

EventBridge Scheduler控制台目前暂不支持直接选择API Gateway作为目标,需通过CLI或API创建调度任务,核心是修改--target参数的结构来适配HTTP类型目标。

完整CLI命令示例

aws scheduler create-schedule \
  --schedule-expression "at(2022-11-20T13:00:00)" \
  --name "api-gateway-schedule" \
  --target '{
    "RoleArn": "arn:aws:iam::123456789012:role/EventBridgeSchedulerApiRole",
    "Arn": "arn:aws:scheduler:::http",
    "HttpParameters": {
      "Method": "POST",
      "Url": "https://abc123.execute-api.us-east-1.amazonaws.com/prod/your-endpoint-path"
    },
    "Input": "{\"message\": \"scheduled-api-call\"}"
  }' \
  --schedule-expression-timezone "America/Los_Angeles" \
  --flexible-time-window '{ "Mode": "OFF"}'

--target参数关键字段说明

  • RoleArn:指定EventBridge Scheduler执行任务时使用的IAM角色,该角色需要具备调用目标API Gateway的权限,且信任策略需允许scheduler.amazonaws.com服务主体。
  • Arn:固定值arn:aws:scheduler:::http,用于标识这是HTTP类型的目标。
  • HttpParameters:定义HTTP请求的核心信息:
    • Method:请求方法(如GET、POST、PUT等)
    • Url:API Gateway的完整端点URL(包含阶段和路径)
  • Input:作为HTTP请求体的内容,需用JSON格式(注意转义引号,或用单引号包裹整个target对象避免shell解析错误)

所需IAM角色配置

信任策略(允许Scheduler服务假设角色)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "scheduler.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

权限策略(允许调用目标API Gateway)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "apigateway:Invoke",
      "Resource": "arn:aws:apigateway:us-east-1::/restapis/abc123/stages/prod/your-endpoint-path/*"
    }
  ]
}

注意事项

  • 确保API Gateway端点的访问权限配置正确:若使用IAM授权,需确保上述角色的权限覆盖目标API;若为公开端点,需确认无需额外认证。
  • 调度表达式可根据需求调整为cron()格式或其他合法表达式。
  • 若Input内容复杂,建议将其写入文件,通过--target file://target-config.json方式加载,避免CLI命令行的转义问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:50:31