Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
- Logga in på Azure Portal med samma klient och användarnamn som du använde för att distribuera Azure IoT Operations.
- 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.
- 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.
- På sidan Lägg till rolltilldelning väljer du Privilegierade administratörsroller. Välj sedan Deltagare och välj sedan Nästa.
- På sidan Medlemmar lägger du till din nya användare i rollen.
- 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/video0file://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/pathellersmb://host/path | 
| Mediefil | http://camera1/snapshot/profile1nfs://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:
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:
- I Azure-portalen går du till din Azure IoT Operations-instans, väljer Anslutningsmallar och väljer sedan Lägg till anslutningsmallinstanser: 
- 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. 
- På sidan Metadata godkänner du standardvärdena och väljer sedan Typ av inkommande slutpunkt för enhet. 
- På sidan Typ av inkommande slutpunkt för enhet godkänner du standardvärdena och väljer sedan Diagnostikkonfigurationer. 
- På sidan Diagnostikkonfigurationer godkänner du standardvärdena och väljer sedan Körningskonfiguration. 
- 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: 
- 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:
- I webbgränssnittet för driftupplevelse väljer du Enheter i det vänstra navigeringsfönstret. Välj sedan Skapa ny. 
- Ange ett namn på enheten, till exempel - media-connector. Om du vill lägga till slutpunkten för medieanslutningsappen väljer du Nytt på panelen Microsoft.Media .
- Lägg till information om slutpunkten för medieanslutningsappen, inklusive eventuella autentiseringsuppgifter: - 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. 
- På sidan Enhetsinformation väljer du Nästa för att fortsätta. 
- 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 
- På sidan Sammanfattning granskar du informationen om enheten och väljer Skapa för att skapa tillgången. 
- När enheten har skapats kan du visa den i listan 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:
- I webbgränssnittet för driftupplevelse väljer du Tillgångar i det vänstra navigeringsfönstret. Välj sedan Skapa namnområdestillgång. 
- Välj den inkommande slutpunkten för medieanslutningsappen som du skapade i föregående avsnitt. 
- Ange ett namn på din tillgång, till exempel - my-media-source.
- 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. 
- 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. 
- 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-mqttsom aktivitetstyp.- Viktigt! - För närvarande publicerar medieanslutningsappen alltid till ett ämne som heter - azure-iot-operations/data/<asset name>/<stream name>.- Välj Lägg till för att spara strömmen. 
- På sidan Strömmar väljer du Nästa för att fortsätta. 
- 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:
- 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ö. 
- 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
- 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:
              
               
              
              
            
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.
- I webbgränssnittet för driftupplevelse väljer du Tillgångar i det vänstra navigeringsfönstret. Välj sedan den - my-media-sourcetillgång som du skapade i föregående avsnitt.
- 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. 
- 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- myclipsatt använda för att spara klippen. Välj- clip-to-fssom aktivitetstyp.- Välj Lägg till för att spara strömmen. 
- Den nya dataströmmen visas på tillgångens streams-sida : 
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:
              
               
              
              
            
 
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
              