Zjišťování zdrojů dat OPC UA pomocí služeb Akri
Důležité
Azure IoT Operations Preview – Služba Azure Arc je aktuálně ve verzi PREVIEW. Tento software ve verzi Preview byste neměli používat v produkčních prostředích.
Pokud je dostupná obecně dostupná verze, budete muset nasadit novou instalaci operací Azure IoT, nebudete moct upgradovat instalaci ve verzi Preview.
Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
V tomto článku se dozvíte, jak automaticky zjišťovat zdroje dat OPC UA. Po nasazení Azure IoT Operations Preview nakonfigurujete služby Akri tak, aby na hraničních zařízeních vyhledály zdroje dat OPC UA. Služby Akri vytvářejí vlastní prostředky v clusteru Kubernetes, které představují zdroje dat, které zjistí. Možnost zjistit zdroje dat OPC UA eliminuje potřebu je ručně nakonfigurovat pomocí webového uživatelského rozhraní provozního prostředí.
Důležité
V současné době nemůžete pomocí služby Azure Device Registry spravovat prostředky, které služby Akri zjišťují a vytvářejí.
Služby Akri umožňují detekovat a vytvářet prostředky v adresních prostorech serveru OPC UA. Detekce prostředků OPC UA generuje AssetType
a Asset
vlastní prostředky pro prostředky kompatibilní se specifikací OPC UA Device Integration (DI).
Požadavky
Nainstalujte Azure IoT Operations Preview.
Spuštěním následujícího příkazu ověřte, že jsou pody služeb Akri správně nakonfigurované:
kubectl get pods -n azure-iot-operations
Výstup obsahuje řádek, který zobrazuje spuštěné agenta Akri a pody zjišťování:
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
Konfigurace obslužné rutiny zjišťování OPC UA
Pokud chcete nakonfigurovat obslužnou rutinu zjišťování OPC UA pro detekci prostředků, vytvořte konfigurační soubor YAML, který obsahuje hodnoty popsané v této části:
Název | Povinné | Datatype | Výchozí | Komentář |
---|---|---|---|---|
EndpointUrl |
true | String | null | Adresa URL koncového bodu OPC UA, která se má použít ke zjišťování prostředků |
AutoAcceptUntrustedCertificates |
true ¹ | Logický | false (nepravda) | Má klient automaticky přijímat nedůvěryhodné certifikáty? Certifikát může být automaticky považován za důvěryhodný pouze v případě, že během ověřování řetězu nedošlo k žádným nestisknutelným chybám. Certifikát s neúplným řetězem například není přijat. |
UseSecurity |
true ¹ | Logická hodnota | true | Má klient používat zabezpečené připojení? |
UserName |
false (nepravda) | String | null | Uživatelské jméno pro ověřování uživatelů. ² |
Password |
false (nepravda) | String | null | Heslo pro ověřování uživatelů. ² |
¹ Aktuální verze obslužné rutiny zjišťování podporuje UseSecurity=false
a vyžaduje autoAcceptUntrustedCertificates=true
.
² Dočasná implementace, dokud služby Akri nebudou moct předávat tajné kódy Kubernetes.
Následující příklad ukazuje zjišťování serveru OPC PLC. Můžete přidat parametry assetu pro více serverů OPC PLC.
Chcete-li vytvořit konfigurační soubor YAML, zkopírujte a vložte následující obsah do nového souboru a uložte ho takto
opcua-configuration.yaml
:Pokud používáte simulovaný server PLC nasazený pomocí rychlého startu Azure IoT Operations, nemusíte měnit
endpointUrl
. Pokud máte spuštěné vlastní servery OPC UA nebo používáte simulované servery PLC nasazené v Azure, přidejte odpovídajícím způsobem adresu URL koncového bodu. Adresy URL koncového bodu zjišťování vypadají taktoopc.tcp://<FQDN>:50000/
. Pokud chcete najít plně kvalifikované názvy domén serverů OPC PLC, přejděte k nasazení na webu Azure Portal. Pro každý server zkopírujte a vložte hodnotu plně kvalifikovaného názvu domény do adres URL koncového bodu.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
Konfiguraci použijete spuštěním následujícího příkazu:
kubectl apply -f opcua-configuration.yaml -n azure-iot-operations
Tip
Ve výchozím nasazení operací Azure IoT je obslužná rutina zjišťování OPC UA už nakonfigurovaná tak, aby objevila simulovaný server PLC. Pokud chcete zjistit prostředky připojené k dalším serverům OPC UA, můžete je přidat do konfiguračního souboru.
Ověření konfigurace
Pokud chcete ověřit, že je kontejner zjišťování prostředků nakonfigurovaný a spuštěný:
Pomocí následujícího příkazu zkontrolujte protokoly podů:
kubectl logs <insert aio-opc-asset-discovery pod name> -n azure-iot-operations
Protokol z podu
aio-opc-asset-discovery
označuje po několika sekundách, že obslužná rutina zjišťování se zaregistrovala ve službách Akri: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
Přibližně za minutu služba Akri vydá první požadavek na zjišťování na základě konfigurace:
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
Po dokončení zjišťování obslužná rutina zjišťování odešle výsledek zpět do služeb Akri a vytvoří vlastní prostředek instance Akri s informacemi o prostředku a pozorovatelnými proměnnými. Obslužná rutina zjišťování opakuje zjišťování každých 10 minut, aby zjistila všechny změny na serveru.
Pokud chcete zobrazit zjištěné instance Akri, spusťte následující příkaz:
kubectl get akrii -n azure-iot-operations
Výstup z předchozího příkazu vypadá jako v následujícím příkladu. Možná budete muset několik sekund počkat, než se instance Akri vytvoří:
NAME CONFIG SHARED NODES AGE akri-opcua-asset-dbdef0 akri-opcua-asset true ["k3d-k3s-default-server-0"] 24h
Konektor pro správce OPC UA sleduje nové vlastní prostředky instance Akri typu
opc-ua-asset
a vygeneruje pro ně počáteční typy prostředků a vlastní prostředky prostředku. Vlastní prostředky prostředku můžete upravit přidáním nastavení, jako je rozšířené publikování pro více datových bodů nebo konektoru pro nastavení pozorovatelnosti OPC UA.Pokud chcete ověřit, že se instance Akri správně připojila ke konektoru pro OPC UA, spusťte následující příkaz. Zástupný symbol nahraďte názvem instance Akri, která byla zahrnuta ve výstupu předchozího příkazu:
kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json
Výstup příkazu obsahuje oddíl, který vypadá jako v následujícím příkladu. Fragment kódu zobrazuje hodnoty instance
brokerProperties
Akri a potvrzuje, že je konektor pro OPC UA připojený."spec": { "brokerProperties": { "ApplicationUri": "Boiler #2", "AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……