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

如何通过Telegram消息触发AWS Lambda函数?

实现Telegram频道消息触发AWS Lambda的可行方案

核心思路是利用Telegram Webhook结合AWS API Gateway实现自动触发——SNS/SQS无法直接接收Telegram的主动推送,因此不适用该场景。具体落地步骤如下:

  • 第一步:创建并配置Telegram Bot

    1. 在Telegram中搜索@BotFather,发送/newbot指令创建新Bot,按引导完成设置后获取专属API Token。
    2. 将该Bot添加到目标频道,并赋予管理员权限(至少需开启读取消息权限)。
  • 第二步:通过API Gateway为Lambda生成公开HTTP端点

    1. 登录AWS控制台,进入API Gateway服务,选择「REST API」创建新API。
    2. 创建资源(例如/telegram-webhook),并添加POST方法。
    3. 在方法集成设置中,选择「Lambda函数」作为集成类型,指定目标Lambda函数,保存后确认自动添加Lambda调用权限。
    4. 将API部署到指定阶段(例如prod),记录部署后的Invoke URL(格式类似https://xxxxxx.execute-api.<region>.amazonaws.com/prod/telegram-webhook)。
  • 第三步:配置Telegram Webhook
    发送HTTP POST请求到Telegram API,将Webhook指向你的API Gateway URL:

    curl -X POST "https://api.telegram.org/bot<你的API Token>/setWebhook" -d "url=<你的API Gateway Invoke URL>"
    

    可额外添加allowed_updates=["message"]参数,仅接收消息类型的更新,减少无效请求。

  • 第四步:调整Lambda函数处理Telegram请求
    Lambda的事件参数会包含Telegram推送的JSON payload,以下是Python示例解析代码:

    import json
    
    def lambda_handler(event, context):
        # 解析Telegram消息内容
        telegram_payload = json.loads(event['body'])
        message_content = telegram_payload.get('message', {}).get('text', '')
        channel_id = telegram_payload.get('message', {}).get('chat', {}).get('id', '')
        
        # 插入你的业务逻辑
        print(f"收到频道{channel_id}的消息:{message_content}")
        
        # 必须返回200状态码,否则Telegram会重复推送
        return {
            'statusCode': 200,
            'body': json.dumps('处理完成')
        }
    
  • 第五步:验证权限与排查问题

    1. 确认API Gateway的IAM角色拥有调用Lambda的权限,Lambda执行角色拥有CloudWatch Logs权限(用于排查执行日志)。
    2. 发送测试消息到频道,查看CloudWatch Logs中的Lambda执行记录,确认触发状态。

常见问题排查

  • Webhook设置失败:检查API Gateway URL是否可公开访问(若Lambda部署在VPC内,需确保API Gateway能穿透VPC或Lambda配置为公网访问)。
  • 无消息推送:确认Bot在频道中拥有足够权限,无权限时Telegram不会推送消息。
  • Lambda重复触发:检查是否返回了200状态码,Telegram会在未收到正确响应时重试推送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:42:21