Partager via


Tutoriel : Ajouter des ressources OPC UA à votre cluster Opérations Azure IoT

Dans ce tutoriel, vous ajoutez manuellement des ressources OPC UA à votre cluster Opérations Azure IoT. Ces ressources publient des messages sur l’agent MQTT dans votre cluster Azure IoT Operations. En règle générale, un utilisateur OT effectue ces étapes.

Une ressource est un appareil physique ou une entité logique qui représente un appareil, un ordinateur, un système ou un processus. Par exemple, une ressource physique peut être une pompe, un moteur, un réservoir ou une ligne de production. Une ressource logique que vous définissez peut avoir des propriétés, des points de données de flux ou générer des événements.

Les serveurs OPC UA sont des applications logicielles qui communiquent avec des ressources. Les balises OPC UA sont des points de données que les serveurs OPC UA exposent. Les balises OPC UA peuvent fournir des données en temps réel ou un historique sur l’état, les performances, la qualité ou la condition des ressources.

Dans ce tutoriel, vous utilisez l’interface utilisateur web de l’expérience des opérations pour créer vos ressources. Vous pouvez également utiliser Azure CLI pour effectuer certaines de ces tâches.

Prérequis

Instance d’Azure IoT Operations avec des paramètres sécurisés activés dans un cluster Kubernetes. Pour créer une instance, utilisez l’une des opérations suivantes pour déployer Azure IoT Operations :

Important

Il n’est pas possible d’activer les paramètres sécurisés sur l’instance que vous créez si vous suivez les étapes décrites dans le guide de démarrage rapide : Exécuter des opérations Azure IoT dans GitHub Codespaces avec l’article K3s .

Après avoir activé les paramètres sécurisés, le groupe de ressources qui contient votre instance Azure IoT Operations contient également les ressources suivantes :

  • Instance Azure Key Vault pour stocker les secrets à synchroniser dans votre cluster Kubernetes.
  • Identité managée affectée par l’utilisateur utilisée par Azure IoT Operations pour accéder à l’instance Azure Key Vault.
  • Une identité managée affectée par l’utilisateur que les composants Azure IoT Operations, tels que les flux de données, peuvent utiliser pour se connecter à des points de terminaison cloud tels qu’Azure Event Hubs.
  • Espace de noms Azure Device Registry pour stocker vos ressources et appareils.

Assurez-vous que lorsque vous configurez des paramètres sécurisés que vous accordez à votre compte d’utilisateur les autorisations nécessaires pour gérer les secrets avec le rôle Agent des secrets Key Vault .

Pour vous connecter à l’interface utilisateur web de l’expérience des opérations, vous devez avoir un compte Microsoft Entra ID avec au moins des autorisations de contributeur pour le groupe de ressources contenant votre instance Kubernetes – Azure Arc. Pour plus d’informations, consultez Interface utilisateur web de l’expérience des opérations.

Sauf indication contraire, vous pouvez exécuter les commandes de la console de ce tutoriel dans un environnement Bash ou PowerShell.

Quel problème résoudrons-nous ?

Les données exposées par les serveurs OPC UA peuvent avoir une structure complexe et peuvent être difficiles à comprendre. Opérations Azure IoT permettent de modéliser les ressources OPC UA en tant que balises, événements et propriétés. Cette modélisation facilite la compréhension des données et leur utilisation dans des processus en aval, comme l’Agent MQTT et les flux de données.

Le tutoriel explique également comment utiliser les informations d’identification stockées dans Azure Key Vault pour s’authentifier auprès du serveur OPC UA simulé.

Déployer le simulateur de PLC OPC

