メッセージサービス(MNS)またはAdvanced Message Queuing Protocol(AMQP)サーバー側サブスクリプションを作成します。
使用上の注意
サーバー側サブスクリプションは、次の 2 つのタイプに分類されます。
MNS サブスクリプション: サブスクライブされたメッセージを MNS キューにプッシュします。サーバーアプリケーションは、MNS キューをリッスンしてデバイスメッセージを受信します。詳細については、「MNS サーバー側サブスクリプションを構成する」をご参照ください。この操作を呼び出して、MNS サブスクリプションを作成できます。
AMQP サブスクリプション: AMQP チャネルを使用して、サブスクライブされたメッセージをサーバーにプッシュします。詳細については、「AMQP サーバー側サブスクリプションを構成する」をご参照ください。AMQP サブスクリプションを構成するには、次の手順を実行します。
1. CreateConsumerGroup 操作を呼び出して、コンシューマーグループを作成し、返されたコンシューマーグループ ID を取得します。メッセージはコンシューマーグループにプッシュされます。 AMQP クライアントは、IoT Platform に接続するときにコンシューマーグループ ID を保持します。詳細については、「AMQP クライアントを IoT Platform に接続する」をご参照ください。
2. CreateSubscribeRelation 操作を呼び出して、AMQP サブスクリプションを作成します。
3. オプション。 CreateConsumerGroupSubscribeRelation 操作を呼び出して、コンシューマーグループを AMQP サブスクリプションに追加します。また、DeleteConsumerGroupSubscribeRelation 操作を呼び出して、AMQP サブスクリプションからコンシューマーグループを削除することもできます。
4. オプション。 QueryConsumerGroupStatus 操作を呼び出して、オンラインクライアント情報、メッセージ消費率、累積メッセージ数、最後のメッセージ消費時間など、コンシューマーグループのステータスをクエリします。また、ResetConsumerGroupPosition 操作を呼び出して、コンシューマーグループの累積メッセージをクリアすることもできます。
QPS 制限
この API 操作は、アカウントごとに 1 秒あたり最大 5 回呼び出すことができます。
Alibaba Cloud アカウントの RAM ユーザーは、アカウントのクォータを共有します。
デバッグ
リクエストパラメーター
パラメーター | タイプ | 必須 | 例 | 説明 |
Action | String | Yes | CreateSubscribeRelation | 実行する操作。値を CreateSubscribeRelation に設定します。 |
ProductKey | String | Yes | a1fyXVF**** | サブスクリプションに指定されたプロダクトの ProductKey。 |
IotInstanceId | String | No | iot-cn-0pp1n8t**** | インスタンスの ID。IoT Platform コンソール の [概要] ページでインスタンスの ID を確認できます。 重要
詳細については、「概要」をご参照ください。 |
DeviceDataFlag | Boolean | No | true | アップストリームデバイスメッセージをプッシュするかどうかを指定します。有効な値:
|
DeviceStatusChangeFlag | Boolean | No | true | デバイスのステータス変更に関するメッセージをプッシュするかどうかを指定します。有効な値:
|
DeviceTopoLifeCycleFlag | Boolean | No | true | デバイスのトポロジ関係の変更に関するメッセージをプッシュするかどうかを指定します。有効な値:
|
FoundDeviceListFlag | Boolean | No | true | ゲートウェイが新しいサブデバイスを検出したときにメッセージをプッシュするかどうかを指定します。有効な値:
|
ThingHistoryFlag | Boolean | No | true | アップストリームの履歴 Thing Specification Language(TSL)データをプッシュするかどうかを指定します。有効な値:
|
DeviceLifeCycleFlag | Boolean | No | true | デバイスのライフサイクル変更に関するメッセージをプッシュするかどうかを指定します。有効な値:
|
OtaEventFlag | Boolean | No | true | 無線(OTA)アップデートバッチのステータスに関する通知をプッシュするかどうかを指定します。有効な値:
|
DeviceTagFlag | Boolean | No | true | デバイスタグの変更に関するメッセージをプッシュするかどうかを指定します。有効な値:
|
OtaVersionFlag | Boolean | No | true | OTA モジュールのバージョン番号に関するメッセージをプッシュするかどうかを指定します。有効な値:
|
OtaJobFlag | Boolean | No | true | OTA アップデートバッチのステータスに関する通知をプッシュするかどうかを指定します。有効な値:
|
Type | String | No | AMQP | サブスクリプションのタイプ。有効な値:
|
ConsumerGroupIds.N | RepeatList | No | nJRaJPn5U1JITGfjBO9l00**** | AMQP サブスクリプションで作成されたコンシューマーグループの ID。 Type パラメーターを AMQP に設定した場合、このパラメーターは必須です。 CreateConsumerGroup 操作を呼び出してコンシューマーグループを作成すると、コンシューマーグループ ID が返されます。 QueryConsumerGroupList 操作を呼び出して、コンシューマーグループ名でコンシューマーグループ ID をクエリできます。また、IoT Platform コンソールにログインし、 メッセージ転送 > サーバー側サブスクリプション > コンシューマーグループ を選択して、コンシューマーグループ ID を表示することもできます。 |
MnsConfiguration | String | No | { "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } } | MNS キューの構成。 Type パラメーターを AMQP に設定した場合、このパラメーターは必須です。 詳細については、「MnsConfiguration パラメーターの定義」セクションをご参照ください。 |
SubscribeFlags | String | No | { "jt808DeviceDataFlag": true } | 特定のサブスクライブ済みプロダクトのメッセージを受信するかどうかを指定します。 JT/T 808 ゲートウェイプロダクトをサブスクライブする場合は、SubscribeFlags パラメーターを構成する必要があります。値を次のコードに設定します。
|
少なくとも 1 つの Flag 関連パラメーターを に設定する必要があります。
MnsConfiguration パラメーターの定義
パラメーター | 説明 |
queueName | データを受信するために使用される MNS トピックの名前。 MNS コンソールでキューを作成し、キュー名を取得する必要があります。詳細については、「キューベースのメッセージングを開始する」をご参照ください。 |
regionName | MNS がデプロイされているリージョンのコード。例:cn-shanghai。 |
role | RAM ロールの情報。 IoT Platform が MNS にアクセスすることを承認するには、IoT Platform にサービスロールを割り当てることができます。次のスクリプトは、RAM ロールの構文を示しています。
|
MnsConfiguration パラメーターの例
{
"queueName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
上記の操作固有のリクエストパラメーターに加えて、この操作を呼び出すときは、共通リクエストパラメーターを構成する必要があります。共通リクエストパラメーターの詳細については、「共通パラメーター」をご参照ください。
レスポンスパラメーター
パラメーター | タイプ | 例 | 説明 |
Code | String | iot.system.SystemException | 呼び出しが失敗した場合に返されるエラーコード。エラーコードの詳細については、「エラーコード」をご参照ください。 |
ErrorMessage | String | システム例外が発生しました。 | 呼び出しが失敗した場合に返されるエラーメッセージ。 |
RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | リクエストの ID。 |
Success | Boolean | true | 呼び出しが成功したかどうかを示します。有効な値:
|
例
サンプルリクエスト
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateSubscribeRelation
&OtaEventFlag=true
&ProductKey=a1Zkii7****
&Type=AMQP
&ConsumerGroupIds.1=Xs95KifeaSKbi8tKkcoD00****
&<共通リクエストパラメーター>
サンプルの成功レスポンス
XML
形式
<CreateSubscribeRelationResponse>
<RequestId>C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82</RequestId>
<Success>true</Success>
</CreateSubscribeRelationResponse>
JSON
形式
{
"RequestId": "C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82",
"Success": true
}
エラーコード
エラーコードのリストについては、「サービスエラーコード」をご参照ください。