Yönetim eylemlerini etkinleştirme ve çalıştırma

Yönetim eylemleri, Azure IoT İşlemleri örneğinize bağlı olan güneye giden varlıklar üzerinde işlemleri çağırmanıza olanak tanır. OPC UA sunucuları, ONVIF kameraları ve MQTT cihazları gibi varlıklarda yöntemleri çağırabilir, değer yazabilir ve değerleri okuyabilirsiniz. Yönetim eylemleri, istekleri ve yanıtları bulut ile iç MQTT aracısı arasında yönlendirmek için Azure Event Grid'i kullanır. Bağlayıcı, iç MQTT aracısı üzerindeki bilinen bir konuya abone olur ve ardından işlemi hedef varlıkta yürütür. MQTT kullanarak yerel olarak veya Azure Resource Manager API'lerini kullanarak buluttan yönetim eylemlerini çağırabilirsiniz. Bulut tarafından başlatılan yönetim eylemleri, varlıklarınıza büyük ölçekte komut ve yapılandırma göndermek için bicep dosyalarını, ARM şablonlarını ve CLI'yı kullanmanıza olanak tanır.

Yönetim eylemlerinin temel özellikleri şunlardır:

  • İlgili eylemleri ve özellikleri birlikte paketleyen yönetim grupları.
  • Tutarlı veri yönlendirme ve yönetim işlemleri için bir Event Grid örneğine Azure Cihaz Kayıt Defteri ad alanı eşleme.
  • Azure Resource Manager ile Azure IoT İşlemleri arasında güvenilir, olay odaklı mesajlaşma sağlayan Event Grid tabanlı yönlendirme.
  • Azure Resource Manager tabanlı çağırma kullanıcıların varlıklar üzerindeki eylemleri çağırmasına ve bunları Azure Resource Manager şablonlar veya Bicep dosyaları aracılığıyla dağıtmasına veya çoğaltmasına olanak tanır.
  • Erişim denetimi için RBAC ve yönetilen kimlik.
  • Denetim ve izleme için etkinlik günlükleri.

Yönetim eylemlerini etkinleştirdiğinizde Azure CLI, Event Grid'i MQTT aracısına bağlayan altyapıyı sağlar. Bu altyapı bir Event Grid veri akışı uç noktası, gelen iletileri işlemek için WebAssembly (WASM) modülü kullanan bir istek veri akışı, yanıtları Event Grid üzerinden geri yönlendiren bir yanıt veri akışı ve gerekli konu alanları ve izin bağlamalarını içerir. Altyapı oluşturulduktan sonra, bir yönetim grubu ve eylem tanımlanmış olan herhangi bir varlık üzerinde eylemler yürütebilirsiniz.

Bu makalede yönetim eylemlerini etkinleştirme, varlıklar üzerinde eylem yürütme ve ileti akışının sistem üzerinden nasıl çalıştığı açıklanmaktadır. Yönetim eylemleri CLI komutları protokolden bağımsızdır. Bu makaledeki örneklerde OPC UA varlığı kullanılır, ancak aynı komutlar yönetim eylemlerini destekleyen tüm protokollerde çalışır.

! [NOT] Bulut tabanlı yönetim eylemleri şu anda yalnızca CLI aracılığıyla etkinleştirilmiştir.

Önkoşullar

  • Yüklü azure-iot-ops uzantısı ile Azure CLI. Uzantıyı yüklemek veya güncelleştirmek için şunu çalıştırın:

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

Yönetim eylemlerini etkinleştirme

Event Grid ad alanını, cihazı, varlığı oluşturan ve bir adımda yönetim eylemlerini etkinleştiren eksiksiz bir uçtan uca kurulum betiği için CLI uzantısı deposundaki yönetim eylemleri hızlı başlangıcına bakın.

az iot ops mgmt-actions enable Hızlı başlangıç betiğindeki komut, Azure IoT İşlemleri örneğinizdeki yönetim eylemleri altyapısını sağlar. komutu aşağıdaki kaynakları oluşturur:

Kaynak Amaç
Event Grid konu alanı İleti yönlendirme için actions/requests/ ve actions/responses/ konularını içerir.
Event Grid izin bağlamaları Azure IoT İşlemleri örneğine konu alanına yayımlama ve abone olma erişimi verir.
Event Grid veri akışı uç noktası Azure IoT İşlemleri veri akışı çalışma zamanını Event Grid ad alanına bağlar.
İstek veri akışı grafiği Konu yollarını yeniden yazmak için wasm modülü uygulayarak Event Grid'den iletileri MQTT aracısına yönlendirir.
Yanıt veri akışı MQTT aracısından gelen yanıtları Event Grid'e geri yönlendirir.
İdare edilen kimlik Kullanıcı tarafından atanan bir yönetilen kimlik belirtmezseniz, komut veri akışı uç noktası için sistem tarafından atanan bir yönetilen kimlik oluşturur. Azure Device Registry ad alanı sistem tarafından atanan yönetilen kimlik etkinleştirilmemişse, az iot ops mgmt-actions enable komutu Event Grid ad alanıyla kimlik doğrulamasına izin vermek için bir yönetilen kimliği etkinleştirir.
Rol atamaları Veri akışı kimliğine ve Azure Device Registry ad alanına gerekli izinleri verir.
Yönetim uç noktası Azure Cihaz Kayıt Defteri ad alanı için Event Grid ad alanına bağlayan bir yönetim uç noktası.
az iot ops mgmt-actions enable \
    --instance <instance-name> \
    --resource-group <resource-group> \
    --eg-resource-id <event-grid-namespace-resource-id>

Aşağıdaki tabloda isteğe bağlı parametreler açıklanmaktadır:

Parametre Açıklama
--mi-user-assigned Event Grid veri akışı uç noktası için kullanılacak kullanıcı tarafından atanan yönetilen kimliğin tam kaynak kimliği. Atlanırsa, sistem tarafından atanan yönetilen kimlik kullanılır.
--skip-ra Etkinleştirme sırasında rol ataması oluşturmayı atlayın. Rol atamaları önceden yapılandırılmışsa veya bunları oluşturma izniniz yoksa bu bayrağı kullanın.
--registry-endpoint WASM veri akışı grafı yapıtını indirmek için kullanılacak kayıt defteri uç noktasının adı. Varsayılan olmayan bir kapsayıcı kayıt defterine ihtiyacınız varsa bu bayrağı kullanın.

Tip

Veri akışı grafiği ve yanıt veri akışının, komut tamamlandıktan sonra uzlaştırması enable birkaç saniye sürebilir. Bir eylemi yürütmeden önce tüm alt kaynakların kullanılabilir olduğunu onaylamak için komutunu çalıştırın az iot ops mgmt-actions show .

Yönetim eylemleri yapılandırmasını doğrulama

Yönetim eylemlerini etkinleştirdikten sonra yapılandırmanın doğru olduğunu ve tüm alt kaynakların yerinde olduğunu doğrulayın:

az iot ops mgmt-actions show \
    --instance <instance-name> \
    --resource-group <resource-group>

Çıktıda Event Grid uç noktası, veri akışları ve rol atamaları dahil olmak üzere yönetim eylemleri altyapısının geçerli durumu gösterilir.

Yönetim eylemi yürütme

Yönetim grubu ve eylem tanımlanmış bir varlık üzerinde bir eylem gerçekleştirin. Varlık adını, yönetim grubunu, eylem adını ve JSON yükünü belirtirsiniz. Aşağıdaki örnek:

  • CLI uzantısı deposunda yönetim eylemleri hızlı başlangıç betiği tarafından oluşturulan bir varlığı kullanır.
  • Switch yönetim grubundaki method-call-asset varlıkta managementGroup eylemini çağırır ve bir kazanı çalıştırmak için OPC UA sunucusundaki bir yöntemi çağırır.
az iot ops mgmt-actions execute \
    --instance <instance-name> \
    --resource-group <resource-group> \
    --asset method-call-asset \
    --group managementGroup \
    --action Switch \
    --payload '{"On": true}'

Tip

Bir varlık hedef eylem için durum nesnesinde bir istek şeması bildirirse, CLI varsayılan olarak isteği göndermeden önce şemaya karşı doğrular. Varsa şemayı görmek ve --show-schema doğrulamayı devre dışı bırakmak için kullanın--no-validate.

Tip

--payload parametresi satır içi JSON'yi veya JSON yükünü içeren yerel bir dosya yolunu destekler.

Tüm çağrı eylemleri için yük gerekmez. Örneğin, ONVIF GetDeviceInformation eylemi herhangi bir giriş parametresi gerektirmez, bu nedenle yükü olmadan yürütebilirsiniz:

az iot ops mgmt-actions execute \
    --instance <instance-name> \
    --resource-group <resource-group> \
    --asset onvif-asset \
    --group Device \
    --action GetDeviceInformation

