プラグイン
EMQXプラグインは、Erlangを用いてブローカーのコア機能を拡張したり、カスタムロジックを統合したりするための仕組みです。このシステムは、カスタム認証、認可、ログ記録、メトリクス、プロトコル変換などの機能を実装するのに最適です。
本節では、プラグインとは何か、そしてプラグインの開発、カスタマイズ、管理方法について紹介します。
プラグインとは何か?
EMQXのプラグインは、EMQXノード内で動作するErlang/OTPアプリケーションです。プラグインは、クライアント接続、メッセージパブリッシュ、認証などの事前定義されたイベントであるフックポイントを介してEMQXコアと連携します。
EMQXで利用するためには、プラグインは以下の条件を満たす必要があります。
- リリースとしてビルドされていること – コンパイル済みプラグインとメタデータを含む
.tar.gzパッケージ。 - Dashboard、REST API、またはCLIを通じてインストールされること。
- 設定およびライフサイクル操作(起動、停止、アンインストール)で管理されること。
起動時にプラグインは通常、自身の関数の一部をEMQXのコールバックとして登録し、EMQXの動作を変更または拡張します。プラグインはEMQXコアおよび他のプラグインから独立して動作し、互いに干渉しないよう設計されています。また、インストール、起動、シャットダウン、削除の定義されたプロセスに従うライフサイクル対応であるため、本番環境での安全かつ容易な管理が可能です。
主要な概念
- フックポイント:EMQXのワークフローにおける拡張ポイントで、プラグインがカスタムロジックを挿入できる場所。
- コールバック:プラグインモジュール内でフックポイントに登録される関数。
- 設定スキーマ:プラグイン設定の検証やEMQXダッシュボードでのUIフォームの動的生成に使われる、オプションのAvroベースのスキーマ。
プラグインのワークフロー概要
- 公式のプラグインテンプレートを使ってプラグインを開発します。
- 認証などのユースケースに合わせてロジックをカスタマイズします。
make relコマンドでプラグインをビルドし、.tar.gzファイルにパッケージングします。- Dashboard、CLI、またはAPIを使ってEMQXにプラグインをインストールし、起動します。
- 必要に応じて設定を更新したり、停止・アンインストールを行います。
詳細情報
- EMQXプラグインの開発:公式テンプレートを使ったプラグインのゼロからの作成方法を学べます。
- プラグインロジックのカスタマイズ:認証、認可などのフックコールバック実装例を紹介します。
- プラグインの管理:EMQXノードやクラスターでのプラグインのインストール、設定、起動/停止、アンインストール方法を理解できます。
- プラグインカタログ:データ統合、ガバナンス、アクセス制御向けのすぐに使えるプラグインを閲覧できます。