Medya bağlayıcısını yapılandırma

Azure IoT İşlemleri içindeki medya bağlayıcı, kamera gibi medya kaynaklarından medyaya erişim sağlar.

Azure IoT İşlemleri asset, fiziksel bir varlığı veya cihazı temsil etmek için oluşturduğunuz mantıksal bir varlıktır. bir Azure IoT İşlemleri varlığı, davranışını ve özelliklerini açıklayan özel özelliklere, veri noktalarına, akışlara ve olaylara sahip olabilir. Bir varlık bir veya daha fazla cihazla ilişkilendirilir. Azure IoT İşlemleri varlık tanımlarını Azure Cihaz Kayıt Defteri'nde depolar.

Azure IoT İşlemleri device, fiziksel varlıklara veya cihazlara bağlantıları tanımlayan mantıksal bir varlıktır. Cihaz olmadan veriler fiziksel bir cihazdan veya varlıktan MQTT aracısına akamaz. Bir cihaz ve varlık yapılandırdığınızda, fiziksel varlık veya cihazla bağlantı kurulur ve veri noktası değerleri, olaylar ve akışlar Azure IoT İşlemleri örneğe ulaşır. Bir cihazın bir veya daha fazla gelen uç noktası vardır. Azure IoT İşlemleri cihaz tanımlarını Azure Cihaz Kayıt Defteri'nde depolar.

Aşağıdaki tabloda medya bağlayıcısının desteklediği özellikler özetlenmiştir:

Özellik Destekleniyor Notes
Kullanıcı adı/parola kimlik doğrulaması Yes RTSPS uç noktaları için
X.509 kullanıcı sertifikaları Hayı
Anonim erişim Yes Test amacıyla
Güney yönlü sertifika güven listesi Yes Medya kaynağı TLS sertifika doğrulaması için
OpenTelemetry entegrasyonu Yes
Northbound kullanıcı adı/parola kimlik doğrulaması Yes RTSPS uç noktaları için
Northbound anonim erişim Yes RTSP ve RTSPS uç noktaları için
Northbound sertifika güven listesi Yes RTSPS uç noktası TLS sertifika doğrulaması için
MQTT anlık görüntüsü Yes Anlık görüntüleri MQTT konularına yayımla
Dosya sistemine ekle Yes Video klipleri yerel storage kaydetme
Dosya sistemine anlık görüntü alma Yes Yerel depolamaya anlık görüntüleri kaydetme
RTSP/RTSPS'ye Akış Yes Canlı video akışlarını bir RTSP veya RTSPS uç noktasına yönlendir

Yapılandırılan her akış için medya bağlayıcısı:

  1. Medya kaynağından akışa bir bağlantı açar.
  2. Akış yapılandırmasında belirtildiği gibi klipler oluşturur, anlık görüntüler yakalar veya akışı proxy'ler.
  3. Medyayı belirtilen hedefe gönderir.

Bu makalede aşağıdaki gibi görevleri gerçekleştirmek için medya bağlayıcısının nasıl kullanılacağı açıklanmaktadır:

  • Medya kaynaklarını Azure IoT İşlemleri örneğine bağlayan cihazları tanımlayın.
  • Varlıkları ekleyin ve medya kaynağından medya yakalamak için varlıkların akışlarını tanımlayın.
  • MQTT broker'a bir anlık görüntü gönderin.
  • Azure storage için bir video klibi kaydedin.

Önkoşullar

  • Geliştirme makinenizde yüklü Azure CLI. Kullanılabilir Azure CLI uzantıları sayfasında, azure-iot-ops uzantısını kullanmak için gereken en düşük sürüme bakın. Sürümünüzü denetlemek ve az --version gerekirse güncelleştirmek için kullanınaz upgrade. Daha fazla bilgi için bkz. Azure CLI yükleme.

  • Azure CLI için Azure IoT İşlemleri uzantısı. Uzantıyı eklemek veya en son sürüme güncelleştirmek için aşağıdaki komutu kullanın:

    az extension add --upgrade --name azure-iot-ops
    

Operasyon deneyimi web kullanıcı arabirimine giriş yapmak için, Kubernetes - Azure Arc örneğinizi içeren kaynak grubunda en az katkı sağlayıcı izinlerine sahip bir Microsoft Entra ID hesabınız olmalıdır. Microsoft hesabıyla (MSA) oturum açamazsınız. Daha fazla bilgi için bkz. İşlem deneyimi web kullanıcı arabirimi erişim sorun giderme.