Bu senaryoda, CLI var olmayan bir şemaya karşı isteği doğrulamaya çalıştığından aşağıdaki komut bir Could not resolve the request schema for action 'GetDeviceInformation'... hata döndürür:

az iot ops mgmt-actions execute \
    --instance <instance-name> \
    --resource-group <resource-group> \
    --asset onvif-asset \
    --group Device \
    --action GetDeviceInformation \
    --show-schema

Eylem türleri

Yük, eylem türüne ve hedef varlığın yönetim grubu tanımına bağlıdır:

  • Çağrı eylemleri varlıkta bir yöntem çağırır. yöntemi giriş parametreleri bekliyorsa, yük bunları içerir.
  • Yazma eylemleri, varlık üzerindeki hedef URI'ye bir değer yazar. Veri yükü, yazılacak değeri içerir.
  • Okuma eylemleri hedef URI'den bir değeri okur. Okuma eylemleri için boş bir yük '{}' kullanın.

Bir varlığın yönetim grubunda eylem türlerini tanımlama hakkında daha fazla bilgi için bkz. OPC UA sunucularını denetleme.

Yönetim eylemleri nasıl çalışır?

Yönetim eylemleri, bulut istemcisini Azure IoT İşlemleri kümesinde çalışan bir bağlayıcıya bağlamak için iki veri akışı ve Azure Event Grid kullanır. Aşağıdaki bölümlerde istek ve yanıt iletisi akışları ayrıntılı olarak açıklanmaktadır.

Event Grid, veri akışları, MQTT aracısı ve bir güneye giden varlığa bağlayıcı aracılığıyla yönetim eylemleri istek ve yanıt akışlarının mimarisini gösteren diyagram.

İstek akışı

Bir yönetim eylemi yürütürken aşağıdaki sıra oluşur:

  1. Komut, Azure Cihaz Kayıt Defteri ad alanında varlığın az iot ops mgmt-actions execute uç noktasını çağırır. Ad alanı daha sonra varlık için eylem isteğini Event Grid ad alanında bir MQTT iletisi olarak yayımlar. Hızlı başlangıç betiği tarafından oluşturulan konu alanındaki bir konuya, varlık adı, yönetim grubu ve eylem adı alt konu başlığı olarak bir ileti yayımlanır.

  2. İstek veri akışı, Event Grid ad alanındaki konuya abonediractions/requests/<instance-name>/#. Bir ileti geldiğinde, veri akışı gelen iletiyi Event Grid konu başlığı ön ekini silip konuyu iç MQTT broker biçimine yeniden yazan bir WASM graf modülünden geçirir.

  3. İşlenen ileti, azure-iot-operations/asset-operations/<asset-name>/<management-group>/<action-name> konusuna içindeki MQTT aracısına yayımlanır.

  4. Bağlayıcı, iç MQTT aracısındaki azure-iot-operations/asset-operations/ bağlantı konularına abonedir. İsteği aldığında hedef varlığı belirler ve işlemi (çağrı, yazma veya okuma) güney yönlü varlık üzerinde uygular.

Yanıt akışı

Southbound varlığı işlemi yürütüp bağlayıcıya bir yanıt döndürdüğünde, aşağıdaki işlem sırası gerçekleşir:

  1. Bağlayıcı, actions/responses/<instance-name>/ altındaki bir konuda iç MQTT aracısına eylem yanıtını yayımlar.

  2. Yanıt veri akışı iç aracıda abone olup actions/responses/<instance-name>/# iletiyi Event Grid ad alanına iletir.

  3. Azure Device Registry ad alanı, Event Grid ad alanındaki yanıt konusu alanına abonedir. Ad alanı yanıt iletisini aldığında, özgün executeAction çağıranı istek-yanıt döngüsünü tamamlaması için bilgilendirir.

Bağlayıcının OPC UA sunucularıyla nasıl etkileşimde olduğu ve desteklenen eylem türleri hakkında ayrıntılı bilgi için bkz. OPC UA sunucularını denetleme.

Yönetim eylemlerini devre dışı bırakma

Artık yönetim eylemlerine ihtiyacınız kalmadığında, sağlanan altyapıyı yok etmek için bunları devre dışı bırakın. Disable komutu veri akışlarını, Event Grid konu alanını, izin bağlamalarını ve veri akışı uç noktasını kaldırır:

az iot ops mgmt-actions disable \
    --instance <instance-name> \
    --resource-group <resource-group>