Sdílet prostřednictvím


Rychlý start: Přidání prostředků OPC UA do clusteru Azure IoT Operations Preview

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.

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 rychlém startu ručně přidáte prostředky OPC UA do clusteru Azure IoT Operations Preview. Tyto prostředky publikují zprávy do zprostředkovatele Azure IoT MQ Preview ve vašem clusteru Azure IoT Operations. Tento postup obvykle provede uživatel OT.

Prostředek je fyzické zařízení nebo logická entita, která představuje zařízení, počítač, systém nebo proces. Například fyzické aktivum může být pumpa, motor, nádrž nebo výrobní linka. Logický prostředek, který definujete, může mít vlastnosti, streamovat telemetrii nebo generovat události.

Servery OPC UA jsou softwarové aplikace, které komunikují s prostředky. Značky OPC UA jsou datové body, které servery OPC UA zveřejňují. Značky OPC UA můžou poskytovat historická data o stavu, výkonu, kvalitě nebo stavu prostředků v reálném čase.

V tomto rychlém startu vytvoříte prostředky pomocí portálu Azure IoT Operations (Preview). Některé z těchto úloh můžete provést také pomocí Azure CLI.

Požadavky

Úplný rychlý start: Před zahájením tohoto rychlého startu nasaďte Azure IoT Operations Preview do clusteru Kubernetes s podporou Arc.

Pokud se chcete přihlásit k portálu Azure IoT Operations (Preview), potřebujete pracovní nebo školní účet v tenantovi, ve kterém jste nasadili operace Azure IoT. Pokud aktuálně používáte účet Microsoft (MSA), musíte vytvořit ID Microsoft Entra s alespoň oprávněními přispěvatele pro skupinu prostředků, která obsahuje vaši instanci Kubernetes – Azure Arc . Další informace najdete v tématu Známé problémy > vytvoření účtu Entra.

Jaký problém vyřešíme?

Data, která servery OPC UA zpřístupňují, můžou mít složitou strukturu a mohou být obtížně pochopitelné. Operace Azure IoT poskytují způsob, jak modelovat prostředky OPC UA jako značky, události a vlastnosti. Toto modelování usnadňuje pochopení dat a jejich použití v podřízených procesech, jako je zprostředkovatel MQ a kanály Azure IoT Data Processor Preview.

Přihlášení k portálu Azure IoT Operations (Preview)

Pokud chcete vytvářet koncové body prostředků, prostředky a přihlásit se k odběru značek a událostí OPC UA, použijte portál Azure IoT Operations (Preview). V prohlížeči přejděte na portál Azure IoT Operations (Preview) a přihlaste se pomocí přihlašovacích údajů Microsoft Entra ID.

Důležité

K přihlášení k portálu Azure IoT Operations (Preview) musíte použít pracovní nebo školní účet. Další informace najdete v tématu Známé problémy > vytvoření účtu Entra.

Vyberte svůj web.

Po přihlášení se na portálu zobrazí seznam webů, ke kterým máte přístup. Každý web je kolekce instancí operací Azure IoT, kde můžete nakonfigurovat prostředky. Správce IT zodpovídá za uspořádání instancí na webech a udělení přístupu uživatelům OT ve vaší organizaci. Vzhledem k tomu, že pracujete s novým nasazením, ještě neexistují žádné weby. Cluster, který jste vytvořili v předchozím rychlém startu, najdete výběrem nepřiřazených instancí. Instance na portálu představuje cluster, ve kterém jste nasadili operace Azure IoT.

Snímek obrazovky znázorňující uzel nepřiřazených instancí na portálu Azure IoT Operations (Preview)

Vyberte instanci.

V předchozím rychlém startu vyberte instanci, ve které jste nasadili operace Azure IoT:

Snímek obrazovky se seznamem instancí operací Azure IoT

Tip

Pokud nevidíte žádné instance, možná nejste ve správném tenantovi Microsoft Entra ID. Tenanta můžete změnit v pravé horní nabídce na portálu.

Přidání koncového bodu prostředku

Při nasazení operací Azure IoT jste se rozhodli zahrnout integrovaný simulátor OPC PLC. V tomto kroku přidáte koncový bod prostředku, který vám umožní připojit se k simulátoru OPC PLC.

Přidání koncového bodu prostředku:

  1. Vyberte koncové body assetu a pak vytvořte koncový bod prostředku:

    Snímek obrazovky znázorňující stránku koncových bodů prostředku na portálu Azure IoT Operations (Preview)

  2. Zadejte následující informace o koncovém bodu:

    Pole Hodnota
    Název koncového bodu prostředku opc-ua-connector-0
    Adresa URL serveru OPC UA opc.tcp://opcplc-000000:50000
    Režim ověřování uživatelů Anonymous
    Ověřování přenosu Do not use transport authentication certificate
  3. Pokud chcete definici uložit, vyberte Vytvořit.

    Tato konfigurace nasadí do clusteru nový koncový bod prostředku volaný opc-ua-connector-0 . Můžete použít kubectl k zobrazení koncových bodů prostředku:

    kubectl get assetendpointprofile -n azure-iot-operations
    