Ağınıza bağlı ve Azure IoT İşlemleri kümenizden erişilebilen bir kamera. Kamera, video akışı için Gerçek Zamanlı Akış Protokolü'ne destek olmalıdır. Ayrıca, kimlik doğrulaması yapmak için kameranın kullanıcı adı ve parolasına da ihtiyacınız vardır.

Medya kaynağı türleri

Medya bağlayıcısı aşağıdakiler dahil olmak üzere çeşitli kaynaklara bağlanabilir:

Medya kaynağı Örnek URL'ler Notes
IP kamerası rtsp://192.168.178.45:554/stream1 Video akışı için RTSP uç noktası. IP kamerası standart bir ONVIF denetim arabirimini de kullanıma sunar.
Medya sunucusu rtsp://192.168.178.45:554/stream1 Video akışı için RTSP uç noktası. Bir medya sunucusu diğer uç noktaları da kullanıma verebilir.

Akış yapılandırması

Bir varlığın streamconfigurations, Microsoft.Media türünde bir gelen uç noktasından alınan akışın nasıl işleneceğini tanımlar.

Görev türleri

Medya bağlayıcısı aşağıdaki streamconfiguration görev türlerini destekler:

Görev türü Description
Snapshot'tan MQTT'ye Bir medya kaynağından anlık görüntü yakalar ve bunu bir MQTT konusuna yayımlar.
anlık görüntü-to-fs Bir medya kaynağından kapsayıcı dosya sistemine anlık görüntü kaydeder.
clip-to-fs Bir medya kaynağındaki video klibi kapsayıcı dosya sistemine kaydeder.
stream-to-rtsp Bir medya kaynağından RTSP uç noktalarına canlı video akışı sunar.
veri-akışı-rtsps Bir medya kaynağından RTSPS uç noktalarına canlı video akışı sunar.

Her görev türü içinde streamconfigurationfarklı yapılandırma özelliklerini destekler:

Özellik Type İzin verilen değerler Varsayılan Snapshot'tan MQTT'ye anlık görüntü-to-fs clip-to-fs stream-to-rtsp veri-akışı-rtsps
otomatik başlangıç boole doğru, yanlış doğru evet evet evet evet evet
Biçim dize PNG, BMP, JPG, JPEG, TIF, TIFF jpeg evet hayır hayır hayır hayır
Biçim dize PNG, BMP, JPG, JPEG, TIF, TIFF png hayır evet hayır hayır hayır
saniyeBaşınaAnlıkGörüntü number 0-60.0 1 evet evet hayır hayır hayır
Biçim dize avi, mp4, mkv, mjpeg, mpg, mpeg Mkv hayır hayır evet hayır hayır
duration tamsayı 1-3600 60 hayır hayır evet hayır hayır
medyaSunucuKullanıcıAdıBaşvurusu (mediaServerUsernameRef) dize Yok "" hayır hayır hayır evet evet
mediaServerPasswordRef dize Yok "" hayır hayır hayır evet evet
Medya Sunucusu Sertifika Referansı dize Yok "" hayır hayır hayır hayır evet

Kuzeyden giden hedefler

Medya bağlayıcısının çıkış hedefi görev türüne streamconfiguration bağlıdır. Varlığın streamconfigurationiçindeki hedefi yapılandırın:

  • snapshot-to-mqtt: MQTT konusunu belirtmek için türünde mqtt bir hedef kullanın.
  • snapshot-to-fs ve clip-to-fs: türünde storagebir hedef kullanın. path alanını tam nitelikli bir yola ayarlayın. Bu yol, ya bağlanmış bir birimin kökünü göstermeli (kaydedilen anlık görüntülere ve kliplere harici erişimi etkinleştirmek için) ya da /tmp ile başlamalıdır. Konteynerdeki diğer tüm yollar, yazmaya karşı korumalı oldukları için izin sorununa neden olur.
  • stream-to-rtsp ve stream-to-rtsps: Alanı, kaynak akışına proxy uygulamak istediğiniz kuzeye giden medya sunucusunun uç nokta adresi olarak ayarlayın path .

Northbound RTSPS uç nokta doğrulaması ve kullanıcı kimlik doğrulaması

