EMQX 6.1 の互換性のない変更点
6.1.2
#17157 新しいルールエンジン設定
rule_engine.limit_selects_in_namespaceを導入しました。デフォルト値はtrueです。有効にすると、ルールは自身と同じネームスペースのクライアントがパブリッシュしたメッセージにのみトリガーされます。#17325 ホットアップグレードのREST APIエンドポイント(
/api/v5/relup/*)を削除しました。ホットアップグレードは現在、各ノード上のemqx ctl relupCLIを通じてのみ操作可能で、ダッシュボードからの操作はできません。対象のリリースtarballとその
.sha256サイドカー(同じベース名、同じディレクトリ)をEMQXプロセスが読み取れる場所に配置してください。各ノードでemqx ctl relup upgrade <TarballPath>を実行してアップグレードを適用します。対象バージョンはtarball内のreleases/emqx_vars(REL_VSN)から読み取られます。
6.1.0
#16368 内部の正規表現エンジンをPCRE2にアップグレードしました。これにより、マッチング性能が向上し、より厳密な構文チェックが行われるようになりました。
ルールエンジンSQLで
regex_match、regex_replace、regex_extract関数を使用している場合、これまで緩やかな動作や未定義の挙動に依存していた一部の正規表現がコンパイルできなくなったり、期待通りにマッチしなくなる可能性があります。主な変更点は以下の通りです:
- より厳密なエスケープルール:以前は無視されていた無効または不要なエスケープシーケンスがエラーとして扱われます。
- 無効になる例:
[\w-\.]文字クラス内での.のエスケープは不要であり、現在は許容されません。メタ文字のみエスケープが必要です。 - 無効になる例:有効な16進数が続かない
\x(例:\xGG)は、リテラルのxとして解釈されるのではなく、コンパイルエラーになります。
- 無効になる例:
- グループ名の検証が厳格化:重複または空の名前付きキャプチャグループを含む正規表現は許可されなくなりました。
対応が必要です:正規表現を使用している全てのルールエンジンSQL定義を見直し、検証してください。複雑なパターンについては、PCRE2準拠のテスター(多くのオンライン正規表現ツールがPCRE2をサポートしています)で互換性を確認するか、アップグレード前にステージング環境で十分にテストしてください。
- より厳密なエスケープルール:以前は無視されていた無効または不要なエスケープシーケンスがエラーとして扱われます。