Konfigurace simulátoru

Tyto rychlé starty používají simulátor OPC PLC ke generování ukázkových dat. Pokud chcete scénář rychlého startu povolit, musíte nakonfigurovat koncový bod prostředku tak, aby se připojil bez navázání vzájemného vztahu důvěryhodnosti. Tato konfigurace se nedoporučuje pro produkční ani předprodukční prostředí:

  1. Pokud chcete nakonfigurovat koncový bod prostředku pro scénář rychlého startu, spusťte následující příkaz:

    kubectl patch AssetEndpointProfile opc-ua-connector-0 -n azure-iot-operations --type=merge -p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"opc-ua-connector-0\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'
    

    Upozornění

    Tuto konfiguraci nepoužívejte v produkčním nebo předprodukčním prostředí. Zveřejnění clusteru na internet bez správného ověřování může vést k neoprávněnému přístupu a dokonce útokům DDOS.

    Další informace najdete v části Nasazení simulátoru OPC PLC.

  2. Pokud chcete povolit, aby se změny konfigurace projevily okamžitě, nejprve pomocí následujícího příkazu vyhledejte název podu aio-opc-supervisor :

    kubectl get pods -n azure-iot-operations
    

    Název podu vypadá takto aio-opc-supervisor-956fbb649-k9ppr.

  3. aio-opc-supervisor Restartujte pod pomocí příkazu, který vypadá jako v následujícím příkladu. Použijte název podu aio-opc-supervisor z předchozího kroku:

    kubectl delete pod aio-opc-supervisor-956fbb649-k9ppr -n azure-iot-operations
    

Po definování prostředku ho pod konektorU OPC UA zjistí. Pod používá koncový bod prostředku, který zadáte v definici prostředku pro připojení k serveru OPC UA. Můžete použít kubectl k zobrazení podu zjišťování, který byl vytvořen při přidání koncového bodu prostředku. Název podu vypadá takto aio-opc-opc.tcp-1-8f96f76-kvdbt:

kubectl get pods -n azure-iot-operations

Když je simulátor OPC PLC spuštěný, data proudí ze simulátoru, do konektoru, do zprostředkovatele OPC UA a nakonec do zprostředkovatele MQ.

Správa vašich prostředků

Po výběru instance na portálu Azure IoT Operations (Preview) se na stránce Prostředky zobrazí dostupný seznam prostředků. Pokud ještě žádné prostředky neexistují, je tento seznam prázdný:

Snímek obrazovky se seznamem prázdných prostředků operací Azure IoT

Vytvoření majetku

Pokud chcete vytvořit prostředek, vyberte Vytvořit prostředek. Pak zadejte následující informace o aktivech:

Pole Hodnota
Název prostředku thermostat
Koncový bod prostředku opc-ua-connector-0
Popis A simulated thermostat asset

Odeberte existující vlastní vlastnosti a přidejte následující vlastní vlastnosti. Dávejte pozor, abyste použili přesné názvy vlastností, protože šablona Power BI v pozdějším rychlém startu se na ně dotazuje:

Název vlastnosti Podrobnosti o vlastnosti
batch 102
Zákazník Contoso
vybavení Kotel
isSpare true
location Seattle

Snímek obrazovky se stránkou podrobností o prostředku azure IoT Operations

Výběrem možnosti Další přejděte na stránku Přidat značky .

Vytvoření značek OPC UA

Přidejte dvě značky OPC UA na stránce Přidat značky . Pokud chcete přidat každou značku, vyberte Přidat značku nebo CSV a pak vyberte Přidat značku. Zadejte podrobnosti o značce uvedené v následující tabulce:

ID uzlu Název značky Režim pozorovatelnosti
ns=3; s=FastUInt10 Teplota Žádná
ns=3; s=FastUInt100 Značka 10 Žádná

Režim pozorovatelnosti je jedna z následujících hodnot: none, gauge, counter, histogram, nebo log.

Výchozí interval vzorkování a velikost fronty pro každou značku můžete přepsat.

Snímek obrazovky se stránkou přidání značky operací Azure IoT

Výběrem možnosti Další přejdete na stránku Přidat události a pak přejdete na stránku Revize.

Přehled

Než vyberete Vytvořit, zkontrolujte podrobnosti o prostředku a značkách a proveďte potřebné úpravy:

Snímek obrazovky se stránkou pro kontrolu prostředku operace Azure IoT

Ověření toku dat

