Dela via


Konfigurera medieanslutningsappen (förhandsversion)

I Azure IoT Operations ger medieanslutningsappen (förhandsversion) åtkomst till media från mediekällor, till exempel gränsanslutna kameror.

En tillgång i Azure IoT Operations är en logisk entitet som du skapar för att representera en fysisk tillgång eller enhet. En Azure IoT Operations-tillgång kan ha anpassade egenskaper, datapunkter, strömmar och händelser som beskriver dess beteende och egenskaper. En tillgång är associerad med en eller flera enheter. Azure IoT Operations lagrar tillgångsdefinitioner i Azure Device Registry.

En enhet i Azure IoT Operations är en logisk entitet som definierar anslutningarna till fysiska tillgångar eller enheter. Utan en enhet kan data inte flöda från en fysisk enhet eller tillgång till MQTT-koordinatorn. När du konfigurerar en enhet och tillgång upprättas en anslutning till den fysiska tillgången eller enheten och datapunktsvärden, händelser och strömmar som kommer till Azure IoT Operations-instansen. En enhet har en eller flera inkommande slutpunkter. Azure IoT Operations lagrar enhetsdefinitioner i Azure Device Registry.

Den här artikeln beskriver hur du använder medieanslutningsappen för att utföra uppgifter som:

  • Definiera de enheter som ansluter mediekällor till din Azure IoT Operations-instans.
  • Lägg till tillgångar och definiera deras strömmar för att samla in media från mediekällan.
  • Skicka en bild till MQTT-mäklare.
  • Spara ett videoklipp i Azure Storage.

Förutsättningar

För att konfigurera enheter och tillgångar behöver du en förhandsversionsinstans av Azure IoT Operations.

För att logga in på webbgränssnittet för driftsupplevelsen behöver du ett Microsoft Entra-ID-konto med minst deltagarbehörighet för resursgruppen som innehåller din Kubernetes – Azure Arc-instans . Du kan inte logga in med ett Microsoft-konto (MSA). Så här skapar du ett lämpligt Microsoft Entra-ID-konto i din Azure-klientorganisation:

  1. Logga in på Azure Portal med samma klient och användarnamn som du använde för att distribuera Azure IoT Operations.
  2. I Azure Portal går du till avsnittet Microsoft Entra-ID och väljer Användare > + Ny användare > Skapa ny användare. Skapa en ny användare och anteckna lösenordet. Du behöver det för att logga in senare.
  3. I Azure Portal går du till resursgruppen som innehåller Kubernetes – Azure Arc-instansen. På sidan Åtkomstkontroll (IAM) väljer du +Lägg till > rolltilldelning.
  4. På sidan Lägg till rolltilldelning väljer du Privilegierade administratörsroller. Välj sedan Deltagare och välj sedan Nästa.
  5. På sidan Medlemmar lägger du till din nya användare i rollen.
  6. Välj Granska och tilldela för att slutföra konfigurationen av den nya användaren.

Du kan nu använda det nya användarkontot för att logga in på webbgränssnittet för driftupplevelse .

En kamera som är ansluten till nätverket och som är tillgänglig från ditt Azure IoT Operations-kluster. Kameran måste ha stöd för realtidsströmningsprotokollet för videoströmning. Du behöver också kamerans användarnamn och lösenord för att autentisera med den.

Typer av mediekällor

Medieanslutningsappen kan ansluta till olika källor, inklusive:

Mediekälla Exempel-URL:er Noteringar
Kantansluten kamera file://host/dev/video0
file://host/dev/usb0
Ingen autentisering krävs. URL:en refererar till enhetsfilen. Ansluter till en nod med hjälp av USB, FireWire, MIPI eller ett egenutvecklat gränssnitt.
IP-kamera rtsp://192.168.178.45:554/stream1 JPEG via HTTP för ögonblicksbilder, RTSP/RTCP/RTP/MJPEG-TS för videoströmmar. En IP-kamera kan också tillhandahålla ett standard ONVIF-kontrollgränssnitt.
Medieserver rtsp://192.168.178.45:554/stream1 JPEG via HTTP för ögonblicksbilder, RTSP/RTCP/RTP/MJPEG-TS för videoströmmar. En medieserver kan också hantera bilder och videor med hjälp av URL:er som ftp://host/path eller smb://host/path
Mediefil http://camera1/snapshot/profile1
nfs://server/path/file.extension
file://localhost/media/path/file.mkv
Alla mediefiler med en URL som är tillgänglig från klustret.
Mediemapp file://host/path/to/folder/
ftp://server/path/to/folder/
En mapp som är tillgänglig från klustret och som innehåller mediefiler som ögonblicksbilder eller klipp.

