Dépannage
Utilisez les informations de dépannage pour identifier et résoudre les problèmes courants qui peuvent survenir lors de l'utilisation de votre plate-forme Internet of Things (IoT).
Assurez-vous de disposer des droits d'accès requis. Un administrateur accorde l'accès en créant les stratégies requises. Pour plus d'informations, reportez-vous à Prérequis et à Détails de stratégie pour la plate-forme Internet of Things (IoT).
Mettez à jour vos mots de passe
Vous devrez peut-être réinitialiser le mot de passe de votre base de données lors de la connexion à la base de données à l'aide d'APEX ou lors de la connexion directe à la base de données à l'aide du groupe de domaines d'identité.
Cause : si vous utilisez APEX et que vous devez réinitialiser votre mot de passe.
Si vous configurez l'accès pour afficher vos données IoT dans APEX, deux utilisateurs différents sont créés : un utilisateur de base de données et un administrateur d'espace de travail APEX. Il s'agit de deux utilisateurs différents avec le même nom d'utilisateur et le même mot de passe initial. Vous pouvez mettre à jour les mots de passe de chaque utilisateur.
Solution : mettez à jour le mot de passe de votre base de données APEX.
Seul un administrateur d'espace de travail APEX peut modifier le mot de passe de l'utilisateur de base de données. Initialement, l'administrateur d'espace de travail APEX utilise votre mot de passe de base de données APEX pour se connecter. Ensuite, suivez ces étapes pour modifier le mot de passe de base de données.
Dans APEX, connectez-vous à l'espace de travail du domaine IoT en tant qu'administrateur, en utilisant les éléments suivants comme nom d'espace de travail et nom utilisateur de base de données, avec votre mot de passe de base de données APEX en cours.Remarque
Notez les deux traits de soulignement__WKSP.<domain-short-id-from-device-host>__WKSP- Accédez à SQL Workshop et sélectionnez SQL Commands (Commandes SQL).
- Vérifiez que le schéma
<iot-domain-short-id-from-device-host>__WKSPest sélectionné dans le menu déroulant du schéma en haut à droite. Notez que le schéma contient deux traits de soulignement. - Utilisez l'instruction
ALTER USERSQL et la clauseREPLACErequise pour modifier le mot de passe de l'utilisateur de base de données :ALTER USER <workspace-administrator-user-name> IDENTIFIED BY "<new-password>" REPLACE "<old-password>"; - Sélectionnez Exécuter.
- Exemple de résultats illustrant la mise à jour du mot de passe :
User altered. 0.24 seconds
Solution : mettez à jour votre mot de passe APEX.
- En tant qu'administrateur d'espace de travail APEX, vous pouvez modifier le mot de passe d'administration de l'espace de travail. Une fois connecté à APEX en tant qu'administrateur, sélectionnez l'option Set APEX Account Password (Définir le mot de passe du compte APEX). Pour plus d'informations, reportez-vous à Réinitialisation du mot de passe dans APEX.
- En tant qu'utilisateur APEX, lorsque vous serez connecté à l'application APEX pour la première fois, vous serez invité à modifier votre mot de passe APEX. Après votre première connexion, vous pouvez réinitialiser votre mot de passe sur la page de connexion à APEX.
Selon le système que vous utilisez, des guillemets peuvent être requis lorsque votre mot de passe contient des caractères spéciaux.
Solution : réinitialisez le mot de passe de l'espace de travail APEX à l'aide de l'API
POST /20250531/iotDomains/{iotDomainId}/actions/configureDataAccess
{
"type": "APEX",
"dbWorkspaceAdminInitialPassword": "<your-apex-initial-password>"
}Cause : autorisation manquante lors de la connexion directe à la base de données
Si vous établissez une connexion directe à la base de données à l'aide de la commande d'interface de ligne de commande suivante et que vous n'êtes pas autorisé à vous connecter directement à la base de données, vous pouvez créer un mot de passe de base de données pour que le groupe de domaines d'identité se connecte.
Par exemple, lorsque vous utilisez la commande oci iot domain configure-direct-data-access et les paramètres requis pour configurer l'authentification d'un domaine IoT afin d'établir une connexion de base de données directe, vous ne pouvez pas vous connecter.
oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID:<identity-domain-name>/<identity-group-name>"]'ou si vous utilisez ce format :
oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID:<identity-group-name>"]'Solution : mettre à jour le mot de passe de la base de données pour l'utilisateur du domaine d'identité
- Ouvrez le menu de navigation, accédez à Identité et gestion, sélectionnez domaines.
- Sur la page de liste des domaines, sélectionnez le domaine d'identité que vous voulez utiliser et connectez-vous à un domaine IoT.
- Sélectionnez l'onglet Gestion des utilisateurs, puis sélectionnez l'utilisateur pour lequel mettre à jour le mot de passe. Sélectionnez l'onglet Mots de passe de base de données pour mettre à jour le mot de passe supprimer le mot de passe de base de données IAM en cours et créer un mot de passe de base de données IAM.
Les modèles de jumeaux numériques utilisent les spécifications DTDL v3
Cause : la création d'un modèle de jumeau numérique entraîne une erreur
Lorsque vous créez un modèle de jumeau numérique en cas d'erreur, vérifiez que vous n'utilisez que les spécifications DTDL v3 prises en charge.
Solution : utiliser uniquement les spécifications DTDL v3 prises en charge
- Si une propriété
writableest incluse dans le modèle de jumeau numérique, elle doit être définie surfalse. - Seule la valeur
contentdu composant peut être annotée en tant quehistorized, ce qui indique que la plate-forme IoT doit conserver la télémétrie de série temporelle de ce capteur. Reportez-vous à l'exemple de modèle de jumeau numériquedtdl-model-specifications.json. Pour un exemple, reportez-vous à Création d'un modèle de jumeau numérique.
Limites de service dépassées
Résolvez les limites de service de ressources de groupe de domaines IoT ou de domaine IoT par région.
Cause : limites de ressources IoT par région
La plate-forme Internet of Things (IoT) dispose de limites sur le nombre de ressources par région.
Si vous essayez de créer plus de 2 domaines IoT ou plus dans un groupe de domaines IoT, l'erreur suivante peut apparaître. Pour plus d'informations, reportez-vous à create an IoT domain ou à IoT domain group.
The following service limits were exceeded: <resource-count>. Request a service limit increase from the service limits page in the console.
Oracle limite la création de jusqu'à 2 domaines IoT dans chaque groupe de domaines IoT. Le nombre maximal de groupes de domaines IoT est de 5 et le nombre maximal de domaines IoT est de 10 par région dans votre location. Pour créer un domaine IoT, l'utilisateur doit disposer d'un accès en lecture pour le groupe de domaines IoT associé.
Solution : Mettre à niveau et augmenter les limites
Reportez-vous à Limites de service afin de vérifier les limites pour les ressources IoT. Si vous devez augmenter les limites, vous pouvez demander une augmentation de limite de service.
Utilisation de guillemets avec des OCID
Dans Oracle Cloud Infrastructure (OCI), un OCID (identificateur Oracle Cloud) est un ID unique affecté à chaque ressource cloud. Selon le scénario spécifique, lorsque vous interagissez avec OCI via l'interface de ligne de commande (CLI), l'entrée JSON ou les appels d'API, vous devrez peut-être mettre l'OCID entre guillemets afin qu'il soit interprété comme une valeur de chaîne. Ou vous devrez peut-être supprimer des guillemets si un éditeur de code que vous utilisez ajoute des guillemets indésirables.
Certaines applications ou certains éditeurs de code peuvent ajouter des guillemets indésirables à vos valeurs, vérifier et enlever les guillemets indésirables, ou cela peut entraîner une erreur.
Pour se conformer aux normes JSON et garantir une interprétation correcte par les services OCI, un OCID doit être placé entre guillemets, de sorte qu'il soit traité comme une valeur de chaîne dans des structures JSON ou des entrées complexes. Lorsqu'il est transmis en tant qu'arguments simples et directs aux commandes de la CLI, il n'est souvent pas nécessaire de fournir des devis explicites.
- Ne pas citer d'OCID dans l'interface de ligne de commande : si un OCID est un argument direct d'une commande d'interface de ligne de commande, vous n'avez pas besoin d'utiliser explicitement des guillemets, sauf s'il fait partie d'une chaîne plus grande ou d'un type complexe nécessitant un guillemet.Cet exemple montre comment utiliser un OCID est une commande d'interface de ligne de commande sans guillemets :
oci iot digital-twin-adapter create --iot-domain-id ocid1.iotdomain.oc1.example-ocid - Création d'OCID lors de l'intégration dans des chaînes JSON : si vous transmettez un paramètre complexe à une commande d'interface de ligne de commande en tant que chaîne JSON avec une valeur d'OCID, l'OCID de la chaîne JSON doit être placé entre guillemets doubles et échappé si nécessaire. Selon l'outil et le système d'exploitation que vous utilisez, Windows est requis. Pour plus d'informations, reportez-vous à Transmission d'entrée complexe dans l'interface de ligne de commande.
- Création d'OCID dans des objets JSON : toutes les valeurs de chaîne d'un objet JSON doivent être placées entre guillemets doubles. Si un OCID est une valeur dans un objet JSON que vous envoyez à OCI à l'aide d'une API ou d'une commande d'interface de ligne de commande, il doit être entre guillemets :
{ "displayName": "my_resource", "compartmentId": "ocid1.compartment.oc1..<example>" } - Création d'OCID dans les appels d'API : dans les corps ou les paramètres de demande : lors des appels d'API vers OCI, si un OCID fait partie du corps de la demande en tant que charge utile JSON ou paramètre de requête, il doit être traité comme une chaîne et placé entre guillemets dans la charge utile JSON. Ou il doit être correctement codé en tant que chaîne pour les paramètres d'URL. Les exigences spécifiques dépendent de l'adresse d'API et du type de données attendu pour ce paramètre.
Dans les instances de jumeau numérique à l'aide de guillemets pour une clé externe
Clé externe égale le nom utilisateur de l'appareil : si une instance de jumeau numérique est créée avec des guillemets intégrés dans la clé externe, par exemple : "\"american-auto\"", le nom utilisateur d'authentification de base, ces guillemets font partie du nom utilisateur requis et doivent être envoyés littéralement. Cela provoque souvent des problèmes de citation de shell. Si vous avez inclus des guillemets dans le nom de clé externe, votre demande curl doit également inclure les guillemets. Sinon, une non-concordance se produit et entraîne une erreur 401 Unauthorized.
Si vous utilisez des guillemets dans la valeur instance de jumeau numérique external key, vous devez les utiliser lorsque vous effectuez un appel d'API. Vous pouvez également omettre les guillemets dans la valeur de clé externe.
--external-key et la valeur correspondante qui n'utilise pas de guillemets sont affichés :--external-key 01-23-45-67-89-ab
Meilleure pratique : créez des instances de jumeau numérique avec des clés externes et n'incluez pas de guillemets, par exemple, american-auto. Ou lorsque vous devez vous authentifier avec des noms utilisateur entre guillemets, créez un en-tête Authorization: Basic ... plutôt que d'utiliser -u pour éviter les erreurs de citation.
Dans les adaptateurs de jumeaux numériques, les objets JSON doivent utiliser des guillemets
Les expressions sans guillemets ne sont pas prises en charge dans les routages entrants digital twin adapter. Pour plus d'exemples, reportez-vous à Scénarios.
Dans un adaptateur jumeau numérique, les expressions inbound-route ne sont pas prises en charge en tant que valeurs brutes sans guillemets, par exemple :
"$.speed": ${(.velocity_kph / 1.609) | floor}
inbound-route, elles doivent être intégrées sous forme de chaînes à l'aide de guillemets, par exemple : "$.speed": "${(.velocity_kph / 1.609) | floor}"