Pomocí nástroje mqttui ověřte, že data proudí do zprostředkovatele MQTT. V tomto příkladu spustíte nástroj mqttui v clusteru Kubernetes:

  1. Spuštěním následujícího příkazu nasaďte pod, který obsahuje nástroje mqttui a mosquitto , které jsou užitečné pro interakci s zprostředkovatelem MQ v clusteru:

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

    Následující fragment kódu ukazuje použitý soubor YAML:

    # 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
    

    Upozornění

    Tato konfigurace není zabezpečená. Tuto konfiguraci nepoužívejte v produkčním prostředí.

  2. Když je pod mqtt-client spuštěný, spuštěním následujícího příkazu vytvořte prostředí v podu, který jste vytvořili:

    kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
    
  3. V prostředí podu mqtt-client spusťte následující příkaz pro připojení ke zprostředkovateli MQ pomocí nástroje mqttui :

    mqttui -b mqtts://aio-mq-dmqtt-frontend:8883 -u '$sat' --password $(cat /var/run/secrets/tokens/mq-sat) --insecure
    

Pokud chcete ověřit, že přidaný termostatický prostředek publikuje data, podívejte se na telemetrii v azure-iot-operations/data tématu:

Snímek obrazovky s tématem mqttui zobrazující telemetrii teploty

Tip

Data z prostředku s názvem začínajícím kotlem jsou z prostředku, který byl automaticky zjištěn. Nejedná se o stejný prostředek jako prostředek termostatu, který jste vytvořili.

Pokud tok dat neexistuje, restartujte pod aio-opc-opc.tcp-1 :

  1. Pomocí následujícího příkazu najděte název podu aio-opc-opc.tcp-1 :

    kubectl get pods -n azure-iot-operations
    

    Název podu vypadá takto aio-opc-opc.tcp-1-849dd78866-vhmz6.

  2. aio-opc-opc.tcp-1 Restartujte pod pomocí příkazu, který vypadá jako v následujícím příkladu. Použijte název podu aio-opc-opc.tcp-1 z předchozího kroku:

    kubectl delete pod aio-opc-opc.tcp-1-849dd78866-vhmz6 -n azure-iot-operations
    

Ukázkové značky, které jste přidali v předchozím rychlém startu, generují zprávy z vašeho prostředku, které vypadají jako následující příklady:

{
    "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
}

Zjišťování zdrojů dat OPC UA pomocí Azure IoT Akri Preview

V předchozí části jste viděli, jak přidat prostředky ručně. Azure IoT Akri Preview můžete také použít k automatickému zjišťování zdrojů dat OPC UA a vytvoření vlastních prostředků instance Akri, které představují zjištěná zařízení. Akri v současné době nedokáže rozpoznat a vytvořit prostředky, které je možné ingestovat do služby Azure Device Registry Preview.

Při nasazování operací Azure IoT zahrnuje nasazení pody obslužné rutiny zjišťování Akri. Pokud chcete ověřit, že jsou tyto pody spuštěné, spusťte následující příkaz:

kubectl get pods -n azure-iot-operations | grep akri

Výstup z předchozího příkazu vypadá jako v následujícím příkladu:

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

Pomocí následujícího příkazu ověřte, že je pod zjišťování spuštěný:

kubectl get pods -n azure-iot-operations | grep discovery

Výstup z předchozího příkazu vypadá jako v následujícím příkladu:

aio-opc-asset-discovery-wzlnj                   1/1     Running     0              19m

Tip

V současné době existuje známý problém, kdy se pod obslužné rutiny zjišťování Akri nemusí spustit. Pokud narazíte na tento problém, přečtěte si téma Řešení potíží s Azure IoT Akri Preview.

Pokud chcete ověřit konfiguraci, spuštěním následujícího příkazu zobrazte instance Akri, které představují zdroje dat OPC UA zjištěné Akri:

kubectl get akrii -n azure-iot-operations

Výstup z předchozího příkazu vypadá jako v následujícím příkladu.

NAME                      CONFIG             SHARED   NODES                          AGE
akri-opcua-asset-dbdef0   akri-opcua-asset   true     ["k3d-k3s-default-server-0"]   45s

Tyto prostředky teď můžete použít v oboru názvů místního clusteru.

Pokud chcete potvrdit, že Akri je připojený ke zprostředkovateli OPC UA, zkopírujte a vložte název instance Akri z předchozího kroku do následujícího příkazu:

kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json

Výstup příkazu vypadá jako v následujícím příkladu. Tento příklad výňatek z výstupu zobrazuje hodnoty instance brokerProperties Akri a potvrzuje, že je zprostředkovatel OPC UA připojený.

"spec": {

        "brokerProperties": {
            "ApplicationUri": "Boiler #2",
            "AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……

Jak jsme tento problém vyřešili?

V tomto rychlém startu jste přidali koncový bod assetu a pak definovali prostředek a značky. Prostředky a značky modelují data ze serveru OPC UA, aby se data snadněji používala ve zprostředkovateli MQTT a dalších podřízených procesech. Použijete termostatický prostředek, který jste definovali v dalším rychlém startu.

Vyčištění prostředků

Pokud toto nasazení nebudete dál používat, odstraňte cluster Kubernetes, ve kterém jste nasadili operace Azure IoT, a odeberte skupinu prostředků Azure, která tento cluster obsahuje.

Další krok

Rychlý start: Odeslání telemetrie prostředků do cloudu pomocí konektoru Data Lake pro Azure IoT MQ