Ce tutoriel utilise le simulateur OPC PLC pour générer des exemples de données. Pour déployer le simulateur OPC PLC :

  1. Téléchargez le fichier opc-plc-tutorial-deployment.yaml à partir du dépôt GitHub. Pour télécharger à l’aide de la ligne de commande, exécutez la commande suivante :

    wget https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/refs/heads/main/samples/quickstarts/opc-plc-tutorial-deployment.yaml -O opc-plc-tutorial-deployment.yaml
    
  2. Ouvrez le opc-plc-tutorial-deployment.yaml fichier que vous avez téléchargé dans un éditeur de texte et modifiez le mot de passe du simulateur. Le mot de passe est défini à l’aide du --defaultpassword paramètre. Notez la valeur du mot de passe, vous en aurez besoin ultérieurement. Ensuite, enregistrez vos modifications.

  3. Pour déployer le simulateur OPC PLC sur votre cluster, exécutez la commande suivante :

    kubectl apply -f opc-plc-tutorial-deployment.yaml
    

L’extrait de code suivant montre le fichier YAML que vous avez appliqué :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: opc-plc-000000
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/component: opcplc-000000
  template:
    metadata:
      labels:
        app.kubernetes.io/component: opcplc-000000
    spec:
      containers:
      - name: opc-plc
        image: mcr.microsoft.com/iotedge/opc-plc:latest
        args:
          - "--plchostname=opcplc-000000"
          - "--portnum=50000"
          - "--certdnsnames=opcplc-000000"
          - "--unsecuretransport"
          - "--slownodes=5"
          - "--slowrate=10"
          - "--fastnodes=10"
          - "--fasttypelowerbound=212"
          - "--fasttypeupperbound=273"
          - "--fasttyperandomization=True"
          - "--veryfastrate=1000"
          - "--guidnodes=1"
          - "--appcertstoretype=FlatDirectory"
          - "--dontrejectunknownrevocationstatus"
          - "--disableanonymousauth"
          - "--defaultuser=contosouser"
          - "--defaultpassword=contosouserpassword"
        ports:
        - containerPort: 50000
        volumeMounts:
          - name: opc-plc-default-application-cert
            mountPath: /app/pki/own
          - name: opc-plc-trust-list
            mountPath: /app/pki/trusted
      volumes:
        - name: opc-plc-default-application-cert
          secret:
            secretName: opc-plc-default-application-cert
        - name: opc-plc-trust-list
          secret:
            secretName: opc-plc-trust-list
      serviceAccountName: opcplc-000000-service-account
---
apiVersion: v1
kind: Service
metadata:
  name: opcplc-000000
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  type: ClusterIP
  selector:
    app.kubernetes.io/component: opcplc-000000
  ports:
    - port: 50000
      protocol: TCP
      targetPort: 50000
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: opc-plc-self-signed-issuer
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: opc-plc-default-application-cert
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  secretName: opc-plc-default-application-cert
  duration: 2160h # 90d
  renewBefore: 360h # 15d
  issuerRef:
    name: opc-plc-self-signed-issuer
    kind: Issuer
  commonName: OpcPlc
  dnsNames:
    - opcplc-000000
    - opcplc-000000.azure-iot-operations.svc.cluster.local
    - opcplc-000000.azure-iot-operations
  uris:
    - urn:OpcPlc:opcplc-000000
  usages:
    - digital signature
    - key encipherment
    - data encipherment
    - server auth
    - client auth
  privateKey:
    algorithm: RSA
    size: 2048
  encodeUsagesInRequest: true
  isCA: false
---
apiVersion: v1
kind: Secret
metadata:
  name: opc-plc-trust-list
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
data: {}
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: opcplc-000000-service-account
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: opc-plc-000000-secret-access-role
  namespace: azure-iot-operations
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: opc-plc-000000-secret-access-rolebinding
  namespace: azure-iot-operations
subjects:
- kind: ServiceAccount
  name: opcplc-000000-service-account
  namespace: azure-iot-operations
roleRef:
  kind: Role
  name: opc-plc-000000-secret-access-role
  apiGroup: rbac.authorization.k8s.io

Établir une confiance mutuelle

Avant que le simulateur OPC PLC puisse envoyer des données au connecteur pour OPC UA, vous devez établir une confiance mutuelle entre eux. Dans ce tutoriel, le simulateur OPC PLC et le connecteur pour OPC UA utilisent des certificats auto-signés pour établir l’approbation mutuelle avec le connecteur pour OPC UA :

  • Le certificat d’instance d’application du simulateur est stocké dans le opc-plc-default-application-cert secret Kubernetes.
  • Le connecteur pour le certificat d'instance de l'application OPC UA est stocké dans le secret Kubernetes aio-opc-opcuabroker-default-application-cert.