Aktivitetstyper

Medieanslutningsappen stöder följande aktivitetstyper:

Aktivitetstyp Description
snapshot-to-mqtt Samlar in en ögonblicksbild från en mediekälla och publicerar den till ett MQTT-ämne.
clip-to-fs Sparar ett videoklipp från en mediekälla till filsystemet.
snapshot-to-fs Sparar en ögonblicksbild från en mediekälla till filsystemet.
stream-to-rtsp Proxykopplar en livevideoström från en mediekälla till en RTSP-slutpunkt.
stream-to-rtsps Använder en proxy för att överföra en live-videoström från en mediekälla till en RTSP-slutpunkt.

Exempel på användning

Exempel på användning av medieanslutningsappen är:

  • Samla in ögonblicksbilder från en videoström eller från en bild-URL och publicera dem till ett MQTT-ämne. En prenumerant på MQTT-ämnet kan använda de insamlade bilderna för vidare bearbetning eller analys.

  • Spara videoströmmar i ett lokalt filsystem i klustret. Använd Azure Container Storage som aktiveras av Azure Arc för att tillhandahålla en tillförlitlig och feltolerant lösning för att ladda upp den insamlade videon till molnet för lagring eller bearbetning.

  • Proxy en livevideoström från en kamera till en slutpunkt tillgänglig för en operatör. Av säkerhets- och prestandaskäl ska endast medieanslutningen ha direkt åtkomst till en kantkamera. Medieanslutningsappen använder en separat medieserverkomponent för att strömma video till en operatörs slutpunkt. Den här medieservern kan omkoda till olika protokoll, till exempel RTSP, RTCP, SRT och HLS. Du måste distribuera din egen medieserver för att tillhandahålla dessa funktioner.

Distribuera medieanslutningsappen

När du distribuerar förhandsversionen av Azure IoT Operations innehåller distributionen de tre förhandsgranskningsanslutningarna. Du kan kontrollera att du har en förhandsversion av Azure IoT Operations genom att i Azure-portalen kontrollera att förhandsversionsfunktioner är aktiverade för din instans:

Skärmbild av Azure-portalen som visar att förhandsgranskningsfunktioner är aktiverade.

Innan du kan använda förhandsgranskningsanslutningsapparna (ONVIF, media och HTTP/REST) i webbgränssnittet för driftsupplevelsen måste en administratör lägga till anslutningsmallsinstanser i din Azure IoT Operations-instans.

Alla tre förhandsversionanslutningar kan publicera insamlade data till MQTT-broker. Medieanslutningsappen kan också spara insamlade data till lagring. Azure IoT Operations använder Azure Container Storage som aktiveras av Azure Arc för att överföra insamlade data till molnlagringsmål som Azure Blob Storage. När du konfigurerar en instans av anslutningsmallen anger du ett beständigt volymanspråk och en monteringssökväg för anslutningsappen som ska användas för att spara insamlade data. Information om hur du skapar ett lämpligt beständiga volymanspråk finns i Konfiguration av Cloud Ingest Edge-volymer.

