Cree una suscripción del lado del servidor de Message Service (MNS) o Advanced Message Queuing Protocol (AMQP).
Notas de uso
Las suscripciones del lado del servidor se clasifican en dos tipos:
Suscripción MNS: envía los mensajes suscritos a las colas de MNS. Las aplicaciones de servidor escuchan las colas de MNS para recibir mensajes de dispositivos. Para obtener más información, consulte Configurar suscripciones del lado del servidor de MNS. Llame a esta operación para crear una suscripción MNS.
-
Suscripción AMQP: envía los mensajes suscritos al servidor mediante el canal AMQP. Para obtener más información, consulte Configurar suscripciones del lado del servidor de AMQP. Para configurar una suscripción AMQP, siga estos pasos:
1. Llame a la operación CreateConsumerGroup para crear un grupo de consumidores y obtener su ID. Los mensajes se envían al grupo de consumidores. El cliente AMQP incluye el ID del grupo de consumidores al conectarse a IoT Platform. Para obtener más información, consulte Conectar un cliente AMQP a IoT Platform.
2. Llame a la operación CreateSubscribeRelation para crear una suscripción AMQP.
3. Opcional. Llame a la operación CreateConsumerGroupSubscribeRelation para agregar un grupo de consumidores a la suscripción AMQP. También puede llamar a la operación DeleteConsumerGroupSubscribeRelation para eliminar un grupo de consumidores de una suscripción AMQP.
4. Opcional. Llame a la operación QueryConsumerGroupStatus para consultar el estado de un grupo de consumidores, incluida la información de clientes en línea, la tasa de consumo de mensajes, el número de mensajes acumulados y la hora del último consumo. También puede llamar a la operación ResetConsumerGroupPosition para borrar los mensajes acumulados del grupo de consumidores.
Límites de QPS
Puede llamar a esta operación de API hasta cinco veces por segundo por cuenta.
Los usuarios RAM de una cuenta de Alibaba Cloud comparten la cuota de la cuenta.
Depuración
Parámetros de solicitud
| Parámetro | Tipo | Obligatorio | Ejemplo | Descripción |
| Action | String | Sí | CreateSubscribeRelation | La operación que desea ejecutar. Establezca el valor en CreateSubscribeRelation. |
| ProductKey | String | Sí | a1fyXVF**** | El ProductKey del producto especificado para la suscripción. |
| IotInstanceId | String | No | iot-cn-0pp1n8t**** | El ID de la instancia. Puede consultar el ID de la instancia en la página Overview de la consola de IoT Platform. Importante
Para obtener más información, consulte Descripción general. |
| DeviceDataFlag | Boolean | No | true | Especifique si se deben enviar mensajes ascendentes del dispositivo. Valores válidos:
|
| DeviceStatusChangeFlag | Boolean | No | true | Especifique si se deben enviar mensajes sobre cambios de estado del dispositivo. Valores válidos:
|
| DeviceTopoLifeCycleFlag | Boolean | No | true | Especifique si se deben enviar mensajes sobre cambios en las relaciones topológicas de los dispositivos. Valores válidos:
|
| FoundDeviceListFlag | Boolean | No | true | Especifique si se deben enviar mensajes cuando una puerta de enlace detecta nuevos subdispositivos. Valores válidos:
|
| ThingHistoryFlag | Boolean | No | true | Especifique si se deben enviar datos históricos ascendentes de Thing Specification Language (TSL). Valores válidos:
|
| DeviceLifeCycleFlag | Boolean | No | true | Especifique si se deben enviar mensajes sobre cambios en el ciclo de vida del dispositivo. Valores válidos:
|
| OtaEventFlag | Boolean | No | true | Especifique si se deben enviar notificaciones sobre el estado de los lotes de actualización over-the-air (OTA). Valores válidos:
|
| DeviceTagFlag | Boolean | No | true | Especifique si se deben enviar mensajes sobre cambios en las etiquetas del dispositivo. Valores válidos:
|
| OtaVersionFlag | Boolean | No | true | Especifique si se deben enviar mensajes sobre los números de versión de los módulos OTA. Valores válidos:
|
| OtaJobFlag | Boolean | No | true | Especifique si se deben enviar notificaciones sobre el estado de los lotes de actualización OTA. Valores válidos:
|
| Type | String | No | AMQP | El tipo de suscripción. Valores válidos:
|
| ConsumerGroupIds.N | RepeatList | No | nJRaJPn5U1JITGfjBO9l00**** | Los ID de los grupos de consumidores creados en la suscripción AMQP. Este parámetro es obligatorio si establece el parámetro Type en AMQP. Después de llamar a la operación CreateConsumerGroup para crear un grupo de consumidores, se devuelve su ID. Puede llamar a la operación QueryConsumerGroupList para consultar los ID de los grupos de consumidores por nombre. También puede iniciar sesión en la consola de IoT Platform y elegir Message Forwarding > Server-side Subscription > Consumer Groups para ver el ID del grupo de consumidores. |
| MnsConfiguration | String | No | { "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } } | La configuración de la cola de MNS. Si establece el parámetro Type en AMQP, este parámetro es obligatorio. Para obtener más información, consulte la sección "Definición del parámetro MnsConfiguration". |
| SubscribeFlags | String | No | { "jt808DeviceDataFlag": true } | Especifique si se deben recibir los mensajes de un producto suscrito específico. Si se suscribe a productos de puerta de enlace JT/T 808, debe configurar el parámetro SubscribeFlags. Establezca el valor en el siguiente código.
|
Debe establecer como mínimo un parámetro relacionado con Flag en
true
.
Definición del parámetro MnsConfiguration
Parámetro |
Descripción |
queueName |
El nombre de la cola de MNS que se utiliza para recibir datos. Debe crear una cola en la consola de MNS y obtener su nombre. Para obtener más información, consulte Crear una cola. |
regionName |
El código de la región donde se despliega MNS. Ejemplo: cn-shanghai. |
role |
La información sobre el rol de RAM. Para autorizar a IoT Platform a acceder a MNS, puede asignar un rol de servicio a IoT Platform. El siguiente script muestra la sintaxis de un rol de RAM:
Reemplace
|
Ejemplo del parámetro MnsConfiguration
{
"queueName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
Además de los parámetros de solicitud específicos de la operación anteriores, debe configurar parámetros de solicitud comunes al llamar a esta operación. Para obtener más información sobre los parámetros de solicitud comunes, consulte Parámetros comunes.
Parámetros de respuesta
| Parámetro | Tipo | Ejemplo | Descripción |
| Code | String | iot.system.SystemException | El código de error que se devuelve si la llamada falla. Para obtener más información sobre los códigos de error, consulte Códigos de error. |
| ErrorMessage | String | A system exception occurred. | El mensaje de error que se devuelve si la llamada falla. |
| RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | El ID de la solicitud. |
| Success | Boolean | true | Indica si la llamada fue exitosa. Valores válidos:
|
Ejemplos
Solicitudes de ejemplo
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateSubscribeRelation
&OtaEventFlag=true
&ProductKey=a1Zkii7****
&Type=AMQP
&ConsumerGroupIds.1=Xs95KifeaSKbi8tKkcoD00****
&<Common request parameters>
Respuestas exitosas de ejemplo
Formato XML
<CreateSubscribeRelationResponse>
<RequestId>C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82</RequestId>
<Success>true</Success>
</CreateSubscribeRelationResponse>
Formato JSON
{
"RequestId": "C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82",
"Success": true
}
Códigos de error
Para obtener una lista de códigos de error, consulte Códigos de error del servicio.