本文引用的文件列表
本指南面向 Cosmoe Bot 的运维与开发人员,聚焦于在 Cloudflare Workers 平台上运行的 Telegram 机器人在部署、运行、性能与稳定性方面的故障排除与维护实践。内容覆盖:
Cosmoe Bot 是一个基于 Cloudflare Workers 的 Telegram 机器人,采用模块化组织:
测试:test/index.spec.ts 使用 @cloudflare/vitest-pool-workers 在 Workers 环境中进行单元与集成测试
graph TB
subgraph "入口与生命周期"
IDX["src/index.ts"]
SCHED["src/scheduler/index.ts"]
end
subgraph "命令与对话"
CMD["src/command/index.ts"]
H_START["src/command/handlers/start.ts"]
H_LOGIN["src/command/handlers/login.ts"]
H_EVENTS["src/command/handlers/events.ts"]
H_HISTORY["src/command/handlers/history.ts"]
end
subgraph "外部服务"
API["Cosmoe API<br/>https://cos.cx/api/v1"]
TG["Telegram Bot API"]
end
subgraph "存储"
KV1["KV: COSMOE_CREDENTIALS"]
KV2["KV: COSMOE_STORAGE"]
end
IDX --> CMD
CMD --> H_START
CMD --> H_LOGIN
CMD --> H_EVENTS
CMD --> H_HISTORY
CMD --> KV1
CMD --> KV2
SCHED --> KV2
SCHED --> TG
H_LOGIN --> API
H_EVENTS --> API
H_HISTORY --> API
H_HISTORY --> KV1
图表来源
章节来源
章节来源
下图展示从 Telegram 请求到外部 API、KV 存储与计划任务的整体流程。
sequenceDiagram
participant U as "用户"
participant W as "Worker 入口<br/>src/index.ts"
participant B as "Bot/命令系统<br/>src/command/index.ts"
participant KV as "KV 存储<br/>COSMOE_CREDENTIALS/COSMOE_STORAGE"
participant API as "Cosmoe API"
participant S as "计划任务<br/>src/scheduler/index.ts"
U->>W : "POST Webhook"
W->>B : "webhookCallback(...) 分发"
B->>KV : "读取/写入对话/凭证"
B->>API : "调用 Cosmoe API"
API-->>B : "返回结果"
B-->>U : "发送消息/内联键盘"
S->>KV : "读取最新活动 ID"
S->>API : "拉取活动列表"
API-->>S : "返回活动"
S->>U : "向已注册用户推送新活动"
图表来源
章节来源
章节来源
章节来源
章节来源
配置
wrangler.jsonc:定义 Worker 名称、入口、兼容性日期、观测性、定时触发、KV 命名空间与变量
graph LR
P["package.json"] --> G["@grammyjs/conversations"]
P --> GC["@grammyjs/storage-cloudflare"]
P --> GR["grammy"]
P --> VIT["vitest"]
P --> VWP["@cloudflare/vitest-pool-workers"]
P --> WR["wrangler"]
CFG["wrangler.jsonc"] --> ENV["环境变量/命名空间"]
CFG --> OBS["观测性开关"]
CFG --> TRIG["定时触发"]
图表来源
章节来源
章节来源
章节来源
章节来源
章节来源
章节来源
章节来源
章节来源
章节来源
章节来源
通过明确的组件职责、完善的日志与观测性配置、以及针对 KV、外部 API 与 Telegram Bot API 的专项排障流程,可以有效提升 Cosmoe Bot 的稳定性与可维护性。建议持续: