カスタム Topic に対するデバイスの権限を付与し、ブロードキャスト機能、委任サブスクリプション機能、およびデータ圧縮または展開機能を有効にするかどうかを指定します。
使用上の注意
最大 1,000 台のデバイスのカスタム Topic のブロードキャストメッセージをサブスクライブできます。 1,000 台を超えるデバイスのカスタム Topic のブロードキャストメッセージをサブスクライブする場合は、Message Queuing Telemetry Transport(MQTT) 5.0 を使用して通信し、カスタム Topic のブロードキャスト機能を有効にして、カスタム Topic のメッセージを保存メッセージとして指定できます。
次の手順を実行します。
1. UpdateTopicConfig 操作を呼び出し、EnableBroadcast パラメーターを true に設定して、カスタム Topic がメッセージをブロードキャストできるようにします。この例では、/broadcast/a1Q5XoY****/test カスタム Topic が使用されています。
2. Pub 操作を呼び出して、/broadcast/a1Q5XoY****/test Topic にメッセージをブロードキャストし、Retained パラメーターを true に設定して、メッセージを保存メッセージとして指定します。
3. SubscribeTopic 操作を呼び出して、デバイスの /broadcast/a1Q5XoY****/test Topic をサブスクライブします。このようにして、デバイスはカスタム Topic から保存メッセージを受信できます。
QPS 制限
この操作は、アカウントごとに 1 秒あたり最大 100 回呼び出すことができます。
デバッグ
リクエストパラメーター
|
パラメーター |
タイプ |
必須 |
例 |
説明 |
| Action | String | Yes | UpdateTopicConfig | 実行する操作。値を UpdateTopicConfig に設定します。 |
| ProductKey | String | Yes | a1Q5XoY**** | デバイスが属するプロダクトの ProductKey です。 |
| TopicFullName | String | Yes | /broadcast/a1Q5XoY****/test | カスタム Topic の名前。
重要 カスタム Topic を使用してメッセージをブロードキャストする場合は、次の点に注意してください。
|
| IotInstanceId | String | No | iot-0pp1n8t**** | インスタンスの ID。 IoT Platform コンソール の [概要] タブでインスタンスの ID を確認できます。 重要
詳細については、「概要」をご参照ください。 |
| EnableBroadcast | Boolean | No | true | ブロードキャスト機能を有効にするかどうかを指定します。有効な値:
|
| Operation | String | No | SUB | Topic カテゴリでデバイスに付与する権限。有効な値:
|
| EnableProxySubscribe | Boolean | No | false | Operation パラメーターを SUB または ALL に設定した場合、委任サブスクリプション機能を有効にできます。 有効な値:
トピックの委任サブスクリプション機能を有効にすると、IoT Platform はトピックの詳細を取得し、デバイスを IoT Platform に接続するときにデバイスがトピックをサブスクライブするのを支援します。 |
| Codec | String | No | compress | カスタム Topic のデータ圧縮または展開機能を有効にするかどうかを指定します。このパラメーターは、Standard または Exclusive Enterprise Edition インスタンスを使用する場合にのみ使用できます。 有効な値:
詳細については、「データ圧縮」をご参照ください。 |
| Description | String | No | submit a test topic | トピックの説明。説明は 1 ~ 100 文字でなければなりません。 |
上記の操作固有のリクエストパラメーターに加えて、この操作を呼び出すときは、共通リクエストパラメーターを構成する必要があります。共通リクエストパラメーターの詳細については、「共通パラメーター」をご参照ください。
レスポンスパラメーター
パラメーター |
タイプ |
例 |
説明 |
| Code | String | iot.system.SystemException | 呼び出しが失敗した場合に返されるエラーコード。詳細については、このトピックの「エラーコード」セクションをご参照ください。 |
| Message | String | A system exception occurred. | 呼び出しが失敗した場合に返されるエラーメッセージ。 |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | リクエストの ID。 |
| Success | Boolean | true | 呼び出しが成功したかどうかを示します。有効な値:
|
例
リクエストの例
https://iot.cn-shanghai.aliyuncs.com/?Action=UpdateTopicConfig
&EnableBroadcast=true
&ProductKey=a1Q5XoY****
&TopicFullName=/broadcast/a1Q5XoY****/test
&IotInstanceId=iot-0pp1n8t****
&<共通リクエストパラメーター>
成功レスポンスの例
XML 形式
<RequestId>E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565</RequestId>
<Code/>
<Success>true</Success>
JSON 形式
{
"RequestId": "E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565",
"Code": "",
"Success": true
}
エラーコード
|
HttpCode |
エラーコード |
エラーメッセージ |
説明 |
| 400 | iot.message.broker.ParamCheckError | Param check error. | パラメーターの値を確認できませんでした。 |
| 400 | iot.message.broker.ProductCheckError | Product check error. | プロダクトの認証に失敗しました。 |
| 400 | iot.message.broker.TopicConfigNumExceed | Topic config num exceed. | 指定したトピックの数が制限を超えています。 |
| 400 | iot.message.broker.SystemError | System error. | システム例外が発生しました。 |
| 400 | iot.messagebroker.InvalidPubTopicFormat | The pub topic cannot contain wildcard characters. | メッセージを送信するトピックの名前には、ワイルドカード文字を含めることはできません。 |
| 400 | iot.messagebroker.InvalidOperationWithBroadcast | The operation must be sub for enabling broadcast. | ブロードキャスト機能が有効になっているトピックでは、デバイスはサブスクライブ操作のみを実行できます。 |
| 400 | iot.messagebroker.InvalidTopicWithBroadcast | Topics for which broadcast is enabled cannot contain wildcard characters. | ブロードキャスト機能が有効になっているトピックの名前には、ワイルドカード文字を含めることはできません。 |
| 400 | iot.messagebroker.InvalidOperationWithProxySubscribe | The operation must be sub or all for enabling proxy subscription. | 委任サブスクリプション機能が有効になっているトピックでは、デバイスはサブスクライブ操作またはすべての操作のみを実行できます。 |
| 400 | iot.messagebroker.InvalidTopicWithProxySubscribe | Topics for which proxy subscription is enabled cannot contain wildcard characters. | 委任サブスクリプション機能が有効になっているトピックの名前には、ワイルドカード文字を含めることはできません。 |
| 400 | iot.messagebroker.InvalidTopicWithCodec | Topics for which compression and decompression are enabled cannot contain wildcard characters. | 圧縮または展開機能が有効になっているトピックの名前には、ワイルドカード文字を含めることはできません。 |
| 400 | iot.messagebroker.InvalidInstanceWithCodec | Only Exclusive Enterprise Edition instances support compression and decompression. | Exclusive Enterprise Edition インスタンスのみがデータ圧縮または展開機能をサポートしています。 |
| 400 | iot.prod.NotExistedProduct | The specified product does not exist. | 指定したプロダクトは存在しません。 |
エラーコードの一覧については、「サービスエラーコード」をご参照ください。