このドキュメントでは、WhatsApp Business APIクライアントに関連したさまざまな種類のデータとデータベースを管理する方法について説明します。
ボリュームは、Dockerコンテナによって生成および使用されるデータを保持するメカニズムとして望ましい手段です。WhatsApp Business APIクライアントには、メディア用のDockerボリュームが1つ必要です。このボリュームは、インストール中にdocker-compose
コマンドを実行すると自動的に作成されます。
Dockerボリュームでは、リモートホストやクラウドプロバイダにボリュームを保存することがサポートされています。メディアボリュームは、既存の任意のデータセンターファイルシェアソリューション上に設定できます。メディアボリュームに対する読み取り/書き込みアクセス権限が、すべてのWebappコンテナおよびCoreappコンテナに付与されていることを確認してください。ボリュームを参照するパスを表示したり編集したりするには、docker-compose.yml
ファイルを編集します。
名前 | 説明 |
---|---|
メディアボリューム |
|
WhatsApp Business APIクライアントでは、データを格納するためにMySQLまたはPostgreSQLを使うことができます。
データベースの設定は、WhatsApp Business APIクライアントをインストールする際に、db.env
ファイルの中で次の環境変数を設定することにより構成できます。これらの環境変数は、CoreappとWebappがデータベースに接続する際に使われます。
データベース設定 | 環境変数 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WA_DB_NAME_PREFIX
— WhatsApp Business APIクライアントのインストール時に作成されるすべてのデータベースのプレフィックスとして使うことができます。これは、WhatsApp Business APIデータベースの複数セットを同じデータベースホスト上で実行するために使うことができます。WA_DB_CONNECTION_IDLE_TIMEOUT
(MySQLでのみサポート) — Coreapp起動時にこの環境変数(ミリ秒単位)を設定することにより、MySQLデータベースのアイドルタイムアウトを設定できます。アイドル状態のまま、設定された時間が経過したデータベース接続は、MySQLサーバーによって閉じられます。WhatsApp Business APIクライアントに関連付けられたデータベース管理に関する推奨事項について説明します。
懸念事項 | おすすめ |
---|---|
大規模データベースにアップグレードする | 大規模データベースと見なされるのは、 |
API呼び出しベースのガベージコレクション |
詳しくは、サービスのドキュメントをご覧ください。 |
ログローテーションスクリプトは、CoreappコンテナおよびWebappコンテナ内にパッケージ化されています。
Webappコンテナ内のログローテーションスクリプトが行うことは、次のとおりです。
/var/log/whatsapp/archive
にアーカイブしますCoreappコンテナ内のログローテーションスクリプトが行うことは、次のとおりです。
/var/log/whatsapp/archive
にアーカイブしますCoreappにおいて新規ログファイルが作成されるのは、ログファイル1個当たりのサイズが15MBを超える場合のみです。古いログファイルは、自動的には削除されません。
Webapp、Coreapp、マスター(マルチコネクトセットアップの場合)のすべてのコンテナに対してログローテーションを実行するため、下記のクリーンアップスクリプトを定期的に(毎日など)実行することをおすすめします。ホスト上にcronjobを構成し、cronjobが実行中のすべてのWhatsApp Business APIコンテナに対して、ピーク時間を避けて実行されるようにすると最適です。クリーンアップスクリプトを定期的に呼び出すことで、ログファイルの使うディスクスペースを常に管理することができます。
docker exec your-container-name /opt/whatsapp/bin/cleanup.sh