Bağlayıcı, güneydeki medya kaynağına bağlandığında kullanıcı adı ve parola kimlik doğrulamasını destekler.

Azure IoT İşlemleri dağıtımınız için gizli bilgileri yönetme adımlarını izleyerek, Azure Key Vault'a kullanıcı adı ve parola için gizli bilgiler ekleyin, bunları Kubernetes kümesine yansıtın ve bu bilgilere Device inbound endpoint cihaz yapılandırmanızdan referans alın.

Ayrıca, görev türü streamconfigurationiçin stream-to-rtsps kuzeyden gelen bir medya sunucusuna bağlandığında kullanıcı adı ve parola kimlik doğrulamasını da destekler.

Azure Key Vault kullanıcı adı ve parola gizli dizileri eklemek ve bunları Kubernetes kümesine yansıtmak için Azure IoT İşlemleri dağıtımınız için gizli dizileri yönetme içindeki adımları izleyin. Ardından, bağlayıcı şablon örneğinde gizli anahtarlara başvurmak için Çalışma zamanı gizli anahtarlarına başvurma bölümündeki adımları izleyin. secretAlias değerinin değeri, streamconfiguration içinde ayarlanan değerdir; secretRef değerinin değeri, oluşturulan secret CR'nin adıdır; secretKey değerinin değeri ise, secret içinde değeri tutan girdiyi tanımlayan anahtardır.

Uyarı

Kimlik bilgilerinin kablo üzerinden düz metin olarak gönderilmesini önlemek için kuzeye giden medya sunucusu için kimlik doğrulamasını kullanırken her zaman kullandığınızdan stream-to-rtsps emin olun.

Medya bağlayıcısı, bağlantı için TLS kullanıldığında güneye giden medya kaynağının ve kuzey yönlü medya sunucusu sertifikasının sertifika doğrulamasını destekler. Medya bağlayıcısı, karşılıklı TLS'nin bağlanmasını desteklemez.

Güney yönlü medya kaynak uç noktası, cihazın gelen uç noktası alanındaki address içinde yapılandırılır. Sertifika doğrulaması için kullanılacak güven paketi, bağlayıcı şablonu örneği kullanılarak yapılandırılmalıdır. Bağlayıcı şablonu örneğinde güven paketini içeren gizliyi referans almak için Güven ayarlarını referans alma bölümündeki adımları izleyin.

Northbound medya sunucusu uç noktası, görev türü streamconfiguration veya stream-to-rtsp olan stream-to-rtsps hedefi kullanılarak yapılandırılır. stream-to-rtsps için, sertifika doğrulamasında kullanılacak güven paketinin akış yapılandırmasında mediaServerCertificateRef kullanılarak yapılandırılması gerekir. Güven paketini içeren gizli diziyi tanımlamak için kullanıcı adı ve parola için daha önce açıklandığı gibi işlemi izleyin.

Harici iletişimler için sertifikaları yönetme Azure Key Vault'ta TLS sertifikaları için sırlar eklemeyi ve bunları Kubernetes kümesine yansıtmayı gösteren bir rehberdir.

Kullanıcı adı ve parola kimlik doğrulaması

Medya bağlayıcısı her ikisi için de kullanıcı adı ve parola kimlik doğrulamasını destekler:

  • Güney yönüne giden medya kaynağı bağlantıları.
  • Medya sunucusuna olan üst yönlü bağlantılar, streamconfiguration görev türü stream-to-rtsps olduğunda.

Kimlik doğrulamasını yapılandırmak için:

  1. Kullanıcı adını ve parolayı Azure Key Vault'a gizli dizi olarak ekleyin ve Bunları Kubernetes kümesine yansıtın. Daha fazla bilgi edinmek için bkz. Azure IoT İşlemleri dağıtımınız için gizli bilgileri yönetme.

  2. Sırlara başvurun

    • Southbound: Device inbound endpoint cihaz yapılandırmasından.

    • Northbound: runtimeConfiguration.managedConfigurationSettings.secrets Bağlayıcı şablonu örneğinin bir bölümünden. Daha fazla bilgi edinmek için bkz. Akri bağlayıcıları oluşturma ve dağıtma bölümünde bağlayıcışablonu örneği oluşturma. Şu değerleri kullanın:

      Alan Değer
      secretAlias Belirlenen diğer ad streamconfiguration olarak ayarlanmıştır.
      secretRef Oluşturduğunuz gizli CR'nin adı.
      secretKey Sır içindeki değeri içeren anahtar.

