データインバウンドルールは、他のAlibaba Cloud サービスからApsaraMQ for MQTT (MQTT) クライアントへ、MQTT プロトコルを介してメッセージをルーティングします。Alibaba Cloud サービスのAPI オペレーションを呼び出して、ApsaraMQ for MQTT クライアントにデータを送信できます。現在、データソースとしてサポートされているのはApsaraMQ for RocketMQ (RocketMQ) のみです。

データインバウンドルールの仕組み
データインバウンドルールは、RocketMQ トピックとMQTT トピックをブリッジします。ルールを有効にすると、RocketMQ トピックに公開されたメッセージは自動的に指定されたMQTT トピックに転送され、サブスクライブしているMQTT クライアントに配信されます。
MQTT は多階層トピック (例: a/b/c) をサポートしますが、RocketMQ は単一階層トピックのみをサポートします。このギャップを埋めるため、レベル 1 のMQTT トピックはRocketMQ トピックにマッピングされ、それより深いレベルはRocketMQ メッセージプロパティにマッピングされます。完全なマッピングロジックについては、「ApsaraMQ for MQTT とApsaraMQ for RocketMQ 間のメッセージ構造マッピング」をご参照ください。
前提条件
開始する前に、以下を確認してください。
カーネルバージョンV3.x.x のApsaraMQ for MQTT インスタンス
MQTT インスタンスと同じリージョンにあるApsaraMQ for RocketMQ 4.0 インスタンス
RocketMQ およびMQTT インスタンスの両方で作成されたトピック
ApsaraMQ for MQTT インスタンスのカーネルバージョンは、インスタンス一覧または [インスタンスの詳細] ページで確認できます。このページは、ApsaraMQ for MQTT コンソール 内にあります。
注意事項
ApsaraMQ for RocketMQ ブローカーが更新されている間、MQTT クライアントはデータインバウンドルールを介してレイテンシーが増加したメッセージを受信する可能性があります。スケジュールされたメンテナンスウィンドウについては、「Notice List」をご参照ください。
ルールコンポーネント
各データインバウンドルールは、次の3つの部分で構成されます。
| コンポーネント | 説明 | 必須 |
|---|---|---|
| 基本情報 | ルール ID (グローバル一意、作成後は不変)、説明、ステータス (有効または無効)、およびルールタイプ。 | はい |
| ルールソース | メッセージがプルされるApsaraMQ for RocketMQ インスタンスとトピック。 | はい |
| ルール送信先 | メッセージが配信されるApsaraMQ for MQTT トピック。 | はい |
データインバウンドルールの作成
「ApsaraMQ for MQTT コンソール」にログインします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
上部のナビゲーションバーで、ターゲットインスタンスのリージョンを選択します。インスタンス名をクリックして、[インスタンス詳細] ページを開きます。
左側のナビゲーションウィンドウで、[ルール] をクリックします。[ルール] ページの左上隅で、[ルールの作成] をクリックします。
[基本情報の設定] ステップで、次のパラメーターを設定し、[次へ] をクリックします。
パラメーター 例 説明 ルール ID 111111 グローバル一意識別子。英字、数字、ハイフン (-)、アンダースコア (_) を使用できます。少なくとも 1 つの英字または数字を含める必要があります。長さ:3~64 文字。これより長い場合は自動的に切り捨てられます。作成後に変更することはできません。 説明 rocketmq からの移行 ルールのテキスト形式の説明です。 ステータス 有効 ルールをすぐに有効化するかどうかを指定します。有効な値:[有効]、[無効]。 ルールタイプ データインバウンド 他の Alibaba Cloud サービスから ApsaraMQ for MQTT にデータをインポートするには、[データインバウンド] を選択します。 「[ルールソースの設定]」ステップで、データソースを指定し、「[次へ]」をクリックします。
パラメーター 例 説明 ソースサービスタイプ Message Queue for Apache RocketMQ データが転送されるクラウドサービス。ApsaraMQ for RocketMQ のみがサポートされています。 Message Queue for Apache RocketMQ インスタンス MQ_INST_13801563067\*\*\*\*\*\_BbyOD2jQ RocketMQ インスタンス ID。MQTT インスタンスと同じリージョンにある必要があります。 トピック Topic A メッセージがApsaraMQ for MQTT に転送されるRocketMQ トピック。 [ルールの送信先の設定]ステップで、ターゲット MQTT トピックを指定し、[作成]をクリックします。
パラメーター 例 説明 トピック Topic B データが配信されるMQTT トピック。MQTT は多階層トピックをサポートし、RocketMQ はサポートしないため、レベル 1 のMQTT トピックはRocketMQ トピックにマッピングされ、他のレベルはRocketMQ メッセージプロパティにマッピングされます。詳細については、「ApsaraMQ for MQTT とApsaraMQ for RocketMQ 間のメッセージ構造マッピング」をご参照ください。
ルールが作成されると、[ルール] ページに表示されます。
既存ルールの管理
[ルール] ページで、ルール一覧から対象のルールを見つけます。[操作] 列で、[その他] を選択し、操作を選択します:
| 操作 | 手順 |
|---|---|
| ルールの編集 | [編集] を選択します。 [ルールの編集] ページで、必要に応じてパラメーターを変更します。 [ルール ID] を除くすべてのパラメーターを変更できます。 [ルール送信先の設定] ステップで [保存] をクリックして、変更を適用します。 |
| ルールの削除 | [削除] を選択します。 確認ダイアログボックスで [OK] をクリックします。 |
| ルールの有効化 | [有効化] を選択します。 確認ダイアログボックスで [OK] をクリックします。 |
| ルールの無効化 | [無効化] を選択します。 確認ダイアログボックスで [OK] をクリックします。 |
関連トピック
ApsaraMQ for MQTT から他のAlibaba Cloud サービスにデータをエクスポートするには、「データアウトバウンドルール」をご参照ください。
MQTT とRocketMQ 間の完全なメッセージマッピングロジックについては、「ApsaraMQ for MQTT とApsaraMQ for RocketMQ 間のメッセージ構造マッピング」をご参照ください。
クライアントの接続および切断イベントをエクスポートするには、「ApsaraMQ for MQTT クライアントのステータスイベントのエクスポート」をご参照ください。