Snabbstart: Lägga till OPC UA-tillgångar i azure IoT Operations Preview-klustret
Viktigt!
Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc finns för närvarande i FÖRHANDSVERSION. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.
Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.
I den här snabbstarten lägger du manuellt till OPC UA-tillgångar i azure IoT Operations Preview-klustret. Dessa tillgångar publicerar meddelanden till Azure IoT MQ Preview Broker i ditt Azure IoT Operations-kluster. Vanligtvis slutför en OT-användare de här stegen.
En tillgång är en fysisk enhet eller logisk entitet som representerar en enhet, en dator, ett system eller en process. En fysisk tillgång kan till exempel vara en pump, en motor, en tank eller en produktionslinje. En logisk tillgång som du definierar kan ha egenskaper, strömma telemetri eller generera händelser.
OPC UA-servrar är program som kommunicerar med tillgångar. OPC UA-taggar är datapunkter som OPC UA-servrar exponerar. OPC UA-taggar kan tillhandahålla realtidsdata eller historiska data om tillgångars status, prestanda, kvalitet eller villkor.
I den här snabbstarten använder du Azure IoT Operations-portalen (förhandsversion) för att skapa dina tillgångar. Du kan också använda Azure CLI för att slutföra några av dessa uppgifter.
Förutsättningar
Slutför snabbstart: Distribuera Förhandsversionen av Azure IoT Operations till ett Arc-aktiverat Kubernetes-kluster innan du påbörjar den här snabbstarten.
Om du vill logga in på Azure IoT Operations-portalen (förhandsversion) behöver du ett arbets- eller skolkonto i klientorganisationen där du distribuerade Azure IoT Operations. Om du för närvarande använder ett Microsoft-konto (MSA) måste du skapa ett Microsoft Entra-ID med minst deltagarbehörigheter för resursgruppen som innehåller din Kubernetes – Azure Arc-instans . Mer information finns i Kända problem > Skapa entra-konto.
Vilket problem kommer vi att lösa?
De data som OPC UA-servrar exponerar kan ha en komplex struktur och kan vara svåra att förstå. Med Azure IoT Operations kan du modellera OPC UA-tillgångar som taggar, händelser och egenskaper. Den här modelleringen gör det enklare att förstå data och använda dem i underordnade processer som MQ Broker och Azure IoT Data Processor Preview-pipelines.
Logga in på Azure IoT Operations-portalen (förhandsversion)
Om du vill skapa tillgångsslutpunkter, tillgångar och prenumerera på OPC UA-taggar och händelser använder du Azure IoT Operations-portalen (förhandsversion). Gå till Azure IoT Operations-portalen (förhandsversion) i webbläsaren och logga in med dina Microsoft Entra-ID-autentiseringsuppgifter.
Viktigt!
Du måste använda ett arbets- eller skolkonto för att logga in på Azure IoT Operations-portalen (förhandsversion). Mer information finns i Kända problem > Skapa entra-konto.
Välj din webbplats
När du har loggat in visar portalen en lista över webbplatser som du har åtkomst till. Varje webbplats är en samling Azure IoT Operations-instanser där du kan konfigurera dina tillgångar. IT-administratören ansvarar för att organisera instanser på webbplatser och ge åtkomst till OT-användare i din organisation. Eftersom du arbetar med en ny distribution finns det inga platser ännu. Du hittar klustret som du skapade i föregående snabbstart genom att välja Otilldelade instanser. I portalen representerar en instans ett kluster där du distribuerade Azure IoT Operations.
Välj din instans
Välj den instans där du distribuerade Azure IoT Operations i föregående snabbstart:
Dricks
Om du inte ser några instanser kanske du inte har rätt Microsoft Entra-ID-klientorganisation. Du kan ändra klientorganisationen från den övre högra menyn i portalen.
Lägga till en tillgångsslutpunkt
När du distribuerade Azure IoT Operations valde du att inkludera en inbyggd OPC PLC-simulator. I det här steget lägger du till en tillgångsslutpunkt som gör att du kan ansluta till OPC PLC-simulatorn.
Så här lägger du till en tillgångsslutpunkt:
Välj Tillgångsslutpunkter och sedan Skapa tillgångsslutpunkt:
Ange följande slutpunktsinformation:
Fält Värde Tillgångsslutpunktsnamn opc-ua-connector-0
OPC UA-server-URL opc.tcp://opcplc-000000:50000
Användarautentiseringsläge Anonymous
Transportautentisering Do not use transport authentication certificate
Spara definitionen genom att välja Skapa.
Den här konfigurationen distribuerar en ny tillgångsslutpunkt som anropas
opc-ua-connector-0
till klustret. Du kan användakubectl
för att visa tillgångsslutpunkterna:kubectl get assetendpointprofile -n azure-iot-operations
Konfigurera simulatorn
Dessa snabbstarter använder OPC PLC-simulatorn för att generera exempeldata. För att aktivera snabbstartsscenariot måste du konfigurera tillgångsslutpunkten så att den ansluter utan att ömsesidigt förtroende har upprättats. Den här konfigurationen rekommenderas inte för produktions- eller förproduktionsmiljöer:
Kör följande kommando för att konfigurera tillgångsslutpunkten för snabbstartsscenariot:
kubectl patch AssetEndpointProfile opc-ua-connector-0 -n azure-iot-operations --type=merge -p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"opc-ua-connector-0\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'
Varning
Använd inte den här konfigurationen i produktions- eller förproduktionsmiljöer. Att exponera klustret för Internet utan korrekt autentisering kan leda till obehörig åtkomst och till och med DDOS-attacker.
Mer information finns i Avsnittet Distribuera OPC PLC-simulatorn .
Om du vill att konfigurationsändringarna ska börja gälla omedelbart letar du reda på namnet på podden
aio-opc-supervisor
med hjälp av följande kommando:kubectl get pods -n azure-iot-operations
Namnet på din podd ser ut som
aio-opc-supervisor-956fbb649-k9ppr
.aio-opc-supervisor
Starta om podden med hjälp av ett kommando som ser ut som i följande exempel.aio-opc-supervisor
Använd poddnamnet från föregående steg:kubectl delete pod aio-opc-supervisor-956fbb649-k9ppr -n azure-iot-operations
När du har definierat en tillgång identifierar en OPC UA-anslutningspodd den. Podden använder den tillgångsslutpunkt som du anger i tillgångsdefinitionen för att ansluta till en OPC UA-server. Du kan använda kubectl
för att visa identifieringspodden som skapades när du lade till tillgångsslutpunkten. Poddnamnet ser ut så aio-opc-opc.tcp-1-8f96f76-kvdbt
här:
kubectl get pods -n azure-iot-operations
När OPC PLC-simulatorn körs flödar data från simulatorn, till anslutningsappen, till OPC UA-koordinatorn och slutligen till MQ-koordinatorn.
Hantera dina tillgångar
När du har valt din instans i Azure IoT Operations-portalen (förhandsversion) visas den tillgängliga listan över tillgångar på sidan Tillgångar . Om det inte finns några tillgångar ännu är listan tom:
Skapa en tillgång
Om du vill skapa en tillgång väljer du Skapa tillgång. Ange sedan följande tillgångsinformation:
Fält | Värde |
---|---|
Tillgångsnamn | thermostat |
Tillgångsslutpunkt | opc-ua-connector-0 |
beskrivning | A simulated thermostat asset |
Ta bort de befintliga anpassade egenskaperna och lägg till följande anpassade egenskaper. Var noga med att använda de exakta egenskapsnamnen, eftersom Power BI-mallen i en senare snabbstart frågar efter dem:
Egenskapsnamn | Egenskapsinformation |
---|---|
batch | 102 |
Kund | Contoso |
utrustning | Panna |
isSpare | true |
plats | Seattle |
Välj Nästa för att gå till sidan Lägg till taggar .
Skapa OPC UA-taggar
Lägg till två OPC UA-taggar på sidan Lägg till taggar . Om du vill lägga till varje tagg väljer du Lägg till tagg eller CSV och väljer sedan Lägg till tagg. Ange tagginformationen som visas i följande tabell:
Nod-ID | Taggnamn | Observerbarhetsläge |
---|---|---|
ns=3; s=FastUInt10 | temperatur | inget |
ns=3; s=FastUInt100 | Tagg 10 | inget |
Observerbarhetsläget är ett av följande värden: none
, gauge
, counter
, , histogram
eller log
.
Du kan åsidosätta standardsamplingsintervallet och köstorleken för varje tagg.
Välj Nästa för att gå till sidan Lägg till händelser och sedan Nästa för att gå till sidan Granska .
Granskning
Granska tillgångs- och tagginformationen och gör eventuella justeringar du behöver innan du väljer Skapa:
Kontrollera att data flödar
Kontrollera att data flödar till MQTT-koordinatorn med hjälp av verktyget mqttui . I det här exemplet kör du verktyget mqttui i ditt Kubernetes-kluster:
Kör följande kommando för att distribuera en podd som innehåller verktygen mqttui och mosquitto som är användbara för att interagera med MQ-koordinatorn i klustret:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
Följande kodfragment visar YAML-filen som du använde:
# 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"] resources: limits: cpu: 500m memory: 200Mi requests: cpu: 100m memory: 100Mi 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
Varning
Den här konfigurationen är inte säker. Använd inte den här konfigurationen i en produktionsmiljö.
När mqtt-client-podden körs kör du följande kommando för att skapa en gränssnittsmiljö i podden som du skapade:
kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
Kör följande kommando i gränssnittet i mqtt-client-podden för att ansluta till MQ-koordinatorn med verktyget mqttui:
mqttui -b mqtts://aio-mq-dmqtt-frontend:8883 -u '$sat' --password $(cat /var/run/secrets/tokens/mq-sat) --insecure
Om du vill kontrollera att termostattillgången som du har lagt till publicerar data kan du visa telemetrin i ämnet azure-iot-operations/data
:
Dricks
Data från en tillgång med ett namn som börjar med pannor – kommer från en tillgång som identifierades automatiskt. Det här är inte samma tillgång som termostattillgången som du skapade.
Om inga data flödar startar du om aio-opc-opc.tcp-1
podden:
Hitta namnet på din
aio-opc-opc.tcp-1
podd med hjälp av följande kommando:kubectl get pods -n azure-iot-operations
Namnet på din podd ser ut som
aio-opc-opc.tcp-1-849dd78866-vhmz6
.aio-opc-opc.tcp-1
Starta om podden med hjälp av ett kommando som ser ut som i följande exempel.aio-opc-opc.tcp-1
Använd poddnamnet från föregående steg:kubectl delete pod aio-opc-opc.tcp-1-849dd78866-vhmz6 -n azure-iot-operations
Exempeltaggar som du lade till i föregående snabbstart genererar meddelanden från din tillgång som ser ut som följande exempel:
{
"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
}
Identifiera OPC UA-datakällor med azure IoT Akri Preview
I föregående avsnitt såg du hur du lägger till tillgångar manuellt. Du kan också använda Azure IoT Akri Preview för att automatiskt identifiera OPC UA-datakällor och skapa anpassade Akri-instansresurser som representerar de identifierade enheterna. För närvarande kan Akri inte identifiera och skapa tillgångar som kan matas in i förhandsversionen av Azure Device Registry.
När du distribuerar Azure IoT Operations innehåller distributionen Akri-identifieringshanterarens poddar. Kontrollera att poddarna körs genom att köra följande kommando:
kubectl get pods -n azure-iot-operations | grep akri
Utdata från föregående kommando ser ut som i följande exempel:
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
Använd följande kommando för att kontrollera att identifieringspodden körs:
kubectl get pods -n azure-iot-operations | grep discovery
Utdata från föregående kommando ser ut som i följande exempel:
aio-opc-asset-discovery-wzlnj 1/1 Running 0 19m
Dricks
Det finns för närvarande ett känt problem där Akri-identifieringshanterarens podd kanske inte startar. Om du stöter på det här problemet kan du läsa Felsöka förhandsversionen av Azure IoT Akri.
Kontrollera konfigurationen genom att köra följande kommando för att visa Akri-instanserna som representerar OPC UA-datakällorna som identifierats av Akri:
kubectl get akrii -n azure-iot-operations
Utdata från föregående kommando ser ut som i följande exempel.
NAME CONFIG SHARED NODES AGE
akri-opcua-asset-dbdef0 akri-opcua-asset true ["k3d-k3s-default-server-0"] 45s
Nu kan du använda dessa resurser i det lokala klusternamnområdet.
För att bekräfta att Akri är ansluten till OPC UA Broker kopierar och klistrar du in namnet på Akri-instansen från föregående steg i följande kommando:
kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json
Kommandoutdata ser ut som i följande exempel. Det här exempelutdraget från utdata visar Akri-instansvärdena brokerProperties
och bekräftar att OPC UA Broker är ansluten.
"spec": {
"brokerProperties": {
"ApplicationUri": "Boiler #2",
"AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……
Hur löste vi problemet?
I den här snabbstarten lade du till en tillgångsslutpunkt och definierade sedan en tillgång och taggar. Tillgångarna och taggarna modellerar data från OPC UA-servern för att göra data enklare att använda i en MQTT-koordinator och andra underordnade processer. Du använder termostattillgången som du definierade i nästa snabbstart.
Rensa resurser
Om du inte kommer att använda den här distributionen ytterligare tar du bort Kubernetes-klustret där du distribuerade Azure IoT Operations och tar bort den Azure-resursgrupp som innehåller klustret.
Gå vidare
Snabbstart: Skicka tillgångstelemetri till molnet med data lake connector för Azure IoT MQ.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för