Önemli

Kuzeye giden bir medya sunucusunda kimlik doğrulaması yapmak için her zaman stream-to-rtsps kullanın (ve stream-to-rtsp kullanmayın). Aksi takdirde, kimlik bilgileri düz metin olarak gönderilir.

TLS sertifika doğrulaması

TLS kullandığınızda, medya bağlayıcısı hem güneye giden medya kaynağının hem de kuzeye giden medya sunucusunun sertifikalarını doğrular. Karşılıklı TLS desteklenmez.

Güven paketini yapılandırmak için:

  • Güney yönlü medya kaynağı: Uç nokta, cihazın gelen uç noktası alanında ayarlanır address. Bağlayıcı şablonu örneğinde, runtimeConfiguration.managedConfigurationSettings.trustSettings.trustListSecretRef alanında güven paketini yapılandırın. Daha fazla bilgi için Referans güven ayarları bölümüne bakın.

  • Northbound medya sunucusu: Uç nokta stream-to-rtspstream-to-rtspsstreamconfiguration hedefinde ayarlanır. Akış yapılandırması alanındaki stream-to-rtsps güven paketini, mediaServerCertificateRef için yapılandırın. Kullanıcı adı ve parola için uygulanan aynı gizli anahtar oluşturma yöntemini kullanın.

TLS sertifikalarını Azure Key Vault'a gizli olarak eklemek ve bunları Kubernetes kümesine yansıtmak için bkz. Harici iletişimler için sertifikaları yönetme.

Örnek kullanımları

Medya bağlayıcısının örnek kullanımları şunlardır:

  • Video akışından anlık görüntüler yakalayın ve bunları bir MQTT konusuna yayımlayın. MQTT konusuna abone olan bir kişi, yakalanan görüntüleri daha fazla işlem veya analiz için kullanabilir.

  • Anlık görüntüleri veya video klipleri kümenizdeki yerel bir dosya sistemine kaydedin. Yakalanan videoyu depolama veya işleme amacıyla buluta yüklemek için Azure Arc tarafından etkinleştirilen Azure Container Storage kullanarak güvenilir ve hataya dayanıklı bir çözüm sağlayın. Kalıcı birim talebi oluşturmayı öğrenmek için bkz. Cloud Ingest Edge Volumes yapılandırması.

    Önemli

    Medya bağlayıcısı şablonuyla kullanmadan önce Azure Arc tarafından etkinleştirilen Azure Container Storage'ı yüklemeniz gerekmektedir.

  • Bir kameradan gelen canlı video akışını, bir operatörün sağladığı RTSP/RTSPS uç noktasına proxy ile yönlendirme. operatör, böyle bir uç noktayı kullanıma sunan ve işleç gereksinimlerine göre akışı kodlayan/dönüştüren bir medya sunucusu yapılandırabilir. Bu medya sunucusu medya bağlayıcısının bir parçası değil.

Medya bağlayıcısı şablon örneği

Ot kullanıcısının medya bağlayıcısını kullanan bir cihaz oluşturabilmesi için bt yöneticisinin Azure IoT İşlemleri örneğinize bir medya bağlayıcısı şablon örneği eklemesi gerekir. Anlık görüntüleri veya video klipleri depolama alanına kaydederseniz, BT yöneticisinin şablona kalıcı bir birim talebi de eklemesi gerekir. Daha fazla bilgi edinmek için bkz. Bağlayıcı şablonu örneklerini oluşturma ve yönetme ve Medya bağlayıcısı için kalıcı birim talebi yapılandırma.

Bağlayıcı için sertifika güven listesi yapılandırma

Her bağlayıcının kendi güven listesi vardır: bağlayıcı güvenli bir bağlantı kurduğunda güneye giden uç noktanın sunduğu TLS sertifikasını doğrulamak için bağlayıcının kullandığı sertifika kümesi. Güneye giden uç nokta özel veya kurumsal sertifika yetkilisi (CA) tarafından imzalanan bir TLS sertifikası veya bağlayıcının henüz güvenmediği otomatik olarak imzalanan bir sertifika kullandığında güven listesine bir sertifika ekleyin. Bağlayıcının karşılıklı TLS için güneye giden uç noktaya sunduğu istemci sertifikaları, cihazın kullanıcı kimlik doğrulamasının bir parçası olarak ayrı olarak yapılandırılır.

