Partager via


Référence de l’API MQTT 5 du plan de données IoT Hub (déconseillée)

Ce document définit les opérations disponibles dans la version 2.0 (api-version : 2020-10-01-preview) de l’API du plan de données IoT Hub.

Remarque

La prise en charge de MQTT 5 dans IoT Hub a été mise hors service et IoT Hub n’offre qu’une prise en charge limitée de MQTT. Si votre solution a besoin d’une prise en charge de MQTT v3.1.1 ou v5, nous vous recommandons la prise en charge de MQTT dans Azure Event Grid. Pour plus d’informations, consultez l’article Comparer la prise en charge de MQTT dans IoT Hub et Event Grid.

Opérations

Obtenir un jumeau

Obtenir l’état du jumeau

Requête

Nom de la rubrique : $iothub/twin/get

Propriétés : aucune

Charge utile : vide

Réponse en cas de réussite

Propriétés : aucune

Charge utile : Jumeau

Autres réponses

État Name Description
0100 Demande incorrecte Le message d’opération est malformé et ne peut pas être traité.
0101 Non autorisé Le client n’est pas autorisé à effectuer l’opération.
0102 Non autorisée L’opération n’est pas autorisée.
0501 Throttled Le taux de requêtes est trop élevé par SKU.
0502 Quota dépassé Le quota quotidien par SKU actuel est dépassé.
0601 Erreur de serveur Erreur interne du serveur.
0602 Délai d'expiration L’opération a expiré avant d’être terminée.
0603 Serveur occupé Le serveur est occupé.

Exemple de pseudo-code


-> PUBLISH
    QoS: 0
    Topic: $iothub/twin/get
<- PUBLISH
    QoS: 0
    Topic: $iothub/responses

Jumeau patch signalé

État signalé du jumeau patch

Requête

Nom de la rubrique : $iothub/twin/patch/reported

Propriétés :

Name Type Requise Description
if-version u64 Non

Charge utile : TwinState

Réponse en cas de réussite

Propriétés :

Name Type Requise Description
version u64 Oui Version de l’état signalé après l’application du patch

Charge utile : vide

Autres réponses

État Name Description
0104 Échec de la précondition la condition préalable n’a pas été remplie, entraînant l’annulation de la requête
0100 Demande incorrecte Le message d’opération est malformé et ne peut pas être traité.
0101 Non autorisé Le client n’est pas autorisé à effectuer l’opération.
0102 Non autorisée L’opération n’est pas autorisée.
0501 Throttled Le taux de requêtes est trop élevé par SKU.
0502 Quota dépassé Le quota quotidien par SKU actuel est dépassé.
0601 Erreur de serveur Erreur interne du serveur.
0602 Délai d'expiration L’opération a expiré avant d’être terminée.
0603 Serveur occupé Le serveur est occupé.

Exemple de pseudo-code


-> PUBLISH
    QoS: 0
    Topic: $iothub/twin/patch/reported
    [if-version: <u64>]
<- PUBLISH
    QoS: 0
    Topic: $iothub/responses

Recevoir des commandes

Recevoir et gérer des commandes

Message

Nom de la rubrique : $iothub/commands

Propriétés :

Name Type Requise Description
sequence-no u64 Oui Numéro de séquence du message.
enqueued-time time Oui Horodatage du moment où le message est entré dans le système.
delivery-count u32 Oui Nombre de tentatives de remise du message.
creation-time time Non Horodatage du moment où le message a été créé (fourni par l’expéditeur).
message-id string non Identité du message (fournie par l’expéditeur).
user-id string non Identité de l’utilisateur (fournie par l’expéditeur).
correlation-id string non Identité de la corrélation (fournie par l’expéditeur).
Type de contenu string non Détermine le type de contenu de la charge utile.
content-encoding string non Détermine l’encodage du contenu de la charge utile.

Charge utile : n’importe quelle séquence d’octets

Accusé de réception en cas de réussite

Indique que la commande a été acceptée pour être traitée par le client

Propriétés : aucune

