Crée un abonnement côté serveur pour Message Service (MNS) ou Advanced Message Queuing Protocol (AMQP).
Remarques sur l'utilisation
Les abonnements côté serveur se divisent en deux catégories :
Abonnement MNS : transfère les messages souscrits vers des files d'attente MNS. Vos applications serveur écoutent ces files pour recevoir les messages des appareils. Pour plus d'informations, consultez la rubrique Configurer des abonnements côté serveur MNS. Appelez cette opération pour créer un abonnement MNS.
-
Abonnement AMQP : achemine les messages souscrits vers votre serveur via le canal AMQP. Pour plus d'informations, consultez la rubrique Configurer des abonnements côté serveur AMQP. Procédez comme suit pour configurer un abonnement AMQP :
1. Appelez l'opération CreateConsumerGroup afin de créer un groupe de consommateurs et récupérez l'ID renvoyé. Les messages sont poussés vers ce groupe. Le client AMQP doit inclure cet ID lors de sa connexion à IoT Platform. Pour plus d'informations, consultez la rubrique Connecter un client AMQP à IoT Platform.
2. Appelez l'opération CreateSubscribeRelation pour créer l'abonnement AMQP.
3. Facultatif. Appelez l'opération CreateConsumerGroupSubscribeRelation pour ajouter un groupe de consommateurs à l'abonnement AMQP. Vous pouvez également appeler l'opération DeleteConsumerGroupSubscribeRelation pour retirer un groupe de consommateurs d'un abonnement AMQP.
4. Facultatif. Appelez l'opération QueryConsumerGroupStatus pour interroger le statut d'un groupe de consommateurs, notamment les informations sur les clients connectés, le taux de consommation des messages, le nombre de messages accumulés et l'heure de la dernière consommation. Vous pouvez aussi appeler l'opération ResetConsumerGroupPosition pour purger les messages accumulés du groupe de consommateurs.
Limites de QPS
Vous pouvez appeler cette API jusqu'à cinq fois par seconde par compte.
Les utilisateurs RAM d'un compte Alibaba Cloud partagent le quota de ce compte.
Débogage
Paramètres de requête
| Parameter | Type | Required | Example | Description |
| Action | String | Yes | CreateSubscribeRelation | L'opération que vous souhaitez effectuer. Définissez la valeur sur CreateSubscribeRelation. |
| ProductKey | String | Yes | a1fyXVF**** | La ProductKey du produit spécifié pour l'abonnement. |
| IotInstanceId | String | No | iot-cn-0pp1n8t**** | L'ID de l'instance. Vous pouvez consulter l'ID de l'instance sur la page Overview de la console IoT Platform. Important
Pour plus d'informations, consultez la rubrique Overview. |
| DeviceDataFlag | Boolean | No | true | Indique s'il faut pousser les messages montants des appareils. Valeurs possibles :
|
| DeviceStatusChangeFlag | Boolean | No | true | Indique s'il faut pousser les messages relatifs aux changements de statut des appareils. Valeurs possibles :
|
| DeviceTopoLifeCycleFlag | Boolean | No | true | Indique s'il faut pousser les messages relatifs aux modifications des relations topologiques entre appareils. Valeurs possibles :
|
| FoundDeviceListFlag | Boolean | No | true | Indique s'il faut pousser des messages lorsqu'une passerelle détecte de nouveaux sous-appareils. Valeurs possibles :
|
| ThingHistoryFlag | Boolean | No | true | Indique s'il faut pousser les données historiques Thing Specification Language (TSL) montantes. Valeurs possibles :
|
| DeviceLifeCycleFlag | Boolean | No | true | Indique s'il faut pousser les messages relatifs aux changements du cycle de vie des appareils. Valeurs possibles :
|
| OtaEventFlag | Boolean | No | true | Indique s'il faut pousser les notifications relatives au statut des lots de mise à jour over-the-air (OTA). Valeurs possibles :
|
| DeviceTagFlag | Boolean | No | true | Indique s'il faut pousser les messages relatifs aux modifications des tags des appareils. Valeurs possibles :
|
| OtaVersionFlag | Boolean | No | true | Indique s'il faut pousser les messages relatifs aux numéros de version des modules OTA. Valeurs possibles :
|
| OtaJobFlag | Boolean | No | true | Indique s'il faut pousser les notifications relatives au statut des lots de mise à jour OTA. Valeurs possibles :
|
| Type | String | No | AMQP | Le type d'abonnement. Valeurs possibles :
|
| ConsumerGroupIds.N | RepeatList | No | nJRaJPn5U1JITGfjBO9l00**** | Les ID des groupes de consommateurs créés dans l'abonnement AMQP. Ce paramètre est obligatoire si vous définissez le paramètre Type sur AMQP. Après avoir appelé l'opération CreateConsumerGroup pour créer un groupe de consommateurs, l'ID du groupe est renvoyé. Vous pouvez appeler l'opération QueryConsumerGroupList pour interroger les ID des groupes de consommateurs par nom. Vous pouvez également vous connecter à la console IoT Platform et, choisissez Message Forwarding > Server-side Subscription > Consumer Groups pour afficher l'ID du groupe de consommateurs. |
| MnsConfiguration | String | No | { "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } } | La configuration de la file d'attente MNS. Si vous définissez le paramètre Type sur AMQP, ce paramètre est obligatoire. Pour plus d'informations, consultez la section « Définition du paramètre MnsConfiguration ». |
| SubscribeFlags | String | No | { "jt808DeviceDataFlag": true } | Indique s'il faut recevoir les messages d'un produit souscrit spécifique. Si vous vous abonnez à des produits passerelle JT/T 808, vous devez configurer le paramètre SubscribeFlags. Définissez la valeur sur le code suivant.
|
Vous devez définir au moins un paramètre lié à Flag sur
true
.
Définition du paramètre MnsConfiguration
Parameter |
Description |
queueName |
Le nom de la rubrique MNS utilisée pour recevoir les données. Vous devez créer une file d'attente dans la console MNS et obtenir son nom. Pour plus d'informations, consultez la rubrique Create a queue. |
regionName |
Le code de la région où MNS est déployé. Exemple : cn-shanghai. |
role |
Les informations relatives au rôle RAM. Pour autoriser IoT Platform à accéder à MNS, vous pouvez attribuer un rôle de service à IoT Platform. Le script suivant illustre la syntaxe d'un rôle RAM :
Remplacez
|
Exemple du paramètre MnsConfiguration
{
"queueName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
Outre les paramètres de requête spécifiques à l'opération présentés ci-dessus, vous devez configurer les paramètres de requête communs lors de l'appel de cette opération. Pour plus d'informations sur les paramètres de requête communs, consultez la rubrique Paramètres communs.
Paramètres de réponse
| Parameter | Type | Example | Description |
| Code | String | iot.system.SystemException | Le code d'erreur renvoyé en cas d'échec de l'appel. Pour plus d'informations sur les codes d'erreur, consultez la rubrique Codes d'erreur. |
| ErrorMessage | String | A system exception occurred. | Le message d'erreur renvoyé en cas d'échec de l'appel. |
| RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | L'ID de la requête. |
| Success | Boolean | true | Indique si l'appel a réussi. Valeurs possibles :
|
Exemples
Exemple de requête
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateSubscribeRelation
&OtaEventFlag=true
&ProductKey=a1Zkii7****
&Type=AMQP
&ConsumerGroupIds.1=Xs95KifeaSKbi8tKkcoD00****
&<Common request parameters>
Exemple de réponse réussie
Format XML
<CreateSubscribeRelationResponse>
<RequestId>C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82</RequestId>
<Success>true</Success>
</CreateSubscribeRelationResponse>
Format JSON
{
"RequestId": "C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82",
"Success": true
}
Codes d'erreur
Pour obtenir la liste des codes d'erreur, consultez la rubrique Codes d'erreur de service.