Important

Dans un environnement de production, utilisez des certificats d’instance d’application de niveau entreprise pour établir l’approbation mutuelle. Pour plus d’informations, consultez Configurer un certificat d’instance d’application de niveau entreprise.

Ajouter le certificat du connecteur à la liste d’approbation du simulateur

Chaque serveur OPC UA dispose de son propre mécanisme pour gérer la liste d’approbations. Pour ajouter le certificat du connecteur à la liste d’approbation du simulateur, exécutez les commandes suivantes :

cert=$(kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d)
data=$(kubectl create secret generic temp --from-literal=opcuabroker.crt="$cert" --dry-run=client -o jsonpath='{.data}')
kubectl patch secret opc-plc-trust-list -n azure-iot-operations -p "{\"data\": $data}"
$cert = kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | %{ [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_)) }
$data = kubectl create secret generic temp --from-literal=opcuabroker.crt="$cert" --dry-run=client -o jsonpath='{.data}'
kubectl patch secret opc-plc-trust-list -n azure-iot-operations -p "{""data"": $data}"

Ajouter le certificat du simulateur à la liste d’approbation du connecteur

Chaque type de serveur OPC UA a son propre mécanisme pour gérer son certificat d’instance d’application. Pour télécharger le certificat du simulateur dans un fichier appelé opcplc-000000.crt, exécutez la commande suivante :

kubectl -n azure-iot-operations get secret opc-plc-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d > opcplc-000000.crt
kubectl -n azure-iot-operations get secret opc-plc-default-application-cert -o jsonpath='{.data.tls\.crt}' | %{ [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_)) } > opcplc-000000.crt

Pour ajouter le certificat du simulateur à la liste d’approbation du connecteur :

  1. Accédez à l’interface utilisateur web de l’expérience des opérations et connectez-vous avec vos informations d’identification Microsoft Entra ID.

  2. Sélectionnez votre site. Si vous travaillez avec un nouveau déploiement, aucun site n’est encore présent. Vous trouverez le cluster que vous avez créé dans le guide de démarrage rapide précédent en sélectionnant Afficher des instances non attribuées. Dans l’expérience des opérations, une instance représente un cluster où vous avez déployé des opérations Azure IoT.

    Capture d’écran montrant le nœud des instances non attribuées dans l’expérience des opérations.

  3. Sélectionnez l’instance où vous avez déployé Azure IoT Operations :

    Capture d’écran de la liste des instances Azure IoT Operations.

    Conseil

    Si vous ne voyez aucune instance, il est possible que vous ne soyez pas dans le locataire Microsoft Entra ID approprié. Vous pouvez changer le locataire à partir du menu supérieur droit dans le portail.

  4. Sélectionnez Appareils, puis gérez les certificats et les secrets :

    Capture d’écran montrant comment rechercher la page gérer les certificats dans l’expérience des opérations.

  5. Sur la page Certificats et secrets, sélectionnez Ajouter un nouveau certificat :

    Capture d’écran montrant comment ajouter un certificat à la liste d’approbations dans l’expérience des opérations.

  6. Sélectionnez Charger le certificat, sélectionnez Liste d’approbation OPC UA comme magasin de certificats, puis choisissez le fichier opcplc-000000.crt que vous avez téléchargé précédemment. Sélectionnez Ensuite Charger :

    Capture d’écran montrant un chargement de certificat réussi.

  7. Sélectionnez Appliquer.

Le certificat d'instance de l'application du simulateur est désormais présent dans le connecteur de la liste de confiance d'OPC UA.

Ajout d’un appareil

