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

如何在AWS中通过Cron调度向端点POST请求并携带数据?

在AWS中调度触发带数据的POST请求方案

一、通过EventBridge + Lambda运行Python脚本

完全可以实现,步骤如下:

  • 创建Lambda函数,将你的Python代码调整为Lambda兼容格式(注意:Lambda默认环境没有requests库,要么用Python内置的urllib.request替代,要么把requests打包成Lambda层)
  • 配置EventBridge规则,用Cron表达式设定调度时间,触发该Lambda函数

示例Lambda代码(用urllib替代requests):

import urllib.request
import json

def lambda_handler(event, context):
    url = "http://some.domain.org"
    post_data = {'number': '12524', 'type': 'issue', 'action': 'show'}
    data = json.dumps(post_data).encode('utf-8')
    
    req = urllib.request.Request(url, data=data, method='POST')
    req.add_header('Content-Type', 'application/json')
    
    with urllib.request.urlopen(req) as response:
        response_data = response.read().decode('utf-8')
    return {"statusCode": 200, "body": response_data}

二、EventBridge直接触发HTTP端点(无需代码)

EventBridge支持直接调用HTTP/HTTPS端点,无需中转Lambda:

  1. 创建EventBridge规则,选择"API Destinations"作为目标
  2. 配置端点的URL、请求方法为POST
  3. 在"Input Transformer"中定义要发送的POST数据,比如输入模板填写:{"number": "12524", "type": "issue", "action": "show"}
  4. 配置好IAM权限后,EventBridge会按调度规则直接发送POST请求

三、通过SNS Topic触发HTTP请求的两种方式

1. SNS直接订阅HTTP端点

  • 创建SNS Topic,添加HTTP/HTTPS类型的订阅,填写你的目标端点URL
  • 发送消息到SNS Topic时,把要携带的POST数据放在消息体里(比如JSON格式)
  • 目标端点接收到的请求是SNS封装后的结构,需要解析Message字段获取你传入的数据,示例接收结构:
    {
      "Type": "Notification",
      "Message": "{\"number\": \"12524\", \"type\": \"issue\", \"action\": \"show\"}",
      ...
    }
    

2. SNS触发Lambda再发POST请求

  • 创建Lambda函数(同第一种方案的代码),将Lambda设为SNS Topic的订阅者
  • 发送消息到SNS Topic时,把POST数据放在消息体中
  • Lambda接收SNS事件后,解析event['Records'][0]['Sns']['Message']获取数据,再发起POST请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:43:25