EMQX 6.1 の非互換変更点
6.1.5
#18974
mqtt.max_connect_user_propertiesを追加しました。これは、CONNECT プロパティおよび Will プロパティで受け入れられる MQTT v5 のユーザープロパティペアの数を個別に制限します。デフォルトは 100 で、制限を無効にするにはinfinityに設定してください。#18515 Azure Blob Storage アクションの
blobテンプレートフィールドは、Aggregated S3 アクションのkeyフィールドと同じスキーマ検証を使用するようになり、許可されたバインディングのみが使用されることを保証します。#18528 OpenTelemetry 統合のエクスポーターエンドポイントは、有効な URL でスキームと明示的なポートを含む必要があります。サポートされるスキームは
httpとhttpsです。
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 対応のテスター(多くのオンライン正規表現ツールが対応)で互換性を確認するか、アップグレード前にステージング環境で十分にテストしてください。
- より厳密なエスケープルール:以前は無視されていた無効または不要なエスケープシーケンスがエラーとして扱われます。