Så här lägger du till en mallinstans för anslutningsappen i din Azure IoT Operations-instans:

  1. I Azure-portalen går du till din Azure IoT Operations-instans, väljer Anslutningsmallar och väljer sedan Lägg till anslutningsmallinstanser:

    Skärmbild av Azure-portalen som visar hur du lägger till en mallinstans för anslutningsprogram.

  2. På den första sidan i guiden Lägg till en Akri-anslutningsmall väljer du den typ av anslutningsmall som du vill lägga till, till exempel ONVIF, Media, HTTP/REST eller SSE HTTP. Välj sedan Metadata.

    Skärmbild av Azure-portalen som visar hur du väljer instanstypen för anslutningsmallen.

  3. På sidan Metadata godkänner du standardvärdena och väljer sedan Typ av inkommande slutpunkt för enhet.

  4. På sidan Typ av inkommande slutpunkt för enhet godkänner du standardvärdena och väljer sedan Diagnostikkonfigurationer.

  5. På sidan Diagnostikkonfigurationer godkänner du standardvärdena och väljer sedan Körningskonfiguration.

  6. På sidan Körningskonfiguration väljer du Lägg till ett volymanspråk och anger information om det beständiga volymanspråk som du skapade tidigare. Välj sedan Granska:

    Skärmbild av Azure-portalen som visar hur du konfigurerar körningsinställningarna för anslutningsmallinstansen.

  7. På sidan Granska granskar du informationen om mallinstansen för anslutningsappen och väljer sedan Skapa för att skapa mallinstansen för anslutningsappen.

En OT-användare kan nu använda webbgränssnittet för driftupplevelse för att skapa en enhet med en slutpunkt för förhandsversionen av anslutningsappen.


Skapa en enhet med en medieslutpunkt

Om du vill konfigurera medieanslutningsappen skapar du först en enhet som definierar anslutningen till mediekällan. Enheten innehåller url:en för mediekällan och eventuella autentiseringsuppgifter som du behöver för att komma åt mediekällan:

  1. I webbgränssnittet för driftupplevelse väljer du Enheter i det vänstra navigeringsfönstret. Välj sedan Skapa ny.

  2. Ange ett namn på enheten, till exempel media-connector. Om du vill lägga till slutpunkten för medieanslutningsappen väljer du Nyttpanelen Microsoft.Media .

  3. Lägg till information om slutpunkten för medieanslutningsappen, inklusive eventuella autentiseringsuppgifter:

    Skärmbild som visar hur du lägger till en slutpunkt för medieanslutningsappen.

    Information om hur du konfigurerar lösenordsautentisering för användarnamn finns i Hantera hemligheter för din Azure IoT Operations-distribution.

    Välj Använd för att spara slutpunkten.

  4. På sidan Enhetsinformation väljer du Nästa för att fortsätta.

  5. På sidan Lägg till anpassad egenskap kan du lägga till andra egenskaper som du vill associera med enheten. Du kan till exempel lägga till en egenskap som anger kamerans tillverkare. Välj sedan Nästa för att fortsätta

  6. På sidan Sammanfattning granskar du informationen om enheten och väljer Skapa för att skapa tillgången.

  7. När enheten har skapats kan du visa den i listan Enheter :

    Skärmbild som visar listan över enheter.

Skapa en tillgång för att publicera en ögonblicksbild av avbildningen

Så här definierar du en namnområdestillgång som publicerar en bildögonblicksbild från mediekällan till MQTT-koordinatorn:

  1. I webbgränssnittet för driftupplevelse väljer du Tillgångar i det vänstra navigeringsfönstret. Välj sedan Skapa namnområdestillgång.

  2. Välj den inkommande slutpunkten för medieanslutningsappen som du skapade i föregående avsnitt.

  3. Ange ett namn på din tillgång, till exempel my-media-source.

  4. Lägg till anpassade egenskaper som du vill associera med tillgången. Du kan till exempel lägga till en egenskap som anger kamerans tillverkare. Klicka på Nästa när du vill fortsätta.

  5. På sidan Strömmar väljer du Lägg till ström för att lägga till en dataström för tillgången.

  6. Lägg till ett namn för strömmen, till exempel mysnapshots. Ange MQTT som mål och lägg till ett namn för MQTT-ämnet som azure-iot-operations/data/snapshotsska publiceras till exempel . Välj snapshot-to-mqtt som aktivitetstyp.

    Viktigt!

    För närvarande publicerar medieanslutningsappen alltid till ett ämne som heter azure-iot-operations/data/<asset name>/<stream name>.

    Skärmbild som visar hur du lägger till en ögonblicksbildström som publicerar till ett MQTT-ämne.

    Välj Lägg till för att spara strömmen.

  7. På sidan Strömmar väljer du Nästa för att fortsätta.

  8. På sidan Granska granskar du informationen om tillgången och väljer Skapa för att skapa tillgången.