Au cours de cette étape, vous utilisez votre expérience opérationnelle pour ajouter un périphérique qui vous permet de vous connecter au simulateur OPC PLC. Pour ajouter un appareil :

  1. Sélectionnez Appareils , puis créez :

    Capture d’écran illustrant la page des appareils dans l’expérience des opérations.

  2. Entrez opc-ua-connector comme nom de périphérique et sélectionnez Nouveau sur la vignette Microsoft.OpcUa :

    Capture d’écran illustrant comment ajouter un appareil dans l’expérience des opérations.

  3. Entrez les informations suivantes relatives au point de terminaison entrant Microsoft.OpcUa :

    Champ Valeur
    Nom du point de terminaison opc-ua-connector-0
    URL du serveur OPC UA opc.tcp://opcplc-000000:50000
    Mode d’authentification utilisateur Username password

Dans ce tutoriel, vous ajoutez de nouveaux secrets à votre instance Azure Key Vault à partir de l’interface utilisateur web de gestion des opérations. Les secrets sont automatiquement synchronisés avec votre cluster Kubernetes :

  1. Pour ajouter une référence de nom d’utilisateur, sélectionnez Ajouter une référence, puis Créez-en un.

  2. Entrez plcusername le nom du secret et contosouser la valeur secrète. Ensuite, sélectionnez Appliquer.

  3. Pour ajouter une référence de mot de passe, sélectionnez Ajouter une référence, puis Créez-en un.

  4. Entrez plcpassword comme nom du secret et le mot de passe que vous avez ajoutés au fichier opc-plc-deployment.yaml comme valeur du secret. Ensuite, sélectionnez Appliquer.

  5. Sur la page Détails de l’appareil, sélectionnez Suivant pour accéder à la page Informations supplémentaires.

  6. Sur la page Ajouter une propriété personnalisée, vous pouvez éventuellement mettre à jour ou ajouter des propriétés personnalisées à l’appareil. Une fois que vous avez terminé, sélectionnez Suivant.

  7. Pour enregistrer la définition de l’appareil sur la page Résumé, sélectionnez Créer.

Cette configuration déploie un nouvel appareil appelé opc-ua-connector avec un point de terminaison appelé opc-ua-connector-0 sur le cluster. Vous pouvez afficher l’appareil dans le Portail Azure ou utiliser kubectl pour afficher les appareils dans votre cluster Kubernetes :

kubectl get device -n azure-iot-operations

Vous pouvez voir les secrets plcusername et plcpassword dans l'instance Azure Key Vault de votre groupe de ressources. Les secrets sont synchronisés avec votre cluster Kubernetes où vous pouvez les voir à l’aide de la kubectl get secret -n azure-iot-operations commande. Vous pouvez également voir les secrets dans l’expérience opérationnelle sur la page Gérer les secrets synchronisés.

Gérer vos actifs

Une fois que vous avez sélectionné votre instance dans l’expérience des opérations, vous voyez la liste disponible des ressources dans la page Ressources. S’il n’y a pas encore de ressources, cette liste est vide :

Capture d’écran de la liste des ressources vides Azure IoT Operations.

Créer une ressource

Pour créer une ressource, sélectionnez Créer une ressource. Entrez ensuite les informations de ressource suivantes :

Champ Valeur
Point de terminaison entrant opc-ua-connector-0
Nom de la ressource thermostat
Descriptif A simulated thermostat asset

Supprimez les Propriétés personnalisées existantes et ajoutez les propriétés personnalisées suivantes. Veillez à utiliser les noms de propriété exacts, car le modèle Power BI les demande dans un tutoriel ultérieur :

Nom de la propriété Détail de la propriété
lot 102
client Contoso
équipement Chaudière
isSpare vrai
lieu Seattle

Capture d’écran de la page détails de la ressource Azure IoT Operations.

Sélectionnez Suivant pour accéder à la page Jeux de données .

Créer un jeu de données

Pour créer un jeu de données, sélectionnez Créer un jeu de données. Entrez les détails du jeu de données indiqués dans le tableau suivant :

Champ Valeur
Nom du jeu de données thermostat
Destination MQTT
Sujet azure-iot-operations/data/thermostat

Sélectionnez Créer et suivant pour enregistrer le jeu de données et accéder à la page Points de données.

Conseil

