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

如何在AWS Lambda上运行Telegraf机器人?求正确实现方法

在AWS Lambda上部署Telegraf机器人的正确方案

你的代码核心问题是误用了Telegraf默认的长轮询模式——Lambda是无服务器事件驱动函数,每次触发后会快速结束,无法维持长连接监听Telegram服务器。必须切换到Webhook模式适配Lambda的运行逻辑,以下是完整部署步骤:

一、修正代码适配Lambda

替换你现有的handler代码,改为Webhook模式的实现:

const { Telegraf } = require("telegraf");

// 从Lambda环境变量读取Bot Token,避免硬编码敏感信息
const bot = new Telegraf(process.env.TELEGRAM_BOT_TOKEN);

// 定义机器人业务逻辑,和本地代码一致
bot.start((ctx) => ctx.reply("👍"));
// 可添加其他命令,比如:
// bot.command("hello", (ctx) => ctx.reply("Hello from Lambda!"));

// Lambda事件处理函数
exports.handler = async (event) => {
  try {
    // 将Lambda收到的Webhook请求传递给Telegraf处理
    await bot.handleUpdate(JSON.parse(event.body));
    return {
      statusCode: 200,
      body: JSON.stringify("OK"),
    };
  } catch (error) {
    console.error("处理请求失败:", error);
    return {
      statusCode: 500,
      body: JSON.stringify("Internal Server Error"),
    };
  }
};

// 本地开发时可启用长轮询,部署到Lambda请注释或删除
// if (process.env.NODE_ENV === "development") {
//   bot.launch();
//   console.log("本地机器人已启动");
// }

二、配置Lambda基础设置

  • 环境变量:在Lambda控制台的「配置」→「环境变量」中添加TELEGRAM_BOT_TOKEN,值为你的Telegram机器人Token
  • 运行时:选择Node.js 18.x或更高版本(Telegraf v4+需要Node.js 16+)
  • 打包上传:本地执行npm install telegraf,将代码文件和node_modules文件夹一起压缩为ZIP包,上传到Lambda函数

三、配置API网关触发器

Lambda本身无法直接接收外部HTTP请求,需要配置API网关:

  1. 在Lambda控制台添加「API网关」触发器
  2. 选择「HTTP API」类型,安全设置按需选择(可先选「打开」测试)
  3. 创建后复制生成的API网关URL(格式类似https://xxxxxx.execute-api.<区域>.amazonaws.com)

四、设置Telegram Webhook

告诉Telegram服务器将用户消息发送到你的API网关地址,执行以下curl命令(替换占位符):

curl -X POST https://api.telegram.org/bot<你的Bot Token>/setWebhook \
  -H "Content-Type: application/json" \
  -d '{"url": "<你的API网关URL>"}'

执行成功后,Telegram会返回{"ok":true,"result":true,"description":"Webhook was set"}的响应

五、测试验证

给你的机器人发送/start命令,机器人应该回复「👍」,同时可以在Lambda控制台的「监控」→「日志」中查看请求处理记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:50:41