不和谐机器人

选择一个干净的堆栈来托管 Discord 机器人

大多数机器人不会仅仅因为代码而失败。它们的失败是因为环境不整洁:秘密暴露、日志丢失、随机重启或不存在监督。

1. 选择您知道如何维护的运行时

在寻找最快的一种之前,请为您的项目选择最具可读性的一种。 Node.js 和 Python 已经涵盖了 Discord 的大部分用途。真正的收获来自可重现的环境:固定的运行时版本、已知的依赖项以及与代码分离的环境变量。

明确生产中使用的运行时的版本。
切勿将机器人令牌存储在存储库中。
记录最少的预期变量和权限。

2. 日志、运行状况和重启

自动重启很有帮助,但这还不够。如果机器人因无提示错误而循环,它将立即重新启动而不纠正问题。因此需要将重启策略、可读日志和健康检查点结合起来。

捕获 Discord 库初始化错误。
保留关键事件:连接、断开连接、配额、崩溃。
检查重新启动是否不会删除对调试有用的索引。

3. 单独的执行、存储和审核

当机器人成长时,它的问题不再仅仅来自代码。数据库、临时文件、Discord 权限和日志记录需要澄清。项目越社区化,就越有必要将应用层与审核和支持层区分开来。

确定重新部署后必须保留哪些内容。
规划备份的存放位置以及谁可以访问它们。
在事件发生之前而不是事件发生期间定义支持渠道。