Vous pouvez sélectionner Gérer les paramètres par défaut pour modifier l’intervalle d’échantillonnage et la taille de file d’attente par défaut pour chaque point de données.

Créer des points de données OPC UA

Ajoutez un point de données OPC UA sur la page Points de données . Pour ajouter un point de données, sélectionnez Ajouter un point de données. Entrez les détails du point de données indiqués dans le tableau suivant :

Source de données Nom du point de données
ns=3;s=SpikeData température

La valeur de la source de données ici est un nœud spécifique de simulateur OPC UA. Le nœud génère des valeurs aléatoires dans une plage spécifiée et a également des pics intermittents.

Cliquez sur Enregistrer.

Capture d’écran de la page Ajouter un point de données à Azure IoT Operations.

Sélectionnez Suivant pour accéder à la page Groupes d’événements, puis Sélectionnez Suivant pour accéder à la page Groupes d’administration , puis Suivant pour accéder à la page Révision .

Révision

Passez en revue votre ressource et les détails de la balise et apportez les ajustements nécessaires avant de sélectionner Créer :

Capture d’écran de la page de révision de création de ressources Opérations Azure IoT.

Cette configuration déploie une nouvelle ressource appelée thermostat sur le cluster. Vous pouvez également utiliser kubectl pour afficher les ressources localement dans votre cluster :

kubectl get assets.namespace -n azure-iot-operations

Afficher des ressources dans le portail Azure

Pour afficher l’appareil et la ressource que vous avez créés dans le Portail Azure, accédez au Registre des Dispositifs Azure :

Capture d’écran du Portail Azure illustrant le Registre des Dispositifs Azure.

Le portail vous permet d’afficher les détails de la ressource. Sélectionnez vue JSON pour plus d’informations :

Capture d’écran des détails de la ressource Azure IoT Operations dans le portail Azure.

Vérifier que les données circulent

Vérifiez que les données circulent vers l’agent MQTT à l’aide de l’outil mosquitto_sub. Dans cet exemple, vous exécutez l’outil mosquitto_sub à l’intérieur de votre cluster Kubernetes :

  1. Exécutez la commande suivante pour déployer un pod qui inclut les mosquitto_pub et les outils mosquitto_sub qui sont utiles pour interagir avec l’agent MQTT dans le cluster :

    kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
    

    L’extrait de code suivant montre le fichier YAML que vous avez appliqué :

    # Important: do not use in production environments
    # Create a service account
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: mqtt-client
      namespace: azure-iot-operations
    ---
    # Creates a pod with mosquitto-clients and mqttui utilities in your cluster
    apiVersion: v1
    kind: Pod
    metadata:
      name: mqtt-client
      # The namespace must match the IoT MQ BrokerListener's namespace
      # Otherwise use the long hostname: aio-broker.azure-iot-operations.svc.cluster.local
      namespace: azure-iot-operations
    spec:
      # Use the "mqtt-client" service account which comes with default deployment
      # Otherwise create it with `kubectl create serviceaccount mqtt-client -n azure-iot-operations`
      serviceAccountName: mqtt-client
      containers:
        # Install mosquitto and mqttui utilities on Alpine linux
      - image: alpine
        name: mqtt-client
        command: ["sh", "-c"]
        args: ["apk add mosquitto-clients mqttui && sleep infinity"]
        resources:
          limits:
            cpu: 500m
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 100Mi
        volumeMounts:
        - name: broker-sat
          mountPath: /var/run/secrets/tokens
        - name: trust-bundle
          mountPath: /var/run/certs
      volumes:
      - name: broker-sat
        projected:
          sources:
          - serviceAccountToken:
              path: broker-sat
              audience: aio-internal # Must match audience in BrokerAuthentication
              expirationSeconds: 86400
      - name: trust-bundle
        configMap:
          name: azure-iot-operations-aio-ca-trust-bundle # Default root CA cert
    

    Attention

    Cette configuration n’est pas sécurisée. N’utilisez pas cette configuration dans un environnement de production.

  2. Quand le pod mqtt-client s’exécute, exécutez la commande suivante pour créer un environnement d’interpréteur de commandes dans le pod que vous avez créé :

    kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
    
  3. Dans l’interpréteur de commandes Bash du pod mqtt-client, exécutez la commande suivante pour vous connecter à l’Agent MQTT à l’aide de l’outil mosquitto_sub et utiliser un caractère générique pour vous abonner aux rubriques data/# :

    mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/#" -v --debug --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
    

    Cette commande continue à s’exécuter et affiche les messages sur n’importe quelle rubrique à mesure qu’ils arrivent sur n’importe data/# jusqu’à ce que vous appuyiez sur Ctrl+C pour l’arrêter. Pour quitter l’environnement shell, tapez exit.