Uyarı

OPC UA bağlayıcısı için güven listesi, OPC UA uygulama örneği sertifikalarını da işler. Daha fazla bilgi edinmek için bkz. OPC UA sertifika altyapısını anlama.

Bağlayıcının güven listesine iki yolla sertifika ekleyebilirsiniz:

  • İşlem deneyimi. İşlemler deneyimi web kullanıcı arayüzünde, ister bir sertifika dosyasını doğrudan karşıya yükleyebilir ister Azure Key Vault’tan mevcut bir gizli anahtar seçebilirsiniz. İşlemler deneyimi, sertifikayı Azure Key Vault’a gizli dizi olarak ekler (gerekirse), küme üzerinde eşitlenen gizli dizi kaynağını oluşturur ve sizin için bunu bağlayıcının güven listesine ekler. Daha fazla bilgi edinmek için bkz. Dış iletişim için sertifikaları yönetme.

  • Azure CLI. Azure CLI akışı, sertifikanın Azure Key Vault'da gizli dizi olarak depolandığını varsayar. kümede Key Vault gizli diziye başvuran eşitlenmiş bir gizli dizi oluşturmak için az iot ops secretsync secret set ve ardından bağlayıcı şablonunun güven listesinde eşitlenen gizli diziye başvuru eklemek için az iot ops connector template update kullanırsınız. Daha fazla bilgi edinmek için bkz. Sertifika ekleme ve kullanma. Azure Key Vault’a nasıl sertifika ekleneceğini öğrenmek için bkz. Sertifikaları Azure Key Vault’a gizli diziler olarak ekleme.

İşlem deneyimi ve Azure CLI akışları kısmen çakışıyor. İşlem deneyimi, Azure Key Vault için yeni bir sertifika yükleyebilir ve bunu tek bir deneyimde kümeyle eşitleyebilir. Azure CLI akışı sertifikanın zaten Azure Key Vault olduğunu varsayar ve yalnızca eşitleme ve güven listesi kablolarını işler.

Medya uç noktası ile cihaz oluşturma

Medya bağlayıcısını yapılandırmak için önce medya kaynağına bağlantıyı tanımlayan bir cihaz oluşturun. Cihaz, medya kaynağının URL'sini ve medya kaynağına erişmek için ihtiyacınız olan kimlik doğrulama kimlik bilgilerini içerir:

  1. İşlem deneyimi web kullanıcı arabiriminde sol gezinti bölmesinde Cihazlar'ı seçin. Ardından Yeni oluştur'u seçin.

  2. Cihazınız için gibi media-connectorbir ad girin. Medya bağlayıcısının uç noktasını eklemek için Microsoft.Media kutucuğunda Yeni'yi seçin.

  3. Tüm kimlik doğrulama kimlik bilgileri dahil olmak üzere medya bağlayıcısı için uç noktanın ayrıntılarını ekleyin:

    Medya bağlayıcısı uç noktasının nasıl ekleneceğini gösteren ekran görüntüsü.

    Uç noktayı kaydetmek için Uygula'yı seçin.

  4. Devam etmek için Cihaz ayrıntıları sayfasında İleri'yi seçin.

  5. Özel özellik ekle sayfasında, cihazla ilişkilendirmek istediğiniz diğer özellikleri ekleyebilirsiniz. Örneğin, kameranın üreticisini göstermek için bir özellik ekleyebilirsiniz. Ardından devam etmek için Sonraki seçin.

  6. Özet sayfasında, cihazın ayrıntılarını gözden geçirin ve oluştur'u seçerek varlığı oluşturun.

  7. Cihaz oluşturulduktan sonra Cihazlar listesinde görüntüleyebilirsiniz:

    Cihaz listesini gösteren ekran görüntüsü.

Bir cihazı kullanıcı adı ve parola kullanacak şekilde yapılandırma

Önceki örnekte kimlik doğrulama modu kullanılır Anonymous . Bu mod kullanıcı adı veya parola gerektirmez.

Kimlik doğrulama modunu kullanmak Username password için aşağıdaki adımları tamamlayın:

İşlem deneyiminde, gelen uç noktayı ekleyip Kullanıcı adı parolası kimlik doğrulama modunu seçtiğinizde, kullanıcı adı ve parola için gizli dizi başvurularını eklemek için Başvuru ekle'yi seçin. İşlem deneyimi iki seçenek sunar:

  • Yeni bir gizli anahtar oluşturun: değeri Azure Key Vault’a yükler ve kümeyle senkronize edilmiş bir gizli anahtar olarak eşitler.
  • Azure Key Vault'tan ekle: mevcut bir Key Vault gizli anahtarını kümeyle eşitler.

İşlem deneyimi hem kullanıcı adı hem de parola başvurularını kümedeki tek bir eşitlenmiş gizli dizi kaynağına kaydeder ve eşitlenen gizli diziye bir ad verirsiniz.

Daha fazla bilgi için bkz: Gizli anahtarlar ekleme ve kullanma.

Görüntü anlık görüntüsü yayımlamak için varlık oluşturun

MQTT aracısına medya kaynağından bir anlık görüntü yayımlayan bir varlığı tanımlamak için:

  1. İşlem deneyimi web kullanıcı arabiriminde sol gezinti bölmesinde Varlıklar'ı seçin. Ardından Varlık oluştur'u seçin.

  2. Önceki bölümde oluşturduğunuz medya bağlayıcısı için gelen uç noktayı seçin.

  3. Varlığınız için, örneğin my-media-source gibi, bir ad girin.

  4. Varlıkla ilişkilendirmek istediğiniz tüm özel özellikleri ekleyin. Örneğin, kameranın üreticisini göstermek için bir özellik ekleyebilirsiniz. Devam etmek için İleri'yi seçin.

  5. Akışlar sayfasında Akış ekle'yi seçerek varlık için bir akış ekleyin.

  6. Akış için bir ad ekleyin, örneğin mysnapshots. MQTT'yi hedef olarak ayarlayın ve yayın yapılacak MQTT konusu için azure-iot-operations/data/snapshots gibi bir ad ekleyin. Görev türü olarak seçin snapshot-to-mqtt .

    MQTT konusuna yayımlayan bir anlık görüntü akışının nasıl ekleneceğini gösteren ekran görüntüsü.

    Akışı kaydetmek için Ekle'yi seçin.

  7. Devam etmek için Akışlar sayfasında İleri'yi seçin.

  8. Gözden Geçir sayfasında, varlığın ayrıntılarını gözden geçirin ve oluştur'u seçerek varlığı oluşturun.

Yayımlanan iletileri doğrulama

Bağlayıcının mesaj yayımladığını doğrulamak için, varlığın yayımlaması için yapılandırdığınız konuya abone olmak üzere bir MQTT istemcisi kullanın. Cihaz ve varlık doğru yapılandırıldıysa, bu konuya abone olduğunuzda JPEG resim anlık görüntülerini içeren iletiler alırsınız.

Aşağıdaki adımlarda, mosquitto_sub aracını kümede nasıl çalıştırabileceğiniz gösterilmektedir. Bu araç ve alternatif yaklaşımlar hakkında daha fazla bilgi edinmek için bkz. MQTT araçları:

mosquitto_sub aracını kullanarak verilerin MQTT aracısına aktığını doğrulayın. Bu örnekte Kubernetes kümenizin içinde mosquitto_sub aracını çalıştıracaksınız:

  1. Kümedeki MQTT aracısı ile etkileşime geçmek için yararlı olan mosquitto_pub ve mosquitto_sub araçlarını içeren bir pod dağıtmak için aşağıdaki komutu çalıştırın:

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

    Aşağıdaki kod parçacığı, uyguladığınız YAML dosyasını gösterir:

    # 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
    

    Dikkat

    Bu yapılandırma güvenli değildir. Bu yapılandırmayı üretim ortamında kullanmayın.

  2. mqtt-client pod çalışırken, oluşturduğunuz podda bir kabuk ortamı oluşturmak için aşağıdaki komutu çalıştırın:

    kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
    
  3. mqtt-client pod'unda Bash terminalinde, mosquitto_sub aracını kullanarak MQTT aracısına bağlanmak ve data/# başlıklarına joker karakter ile abone olmak için aşağıdaki komutu çalıştırın:

    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)
    

    Bu komut, siz durdurmak için data/# tuşlarına basana kadar herhangi bir konusuna gelen iletileri görüntüleyerek çalışmaya devam eder. Kabuk ortamından çıkmak için yazın exit.