Verifiera publicerade meddelanden

Om du vill kontrollera att anslutningsappen publicerar meddelanden kan du använda en MQTT-klient för att prenumerera på ämnet azure-iot-operations/data/{asset name}/{stream name}. Om enheten och namnområdestillgången är korrekt konfigurerade får du meddelanden som innehåller JPEG-bildögonblicksbilder när du prenumererar på det här avsnittet.

Följande steg visar hur du kör verktyget mosquitto_sub i klustret. Mer information om det här verktyget och alternativa metoder finns i MQTT-verktyg:

Kontrollera att data flödar till MQTT-koordinatorn med hjälp av verktyget mosquitto_sub . I det här exemplet kör du verktyget mosquitto_sub i Kubernetes-klustret:

  1. Kör följande kommando för att distribuera en podd som innehåller verktygen mosquitto_pub och mosquitto_sub som är användbara för att interagera med MQTT-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
    # Create a service account
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: mqtt-client
      namespace: azure-iot-operations
    ---
    # 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-broker.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: broker-sat
          mountPath: /var/run/secrets/tokens
        - name: trust-bundle
          mountPath: /var/run/certs
      volumes:
      - name: broker-sat
        projected:
          sources:
          - serviceAccountToken:
              path: broker-sat
              audience: aio-internal # Must match audience in BrokerAuthentication
              expirationSeconds: 86400
      - name: trust-bundle
        configMap:
          name: azure-iot-operations-aio-ca-trust-bundle # Default root CA cert
    

    Försiktighet

    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 Bash-gränssnittet i mqtt-client-podden för att ansluta till MQTT-koordinatorn med hjälp av verktyget mosquitto_sub och använda ett jokertecken för att prenumerera på ämnena data/# :

    mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/#" -v --debug --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
    

    Det här kommandot fortsätter att köras och visar meddelanden när de tas emot i alla data/# ämnen tills du trycker på Ctrl+C för att stoppa det. Om du vill avsluta shell-miljön skriver du exit.

Om du vill spara nyttolasten för ett enda meddelande använder du ett kommando som liknar följande:

mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/my-camera/#" -C 1 -F %p --cafile /var/run/certs/
ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat) > image1.
jpeg

Följande skärmbild visar det ämnesnamn som använder tillgångsnamnet och strömnamnet:

En skärmbild som visar publicerade data i ett ämne med namnet

Lägga till en ström för att spara ett videoklipp

I det här avsnittet lägger du till en ström till tillgången som sparar videoklipp från mediekällan i filsystemet.

  1. I webbgränssnittet för driftupplevelse väljer du Tillgångar i det vänstra navigeringsfönstret. Välj sedan den my-media-source tillgång som du skapade i föregående avsnitt.

  2. Välj Strömmar och välj sedan Lägg till ström för att lägga till en dataström i tillgången.

  3. Lägg till ett namn för strömmen, till exempel myclips. Ange Storage** som mål och lägg till en sökväg som myclips att använda för att spara klippen. Välj clip-to-fs som aktivitetstyp.

    Skärmbild som visar hur du lägger till en klippström.

    Välj Lägg till för att spara strömmen.

  4. Den nya dataströmmen visas på tillgångens streams-sida :

    Skärmbild som visar listan över strömmar för medieanslutningstillgången.

Verifiera de sparade meddelandena

Följande steg förutsätter att du har konfigurerat ett beständigt volymanspråk (PVC) för att spara klippen på ditt Azure Blob Storage-konto med följande inställningar:

Inställning Värde
Lagringscontainer pvc
Sökväg för edge-undervolym exampleSubDir
Monteringssökväg för anslutningsmall /data
Strömsökväg i driftmiljön /data/exampleSubDir/clips

När anslutningsappen har avbildat klippen laddas de /pvc/clips upp till mappen i containern:

Skärmbild som visar de insamlade strömmarna i Blob Storage.