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.

Skärmbild som visar noden otilldelade instanser i Azure IoT Operations-portalen (förhandsversion).

Välj din instans

Välj den instans där du distribuerade Azure IoT Operations i föregående snabbstart:

Skärmbild av instanslistan för Azure IoT Operations.

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:

  1. Välj Hantera tillgångsslutpunkter och sedan Skapa tillgångsslutpunkt:

    Skärmbild som visar sidan tillgångsslutpunkter i Azure IoT Operations-portalen (förhandsversion).

  2. 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
  3. 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ända kubectl 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:

  1. 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 .

  2. 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.

  3. 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-kvdbthä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:

Skärmbild av tom tillgångslista för Azure IoT Operations.

Skapa en tillgång

Om du vill skapa en tillgång väljer du Skapa tillgång.

Ange 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

Skärmbild av sidan med information om Azure IoT Operations-tillgångar.

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, , histogrameller log.

Du kan åsidosätta standardsamplingsintervallet och köstorleken för varje tagg.

Skärmbild av sidan Lägg till tagg i Azure IoT Operations.

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:

Skärmbild av sidan Skapa tillgångsgranskning i Azure IoT Operations.

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:

  1. 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"]
        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ö.

  2. 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
    
  3. 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 :

Skärmbild av mqttui-ämnesvisningen som visar temperaturtelemetrin.

Om inga data flödar startar du om aio-opc-opc.tcp-1 podden:

  1. 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.

  2. 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
kubectl get pods -n azure-iot-operations |  Select-String -Pattern "akri"

Utdata från föregående kommando ser ut som i följande exempel:

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

På den dator där Kubernetes-klustret körs kör du följande kommando för att tillämpa en ny konfiguration för identifieringshanteraren:

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

Följande kodfragment visar YAML-filen som du använde:

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

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

Det kan ta några minuter innan instansen visas.

Utdata från föregående kommando ser ut som i följande exempel.

NAMESPACE              NAME                      CONFIG             SHARED   NODES            AGE
azure-iot-operations   akri-opcua-asset-dbdef0   akri-opcua-asset   true     ["dom-aio-vm"]   35m

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.