Tek bir iletinin yükünü kaydetmek için aşağıdaki örnekteki gibi bir komut kullanın:

mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/snapshots/#" -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

Aşağıdaki ekran görüntüsü, yayımlanan anlık görüntüleri alan örnek bir konu adını gösterir:

'azure-iot-operations/data/my-camera/mysnapshots' adlı konuda yayımlanan verileri gösteren bir ekran görüntüsü.

Video klibini kaydetmek için bir akış ekleyin

Bu bölümde, medya kaynağındaki video klipleri dosya sistemine kaydeden varlığa bir akış eklersiniz. Bu bölüm, Azure Arc özellikli Azure Container Storage’ı ingestSubDir adlı bir alt birimle yapılandırdığınızı ve kalıcı birim talebini /data konumunda bağlayıcı şablonu örneğine bağladığınızı varsayar. Daha fazla bilgi için medya bağlayıcısı için kalıcı birim talebini yapılandırma bölümüne bakın.

Azure CLI

Azure CLI kullanmak için aşağıdaki komutu çalıştırarak varlığa adlı clipstream yeni bir akış ekleyin:

az iot ops ns asset media stream add --asset my-media-source-cli --instance {your instance name}  -g {your resource group name} --name clipstream --task-type clip-to-fs --format mkv --duration 30 --dest path=/data/ingestSubDir/clips --disable-autostart false

Bicep

Bicep şablonu kullanmak için:

Aşağıdaki Bicep şablonunu dağıtın. Şablon, Bicep tam varlık kaynağını tanımladığı için my-media-source-bicep varlığını hem orijinal anlık görüntü akışıyla hem de yeni klip akışıyla yeniden dağıtır. <AIO_NAMESPACE_NAME> ve <CUSTOM_LOCATION_NAME> yer tutucularını sırasıyla Azure IoT İşlemleri ad alanı adınız ve özel konum adınızla değiştirin:

param adrNamespaceName string = '<AIO_NAMESPACE_NAME>'
param customLocationName string = '<CUSTOM_LOCATION_NAME>'

resource adrNamespace 'Microsoft.DeviceRegistry/namespaces@2026-04-01' existing = {
  name: adrNamespaceName
}

resource customLocation 'Microsoft.ExtendedLocation/customLocations@2021-08-31-preview' existing = {
  name: customLocationName
}

resource asset 'Microsoft.DeviceRegistry/namespaces/assets@2026-04-01' = {
  name: 'my-media-source-bicep'
  parent: adrNamespace
  location: resourceGroup().location
  extendedLocation: {
    type: 'CustomLocation'
    name: customLocation.id
  }
  properties: {
    displayName: 'my-media-source-bicep'
    description: 'An example media asset'
    enabled: true

    deviceRef: {
      deviceName: 'media-connector-bicep'
      endpointName: 'media-connector-bicep-0'
    }
    streams: [
      {
        name: 'mysnapshots-bicep'
        streamConfiguration: '{"taskType": "snapshot-to-mqtt","autostart":true, "format": "jpeg","snapshotsPerSecond": 0.25}'
        destinations: [
          {
            target: 'Mqtt'
            configuration: {
                topic: 'azure-iot-operations/data/snapshots'
                qos: 'Qos1'
                retain: 'Never'
                ttl: 60
              }
          }
        ]
      }
      {
        name: 'clipstream'
        streamConfiguration: '{"taskType": "clip-to-fs","autostart":true, "format": "mkv","duration": 30}'
        destinations: [
          {
            target: 'Storage'
            configuration: {
                path: '/data/ingestSubDir/clips'
              }
          }
        ]
      }
    ]
  }
}

Kaydedilen iletileri doğrulama

Aşağıdaki adımlarda, klipleri şu ayarlarla Azure Blob storage hesabınıza kaydetmek için kalıcı bir birim talebi (PVC) yapılandırdığınız varsayılır:

Setting Değer
Depolama kabı pvc
Edge alt birim yolu ingestSubDir
Bağlayıcı şablonu bağlama yolu /data
İşlem deneyiminde akış yolu /data/ingestSubDir/clips

Önemli

Bağlama yolu '/' karakteriyle başlamalıdır.

Bağlayıcı klipleri yakaladıklarından sonra bunları depolama kapsayıcınızdaki klasöre yükler /clips :

Blob depolamada yakalanan akışları gösteren ekran görüntüsü.