Pour vérifier que la ressource thermostat que vous avez ajoutée publie des données, affichez les messages de la azure-iot-operations/data/thermostat rubrique :

Client $server-generated/0000aaaa-11bb-cccc-dd22-eeeeee333333 received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/thermostat', ... (92 bytes))
azure-iot-operations/data/thermostat {"temperature":{"SourceTimestamp":"2025-02-14T11:27:44.5030912Z","Value":48.17536741017152}}
Client $server-generated/0000aaaa-11bb-cccc-dd22-eeeeee333333 received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/thermostat', ... (90 bytes))
azure-iot-operations/data/thermostat {"temperature":{"SourceTimestamp":"2025-02-14T11:27:45.50333Z","Value":98.22872507286887}}
Client $server-generated/0000aaaa-11bb-cccc-dd22-eeeeee333333 received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/thermostat', ... (92 bytes))
azure-iot-operations/data/thermostat {"temperature":{"SourceTimestamp":"2025-02-14T11:27:46.503381Z","Value":12.533323356430426}}

Si aucune donnée ne circule, redémarrez le pod aio-opc-opc.tcp-1 :

  1. Recherchez le nom de votre pod aio-opc-opc.tcp-1 à l’aide de la commande suivante :

    kubectl get pods -n azure-iot-operations
    

    Le nom de votre pod ressemble à aio-opc-opc.tcp-1-849dd78866-vhmz6.

  2. Redémarrez le pod aio-opc-opc.tcp-1 en utilisant une commande semblable à celle de l’exemple suivant. Utilisez le nom du pod aio-opc-opc.tcp-1 de l’étape précédente :

    kubectl delete pod aio-opc-opc.tcp-1-849dd78866-vhmz6 -n azure-iot-operations
    

Les exemples de balises que vous avez ajoutés dans le tutoriel précédent génèrent des messages à partir de votre ressource qui ressemblent à l’exemple suivant :

{
    "temperature":{
        "Value":24.86898871648548,
        "SourceTimestamp":"2025-04-25T14:50:07.195274Z"
    }
}

Comment avons-nous résolu le problème ?

Dans ce tutoriel, vous avez ajouté un appareil, puis défini une ressource et des balises. Les ressources et balises modélisent les données du serveur OPC UA pour faciliter l’utilisation des données dans un répartiteur MQTT et d’autres processus en aval.

Vous avez utilisé les informations d’identification stockées dans Azure Key Vault pour vous authentifier auprès du serveur OPC UA. Cette approche est plus sécurisée que le codage en dur des identifiants dans votre définition d'actif.

Vous utilisez la ressource thermostat que vous avez définie dans le tutoriel suivant.

Nettoyer les ressources

Si vous passez au tutoriel suivant, conservez toutes vos ressources.

Si vous voulez supprimer le déploiement d’Opérations Azure IoT mais conserver votre cluster, utilisez la commande az iot ops delete :

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Si vous voulez supprimer toutes les ressources que vous avez créées pour ce démarrage rapide, supprimez le cluster Kubernetes où vous avez déployé Opérations Azure IoT, puis supprimez le groupe de ressources Azure qui contenait le cluster.

Si vous avez utilisé Codespaces pour ces démarrages rapides, supprimez votre codespace de GitHub.

Étape suivante

Tutoriel : Envoyer des messages de votre ressource au cloud à l’aide d’un flux de données.