Identifiera OPC UA-datakällor med hjälp av Akri-tjänsterna
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.
Du måste distribuera en ny Azure IoT Operations-installation när en allmänt tillgänglig version görs tillgänglig. Du kommer inte att kunna uppgradera en förhandsversionsinstallation.
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 artikeln lär du dig att identifiera OPC UA-datakällor automatiskt. När du har distribuerat Förhandsversionen av Azure IoT Operations konfigurerar du Akri-tjänsterna för att identifiera OPC UA-datakällor vid gränsen. Akri-tjänsterna skapar anpassade resurser i ditt Kubernetes-kluster som representerar de datakällor som identifieras. Möjligheten att identifiera OPC UA-datakällor tar bort behovet av att konfigurera dem manuellt med hjälp av webbgränssnittet för driftsmiljön.
Viktigt!
För närvarande kan du inte använda Azure Device Registry för att hantera de tillgångar som Akri-tjänsterna identifierar och skapar.
Med Akri-tjänsterna kan du identifiera och skapa tillgångar i adressutrymmet på en OPC UA-server. OPC UA-tillgångsidentifieringen AssetType
genererar och Asset
anpassade resurser för OPC UA Device Integration (DI) specifikationskompatibla tillgångar.
Förutsättningar
Installera Förhandsversionen av Azure IoT Operations.
Kontrollera att Akri-tjänstpoddarna är korrekt konfigurerade genom att köra följande kommando:
kubectl get pods -n azure-iot-operations
Utdata innehåller en rad som visar att Akri-agenten och identifieringspoddarna körs:
NAME READY STATUS RESTARTS AGE aio-akri-agent-daemonset-hwpc7 1/1 Running 0 17mk0s aio-opc-asset-discovery-wzlnj 1/1 Running 0 8m28s
Konfigurera OPC UA-identifieringshanteraren
Om du vill konfigurera OPC UA-identifieringshanteraren för tillgångsidentifiering skapar du en YAML-konfigurationsfil som innehåller de värden som beskrivs i det här avsnittet:
Name | Obligatorisk | Datatyp | Standardvärde | Kommentar |
---|---|---|---|---|
EndpointUrl |
true | String | NULL | OPC UA-slutpunkts-URL:en som ska användas för tillgångsidentifiering |
AutoAcceptUntrustedCertificates |
sant ¹ | Boolean | falskt | Ska klientens autoaccepta ej betrodda certifikat? Ett certifikat kan bara godkännas automatiskt som betrott om inga icke-övertryckbara fel inträffade under kedjevalidering. Ett certifikat med ofullständig kedja accepteras till exempel inte. |
UseSecurity |
sant ¹ | Booleskt | true | Ska klienten använda en säker anslutning? |
UserName |
falskt | String | NULL | Användarnamnet för användarautentisering. ² |
Password |
falskt | String | NULL | Lösenordet för användarautentisering. ² |
¹ Den aktuella versionen av identifieringshanteraren stöder UseSecurity=false
och kräver autoAcceptUntrustedCertificates=true
bara .
² En tillfällig implementering tills Akri-tjänsterna kan skicka Kubernetes-hemligheter.
I följande exempel visas identifiering av en OPC PLC-server. Du kan lägga till tillgångsparametrarna för flera OPC PLC-servrar.
Om du vill skapa YAML-konfigurationsfilen kopierar du och klistrar in följande innehåll i en ny fil och sparar den som
opcua-configuration.yaml
:Om du använder den simulerade PLC-servern som distribuerades med Azure IoT Operations-snabbstarten
endpointUrl
behöver du inte ändra . Om du har egna OPC UA-servrar som körs eller använder de simulerade PLC-servrarna som distribueras i Azure lägger du till din slutpunkts-URL i enlighet med detta. Url:er för identifieringsslutpunkter ser ut somopc.tcp://<FQDN>:50000/
. Om du vill hitta FQDN för dina OPC PLC-servrar går du till distributionen i Azure-portalen. För varje server kopierar och klistrar du in FQDN-värdet i dina slutpunkts-URL:er.apiVersion: akri.sh/v0 kind: Configuration metadata: name: aio-akri-opcua-asset 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
Kör följande kommando för att tillämpa konfigurationen:
kubectl apply -f opcua-configuration.yaml -n azure-iot-operations
Dricks
I en standarddistribution av Azure IoT Operations är OPC UA-identifieringshanteraren redan konfigurerad för att identifiera den simulerade PLC-servern. Om du vill identifiera tillgångar som är anslutna till ytterligare OPC UA-servrar kan du lägga till dem i konfigurationsfilen.
Kontrollera konfigurationen
Så här bekräftar du att containern för tillgångsidentifiering är konfigurerad och körs:
Använd följande kommando för att kontrollera poddloggarna:
kubectl logs <insert aio-opc-asset-discovery pod name> -n azure-iot-operations
En logg från
aio-opc-asset-discovery
podden anger efter några sekunder att identifieringshanteraren registrerade sig med Akri-tjänsterna:2024-08-01T15:04:12.948Z aio-opc-asset-discovery-4nsgs - OPC UA SDK 1.5.374.70 from 07/20/2024 07:37:16 2024-08-01T15:04:12.973Z aio-opc-asset-discovery-4nsgs - OPC UA SDK informational version: 1.5.374.70+1ee3beb87993019de4968597d17cb54d5a4dc3c8 2024-08-01T15:04:12.976Z aio-opc-asset-discovery-4nsgs - Akri agent registration enabled: True 2024-08-01T15:04:13.475Z aio-opc-asset-discovery-4nsgs - Hosting starting 2024-08-01T15:04:13.547Z aio-opc-asset-discovery-4nsgs - Overriding HTTP_PORTS '8080' and HTTPS_PORTS ''. Binding to values defined by URLS instead 'http://+:8080'. 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Now listening on: http://:8080 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Application started. Press Ctrl+C to shut down. 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Hosting environment: Production 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Content root path: /app 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Hosting started 2024-08-01T15:04:13.881Z aio-opc-asset-discovery-4nsgs - Registering with Agent as HTTP endpoint using own IP from the environment variable POD_IP: 10.42.0.245 2024-08-01T15:04:14.875Z aio-opc-asset-discovery-4nsgs - Registered with the Akri agent with name opcua-asset for http://10.42.0.245:8080 with type Network and shared True 2024-08-01T15:04:14.877Z aio-opc-asset-discovery-4nsgs - Successfully re-registered OPC UA Asset Discovery Handler with the Akri agent 2024-08-01T15:04:14.877Z aio-opc-asset-discovery-4nsgs - Press CTRL+C to exit
Efter ungefär en minut utfärdar Akri-tjänsterna den första identifieringsbegäran baserat på konfigurationen:
2024-08-01T15:04:15.280Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Reading message. 2024-08-01T15:04:15.477Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Received discovery request from ipv6:[::ffff:10.42.0.241]:48638 2024-08-01T15:04:15.875Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Start asset discovery 2024-08-01T15:04:15.882Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Discovering OPC UA opc.tcp://opcplc-000000:50000 using Asset Discovery 2024-08-01T15:04:15.882Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Selected AutoAcceptUntrustedCertificates mode: False
När identifieringen är klar skickar identifieringshanteraren resultatet tillbaka till Akri-tjänsterna för att skapa en anpassad Akri-instansresurs med tillgångsinformation och observerbara variabler. Identifieringshanteraren upprepar identifieringen var 10:e minut för att identifiera eventuella ändringar på servern.
Om du vill visa de identifierade Akri-instanserna kör du följande kommando:
kubectl get akrii -n azure-iot-operations
Utdata från föregående kommando ser ut som i följande exempel. Du kan behöva vänta några sekunder tills Akri-instansen har skapats:
NAME CONFIG SHARED NODES AGE akri-opcua-asset-dbdef0 akri-opcua-asset true ["k3d-k3s-default-server-0"] 24h
Anslutningsappen för OPC UA-övervakaren söker efter nya anpassade Akri-instansresurser av typen
opc-ua-asset
och genererar de första tillgångstyperna och anpassade resurser för dem. Du kan ändra anpassade resurser för tillgångar genom att lägga till inställningar som utökad publicering för fler datapunkter eller anslutningsprogram för OPC UA-observabilitetsinställningar.Kontrollera att Akri-instansen är korrekt ansluten till anslutningsappen för OPC UA genom att köra följande kommando. Ersätt platshållaren med namnet på akri-instansen som ingick i utdata från föregående kommando:
kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json
Kommandoutdata innehåller ett avsnitt som ser ut som i följande exempel. Kodfragmentet visar Akri-instansvärdena
brokerProperties
och bekräftar att anslutningsappen för OPC UA är ansluten."spec": { "brokerProperties": { "ApplicationUri": "Boiler #2", "AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……