Charge utile : vide

Autres accusés de réception

Code de raison État Name Description
131 0603 Arrêter Indique que la commande ne sera pas traitée pour l’instant et qu’elle devra être à nouveau livrée plus tard.
131 0100 Rejeter Indique que le client a rejeté la commande et qu’elle ne doit pas être tentée à nouveau.

Exemple de pseudo-code


-> SUBSCRIBE
    - Topic: $iothub/commands
      QoS: 1
<- PUBLISH
    QoS: 1
    Topic: $iothub/commands
    sequence-no: <u64>enqueued-time: <time>delivery-count: <u32>[creation-time: <time>][message-id: <string>][user-id: <string>][correlation-id: <string>][Content Type: <string>][content-encoding: <string>]
    Payload: ...

-> PUBACK

Recevoir des méthodes directes

Recevoir et gérer les appels de méthode directe

Requête

Nom de la rubrique : $iothub/methods/{name}

Propriétés : aucune

Charge utile : n’importe quelle séquence d’octets

Réponse en cas de réussite

Propriétés :

Name Type Requise Description
response-code u32 Oui

Charge utile : n’importe quelle séquence d’octets

Autres réponses

État Name Description
06A0 Indisponible Indique que le client n’est pas joignable via cette connexion.

Exemple de pseudo-code


-> SUBSCRIBE
    - Topic: methods/{name}
      QoS: 0
<- SUBACK
<- PUBLISH
    QoS: 0
    Topic: $iothub/methods/{name}
-> PUBLISH
    QoS: 0
    Topic: $iothub/responses

Recevoir les modifications d’état souhaité du jumeau

Recevoir les mises à jour de l’état souhaité du jumeau

Message

Nom de la rubrique : $iothub/twin/patch/desired

Propriétés :

Name Type Requise Description
version u64 Oui Version de l’état souhaité correspondant à cette mise à jour

Charge utile : TwinState

Exemple de pseudo-code


-> SUBSCRIBE
    - Topic: $iothub/twin/patch/desired
      QoS: 0
<- PUBLISH
    QoS: 0
    Topic: $iothub/twin/patch/desired
    version: <u64>
    Payload: ...

Envoyer des données de télémétrie

Publiez le message sur le canal de télémétrie - Event Hubs par défaut ou sur un autre point de terminaison via la configuration du routage.

Message

Nom de la rubrique : $iothub/telemetry

Propriétés :

Name Type Requise Description
Type de contenu string non se traduit en propriété système content-type sur le message publié
content-encoding string non se traduit en propriété système content-encoding sur le message publié
message-id string non se traduit en propriété système message-id sur le message publié
user-id string non se traduit en propriété système user-id sur le message publié
correlation-id string non se traduit en propriété système correlation-id sur le message publié
creation-time time Non se traduit en propriété iothub-creation-time-utc sur le message publié

Conseil

Le format de creation-time doit être UTC sans informations de fuseau horaire. Par exemple, 2021-04-21T11:30:16Z est valide, 2021-04-21T11:30:16-07:00 non.

Charge utile : n’importe quelle séquence d’octets

Accusé de réception en cas de réussite

Le message a été correctement publié sur le canal de télémétrie.

Propriétés : aucune

Charge utile : vide

Autres accusés de réception

Code de raison État Name Description
131 0100 Demande incorrecte Le message d’opération est malformé et ne peut pas être traité.
135 0101 Non autorisé Le client n’est pas autorisé à effectuer l’opération.
131 0102 Non autorisée L’opération n’est pas autorisée.
131 0601 Erreur de serveur Erreur interne du serveur.
151 0501 Throttled Le taux de requêtes est trop élevé par SKU.
151 0502 Quota dépassé Le quota quotidien par SKU actuel est dépassé.
131 0602 Délai d'expiration L’opération a expiré avant d’être terminée.
131 0603 Serveur occupé Le serveur est occupé.

Exemple de pseudo-code

