Discord ボット

Discord ボットをホストするクリーンなスタックを選択する

ほとんどのボットは、コードだけが原因で失敗することはありません。これらは、環境が整頓されていないために発生します。つまり、機密情報の漏洩、ログの欠落、ランダムな再起動、または監視が存在しないためです。

1. 保守方法を知っているランタイムを選択します

最速のものを探す前に、プロジェクトにとって最も読みやすいものを選択してください。 Node.js と Python は、Discord の使用の大部分をすでにカバーしています。本当の利点は、再現可能な環境、つまり、固定されたランタイム バージョン、既知の依存関係、およびコードから分離された環境変数から得られます。

運用環境で使用されるランタイムのバージョンを明確にします。
ボット トークンをリポジトリに保存しないでください。
最低限必要な変数と権限を文書化します。

2. ログ、健全性、再起動

自動再起動は便利ですが、それだけでは十分ではありません。ボットがサイレント エラーでループした場合、問題を修正せずにすぐに再起動します。したがって、再起動ポリシー、読み取り可能なログ、およびヘルス チェックポイントを組み合わせる必要があります。

Discord ライブラリの初期化エラーをキャプチャします。
接続、切断、クォータ、クラッシュなどの重要なイベントを保持します。
再起動によってデバッグに役立つインデックスが消去されないことを確認してください。

3. 実行、保存、モデレーションを分離する

ボットが成長すると、その問題はコードだけから発生するものではなくなります。データベース、一時ファイル、Discord の権限、ログを明確にする必要があります。プロジェクトがコミュニティベースになればなるほど、アプリケーション層とモデレーションおよびサポート層を区別する必要性が高まります。

再展開後も存続する必要があるものを特定します。
バックアップの保存場所とバックアップに誰がアクセスできるかを計画します。
インシデント発生中ではなく、発生前にサポート チャネルを定義します。