Démarrage rapide : ajouter des ressources OPC UA à votre cluster Opérations Azure IoT (Préversion)
Important
Opérations Azure IoT (préversion) – activé parc Azure Arc est actuellement en PRÉVERSION. Vous ne devez pas utiliser ce logiciel en préversion dans des environnements de production.
Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.
Dans ce guide de démarrage rapide, vous ajoutez manuellement des ressources OPC UA à votre cluster Opérations Azure IoT Préversion. Ces ressources publient des messages sur le répartiteur Azure IoT MQ (Préversion) dans votre cluster Opérations Azure IoT. 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 données de télémétrie 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 démarrage rapide, vous utilisez le portail Opérations Azure IoT (préversion) pour créer vos ressources. Vous pouvez également utiliser Azure CLI pour effectuer certaines de ces tâches.
Prérequis
Terminez Démarrage rapide : déployer Opérations Azure IoT (Préversion) sur un cluster Kubernetes avec Arc avant de commencer ce démarrage rapide.
Pour vous connecter au portail Opérations Azure IoT (préversion), vous devez disposer d’un compte professionnel ou scolaire dans le locataire où vous avez déployé Opérations Azure IoT. Si vous utilisez actuellement un compte Microsoft (MSA), vous devez créer un 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 la section Problèmes connus > Créer un compte Entra.
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 tels que le répartiteur MQ et les pipelines de processeur de données Azure IoT (Préversion).
Se connecter au portail Opérations Azure IoT (Préversion)
Pour créer des points de terminaison de ressources, des ressources et s’abonner aux étiquettes et événements OPC UA, utilisez le portail Opérations Azure IoT (préversion). Accédez au portail Opérations Azure IoT (Préversion) dans votre navigateur, puis connectez-vous avec vos informations d’identification Microsoft Entra ID.
Important
Vous devez utiliser un compte professionnel ou scolaire pour vous connecter au portail Opérations Azure IoT (préversion). Pour plus d’informations, consultez la section Problèmes connus > Créer un compte Entra.
Sélectionner votre site
Une fois connecté, le portail affiche la liste des sites auxquels vous avez accès. Chaque site est une collection d’instances Opérations Azure IoT où vous pouvez configurer vos ressources. Votre administrateur informatique est chargé d’organiser des instances dans des sites et d’accorder l’accès aux utilisateurs OT de votre organisation. Étant donné que 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 des instances non attribuées. Dans le portail, une instance représente un cluster dans lequel vous avez déployé des Opérations Azure IoT.
Sélectionner votre instance
Sélectionnez l’instance sur laquelle vous avez déployé Opérations Azure IoT dans le guide de démarrage rapide précédent :
Conseil
Si vous ne voyez aucune instance, il est possible que vous ne soyez pas dans le tenant Azure Active Directory approprié. Vous pouvez modifier le tenant à partir du menu supérieur droit dans le portail.
Ajouter un point de terminaison de ressource
Lorsque vous avez déployé Opérations Azure IoT, vous avez choisi d’inclure un simulateur OPC PLC intégré. Dans cette étape, vous ajoutez un point de terminaison de ressource qui vous permet de vous connecter au simulateur OPC PLC.
Pour ajouter un point de terminaison de ressource :
Sélectionnez Gérer des points de terminaison de ressource, puis Créer un point de terminaison de ressource :
Entrez les informations de point de terminaison suivantes :
Champ Valeur Nom opc-ua-connector-0
URL d’OPC UA Broker opc.tcp://opcplc-000000:50000
Authentification utilisateur Anonymous
Authentification de transport Do not use transport authentication certificate
Pour enregistrer la définition, sélectionnez Créer.
Cette configuration déploie un nouveau point de terminaison de ressource appelé
opc-ua-connector-0
sur le cluster. Vous pouvez utiliserkubectl
pour voir les points de terminaison de ressource :kubectl get assetendpointprofile -n azure-iot-operations
Ces démarrages rapides se servent du simulateur OPC PLC pour générer des exemples de données. Pour activer le scénario de démarrage rapide, vous devez configurer OPC UA Broker pour qu’il accepte les certificats de serveur non approuvés et votre point de terminaison d’actif pour qu’il se connecte sans aucune approbation mutuelle établie. Cette configuration n’est pas recommandée pour les environnements de production ou de préproduction. Pour plus d’informations, consultez Déployer le simulateur OPC PLC :
Afin de configurer le simulateur pour le scénario de démarrage rapide, exécutez la commande suivante :
az k8s-extension update --version 0.3.0-preview --name opc-ua-broker --release-train preview --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --cluster-type connectedClusters --auto-upgrade-minor-version false --config opcPlcSimulation.deploy=true --config opcPlcSimulation.autoAcceptUntrustedCertificates=true
Attention
N’utilisez pas cette configuration dans des environnements de production ou de pré-production. La configuration réduit le niveau de sécurité de l’OPC PLC pour qu’il accepte les connexions d’un client sans opération explicite d’approbation de certificat de pair.
Pour configurer le point de terminaison de ressource pour le scénario de démarrage rapide, exécutez la commande suivante :
kubectl patch AssetEndpointProfile opc-ua-connector-0 -n azure-iot-operations --type=merge -p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"opc-ua-connector-0\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'
Attention
N’utilisez pas cette configuration dans des environnements de production ou de pré-production. En exposant votre cluster à Internet sans authentification appropriée, vous risquez de provoquer des accès non autorisés, voire de subir des attaques DDOS.
Pour en savoir plus, consultez la section Déployer le simulateur OPC PLC.
Pour que les modifications de configuration prennent effet immédiatement, recherchez d’abord le nom de votre pod
aio-opc-supervisor
en utilisant la commande suivante :kubectl get pods -n azure-iot-operations
Le nom de votre pod ressemble à
aio-opc-supervisor-956fbb649-k9ppr
.Redémarrez le pod
aio-opc-supervisor
en utilisant une commande semblable à celle de l’exemple suivant. Utilisez le nom du podaio-opc-supervisor
de l’étape précédente :kubectl delete pod aio-opc-supervisor-956fbb649-k9ppr -n azure-iot-operations
Après votre définition d’une ressource, un pod de connecteur OPC UA le détecte. Le pod utilise un point de terminaison de ressource, que vous spécifiez dans la définition de ressource, pour se connecter à un serveur OPC UA. Vous pouvez utiliser kubectl
pour voir le pod de découverte créé quand vous avez ajouté le point de terminaison de ressource. Le nom du pod ressemble à aio-opc-opc.tcp-1-8f96f76-kvdbt
:
kubectl get pods -n azure-iot-operations
Quand le simulateur OPC PLC s’exécute, les données s’acheminent du simulateur vers le connecteur, puis vers OPC UA Broker et enfin vers le broker MQ.
Gérer vos actifs
Après avoir sélectionné votre instance dans le portail Opérations Azure IoT (préversion), la liste des ressources disponibles s’affiche sur la page Ressources. S’il n’y a pas encore de ressources, cette liste est vide :
Créer un actif
Pour créer une ressource, sélectionnez Créer une ressource.
Entrez les informations de ressource suivantes :
Champ | Value |
---|---|
Nom de l’actif | thermostat |
Point de terminaison de ressource | opc-ua-connector-0 |
Description | A simulated thermostat asset |
Faites défiler vers le bas de l’écran sur la page Détails de la ressource, puis configurez toutes les autres propriétés de la ressource, telles que :
- Fabricant
- URI de fabricant
- Modèle
- Code du produit
- Version du matériel
- Version du logiciel
- Numéro de série
- URI de la documentation
Vous pouvez supprimer les exemples de propriétés déjà définies et ajouter vos propriétés personnalisées.
Sélectionnez Suivant pour accéder à la page Ajouter des balises.
Créer des balises OPC UA
Ajoutez deux étiquettes OPC UA sur la page Ajouter des étiquettes. Pour ajouter chaque étiquette, sélectionnez Ajouter une étiquette ou un CSV, puis Ajouter une étiquette. Entrez les détails de la balise indiqués dans le tableau suivant :
ID de nœud | Nom de la balise | Mode d’observabilité |
---|---|---|
ns=3;s=FastUInt10 | température | aucun(e) |
ns=3;s=FastUInt100 | Balise 10 | Aucune |
Le mode Observabilité est l’une des valeurs suivantes : none
, gauge
, counter
, histogram
ou log
.
Vous pouvez remplacer l’intervalle d’échantillonnage et la taille de file d’attente par défaut pour chaque balise.
Sélectionnez Suivant pour accéder à la page Ajouter des évènements, puis Suivant pour 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 :
Vérifier que les données circulent
Vérifiez que les données sont envoyées en direction du MQTT broker à l’aide de l’outil mqttui. Dans cet exemple, vous exécutez l’outil mqttui dans votre cluster Kubernetes :
Exécutez la commande suivante pour déployer un pod qui inclut les outils mqttui et mosquitto, lesquels permettent d’interagir avec le répartiteur MQ 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 # 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-mq-dmqtt-frontend.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"] volumeMounts: - name: mq-sat mountPath: /var/run/secrets/tokens - name: trust-bundle mountPath: /var/run/certs volumes: - name: mq-sat projected: sources: - serviceAccountToken: path: mq-sat audience: aio-mq # Must match audience in BrokerAuthentication expirationSeconds: 86400 - name: trust-bundle configMap: name: aio-ca-trust-bundle-test-only # Default root CA cert
Attention
Cette configuration n’est pas sécurisée. N’utilisez pas cette configuration dans un environnement de production.
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
Au niveau de l’interpréteur de commandes, dans le pod mqtt-client, exécutez la commande suivante pour vous connecter au répartiteur MQ à l’aide de l’outil mqttui :
mqttui -b mqtts://aio-mq-dmqtt-frontend:8883 -u '$sat' --password $(cat /var/run/secrets/tokens/mq-sat) --insecure
Pour vérifier que la ressource thermostat que vous avez ajoutée publie des données, visualisez la télémétrie dans la rubrique azure-iot-operations/data
:
Si aucune donnée ne circule, redémarrez le pod aio-opc-opc.tcp-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
.Redémarrez le pod
aio-opc-opc.tcp-1
en utilisant une commande semblable à celle de l’exemple suivant. Utilisez le nom du podaio-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 guide de démarrage rapide précédent génèrent des messages à partir de votre ressource qui ressemblent aux exemples suivants :
{
"Timestamp": "2024-03-08T00:54:58.6572007Z",
"MessageType": "ua-deltaframe",
"payload": {
"temperature": {
"SourceTimestamp": "2023-08-10T00:54:58.2543129Z",
"Value": 7109
},
"Tag 10": {
"SourceTimestamp": "2023-08-10T00:54:58.2543482Z",
"Value": 7109
}
},
"DataSetWriterName": "thermostat",
"SequenceNumber": 4660
}
Détecter des sources de données OPC UA en utilisant Azure IoT Akri (Préversion)
Dans la section précédente, vous avez vu comment ajouter des ressources manuellement. Vous pouvez également utiliser Azure IoT Akri (Préversion) pour découvrir automatiquement des sources de données OPC UA et créer des ressources personnalisées d’instance Akri qui représentent les appareils détectés. À l’heure actuelle, Akri ne peut pas détecter ni créer des ressources qui peuvent être ingérées dans Registre de Dispositifs Azure (Préversion).
Lorsque vous déployez Opérations Azure IoT, le déploiement inclut les pods du gestionnaire de découverte Akri. Pour vérifier que ces pods sont en cours d’exécution, exécutez la commande suivante :
kubectl get pods -n azure-iot-operations | grep akri
kubectl get pods -n azure-iot-operations | Select-String -Pattern "akri"
La sortie de la commande précédente ressemble à l’exemple suivant :
akri-opcua-asset-discovery-daemonset-h47zk 1/1 Running 3 (4h15m ago) 2d23h
aio-akri-otel-collector-5c775f745b-g97qv 1/1 Running 3 (4h15m ago) 2d23h
aio-akri-agent-daemonset-mp6v7 1/1 Running 3 (4h15m ago) 2d23h
Sur la machine sur laquelle votre cluster Kubernetes s’exécute, exécutez la commande suivante pour appliquer une nouvelle configuration au gestionnaire de découverte :
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/akri-opcua-asset.yaml
L’extrait de code suivant montre le fichier YAML que vous avez appliqué :
apiVersion: akri.sh/v0
kind: Configuration
metadata:
name: akri-opcua-asset
namespace: azure-iot-operations
spec:
discoveryHandler:
name: opcua-asset
discoveryDetails: "opcuaDiscoveryMethod:\n - asset:\n endpointUrl: \" opc.tcp://opcplc-000000:50000\"\n useSecurity: false\n autoAcceptUntrustedCertificates: true\n"
brokerProperties: {}
capacity: 1
Pour vérifier la configuration, exécutez la commande suivante pour afficher les instances Akri qui représentent les sources de données OPC UA découvertes par Akri :
kubectl get akrii -n azure-iot-operations
L’affichage de l’instance peut prendre quelques minutes.
La sortie de la commande précédente ressemble à celle de l’exemple suivant.
NAMESPACE NAME CONFIG SHARED NODES AGE
azure-iot-operations akri-opcua-asset-dbdef0 akri-opcua-asset true ["dom-aio-vm"] 35m
Vous pouvez à présent utiliser ces ressources dans l’espace de noms de cluster local.
Pour confirmer la connexion d’Akri répartiteur OPC UA, copiez et collez le nom d’instance Akri de l’étape précédente dans la commande suivante :
kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json
La sortie de la commande est similaire à l’exemple suivant. Cet exemple de sortie montre les valeurs brokerProperties
de l’instance Akri et confirme la connexion du répartiteur OPC UA.
"spec": {
"brokerProperties": {
"ApplicationUri": "Boiler #2",
"AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……
Comment avons-nous résolu le problème ?
Dans ce guide de démarrage rapide, vous avez ajouté un point de terminaison de ressource, 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 utilisez la ressource thermostat que vous avez définie dans le guide de démarrage rapide suivant.
Nettoyer les ressources
Si vous n’utilisez plus ce déploiement, supprimez le cluster Kubernetes sur lequel vous avez déployé Opérations Azure IoT et supprimez le groupe de ressources Azure qui contient le cluster.