-> PUBLISH
    QoS: 1
    Topic: $iothub/telemetry
    [Content Type: <string>]
    [content-encoding: <string>]
    [message-id: <string>]
    [user-id: <string>]
    [correlation-id: <string>]
    [creation-time: <time>]

<- PUBACK

Réponses

Demande incorrecte

Le message d’opération est malformé et ne peut pas être traité.

Code motif : 131

État : 0100

Propriétés :

Name Type Requise Description
reason string non contient des informations spécifiques sur ce qui n’est pas valide dans le message

Charge utile : vide

Conflit

L’opération est en conflit avec une autre opération en cours.

Code motif : 131

État : 0103

Propriétés :

Name Type Requise Description
trace-id string non ID de trace pour la corrélation avec d’autres diagnostics de l’erreur
reason string non contient des informations spécifiques sur ce qui n’est pas valide dans le message

Charge utile : vide

Non autorisée

L’opération n’est pas autorisée.

Code motif : 131

État : 0102

Propriétés :

Name Type Requise Description
reason string non contient des informations spécifiques sur ce qui n’est pas valide dans le message

Charge utile : vide

Non autorisé

Le client n’est pas autorisé à effectuer l’opération.

Code motif : 135

État : 0101

Propriétés :

Name Type Requise Description
trace-id string non ID de trace pour la corrélation avec d’autres diagnostics de l’erreur

Charge utile : vide

Introuvable

la ressource demandée n’existe pas

Code motif : 131

État : 0504

Propriétés :

Name Type Requise Description
reason string non contient des informations spécifiques sur ce qui n’est pas valide dans le message

Charge utile : vide

Non modifié

La ressource n’a pas été modifiée selon la condition préalable indiquée.

Code motif : 0

État : 0001

Propriétés : aucune

Charge utile : vide

Échec de la précondition

La condition préalable n’a pas été remplie, entraînant l’annulation de la requête

Code motif : 131

État : 0104

Propriétés : aucune

Charge utile : vide

Quota dépassé

Le quota quotidien par SKU actuel est dépassé.

Code motif : 151

État : 0502

Propriétés : aucune

Charge utile : vide

Ressource épuisée

La ressource n’a pas la capacité nécessaire pour terminer l’opération.

Code motif : 131

État : 0503

Propriétés :

Name Type Requise Description
reason string non contient des informations spécifiques sur ce qui n’est pas valide dans le message

Charge utile : vide

Serveur occupé

Le serveur est occupé.

Code motif : 131

État : 0603

Propriétés :

Name Type Requise Description
trace-id string non ID de trace pour la corrélation avec d’autres diagnostics de l’erreur

Charge utile : vide

Erreur de serveur

Erreur interne du serveur.

Code motif : 131

État : 0601

Propriétés :

Name Type Requise Description
trace-id string non ID de trace pour la corrélation avec d’autres diagnostics de l’erreur

Charge utile : vide

Échec de la cible

La cible a répondu, mais la réponse est non valide ou malformée.

Code motif : 131

État : 06A2

Propriétés :

Name Type Requise Description
reason string non contient des informations spécifiques sur ce qui n’est pas valide dans le message

Charge utile : vide

Expiration du délai d’attente du ticket

Expiration du délai d’attente dont dispose la cible pour terminer la requête

Code motif : 131

État : 06A1

Propriétés :

Name Type Requise Description
trace-id string non ID de trace pour la corrélation avec d’autres diagnostics de l’erreur
reason string non contient des informations spécifiques sur ce qui n’est pas valide dans le message

Charge utile : vide

Cible non disponible

La cible est inaccessible pour terminer la requête.

Code motif : 131

État : 06A0

Propriétés : aucune

Charge utile : vide

Throttled

Le taux de requêtes est trop élevé par SKU.

Code motif : 151

État : 0501

Propriétés : aucune

Charge utile : vide

Délai d'expiration

L’opération a expiré avant d’être terminée.

Code motif : 131

État : 0602

Propriétés :

Name Type Requise Description
trace-id string non ID de trace pour la corrélation avec d’autres diagnostics de l’erreur

Charge utile : vide