Aracılığıyla paylaş


Event Grid kaynağı olarak Azure IoT Hub

Bu makale, Azure IoT Hub olaylarının özelliklerini ve şemasını sağlar. Olay şemalarına giriş için bkz . Azure Event Grid olay şeması.

Kullanılabilir olay türleri

Azure IoT Hub aşağıdaki olay türlerini yayar:

Olay türü Açıklama
Microsoft.Devices.DeviceCreated Bir cihaz IoT Hub’ına kaydedildiğinde yayımlanır.
Microsoft.Devices.DeviceDeleted IoT Hub’ından bir cihaz silindiğinde yayımlanır.
Microsoft.Devices.DeviceConnected Bir cihaz IoT Hub’ına bağlandığında yayımlanır.
Microsoft.Devices.DeviceDisconnected Bir cihazın IoT Hub’ından bağlantısı kesildiğinde yayımlanır.
Microsoft.Devices.DeviceTelemetry IoT hub'ına telemetri iletisi gönderildiğinde yayımlanır.

Örnek olay

Device Bağlan ed ve DeviceDisconnected olaylarının şemaları aynı yapıya sahiptir. Bu örnek olay, bir cihaz bir IoT hub'ına bağlandığında oluşturulan bir olayın şemasını gösterir:

[{
  "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8", 
  "source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", 
  "subject": "devices/LogicAppTestDevice", 
  "type": "Microsoft.Devices.DeviceConnected", 
  "time": "2018-06-02T19:17:44.4383997Z", 
  "data": {
    "deviceConnectionStateEventInfo": {
      "sequenceNumber":
        "000000000000000001D4132452F67CE200000002000000000000000000000001"
    },
    "hubName": "egtesthub1",
    "deviceId": "LogicAppTestDevice",
    "moduleId" : "DeviceModuleID"
  }, 
  "specversion": "1.0"
}]

DeviceTelemetry olayı, ioT Hub'a bir telemetri olayı gönderildiğinde oluşturulur. Bu olay için örnek şema aşağıda gösterilmiştir.

[{
  "id": "9af86784-8d40-fe2g-8b2a-bab65e106785",
  "source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", 
  "subject": "devices/LogicAppTestDevice", 
  "type": "Microsoft.Devices.DeviceTelemetry",
  "time": "2019-01-07T20:58:30.48Z",
  "data": {        
      "body": {            
          "Weather": {                
              "Temperature": 900            
          },
          "Location": "USA"        
      },
        "properties": {            
          "Status": "Active"        
        },
        "systemProperties": {            
            "iothub-content-type": "application/json",
            "iothub-content-encoding": "utf-8",
            "iothub-connection-device-id": "d1",
            "iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
            "iothub-connection-auth-generation-id": "123455432199234570",
            "iothub-enqueuedtime": "2019-01-07T20:58:30.48Z",
            "iothub-message-source": "Telemetry"        
        }    
    },
  "specversion": "1.0"
}]

DeviceCreated ve DeviceDeleted olaylarının şemaları aynı yapıya sahiptir. Bu örnek olay, bir cihaz Bir IoT hub'ına kaydedildiğinde oluşturulan bir olayın şemasını gösterir:

[{
  "id": "56afc886-767b-d359-d59e-0da7877166b2",
  "source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
  "subject": "devices/LogicAppTestDevice",
  "type": "Microsoft.Devices.DeviceCreated",
  "time": "2018-01-02T19:17:44.4383997Z",
  "data": {
    "twin": {
      "deviceId": "LogicAppTestDevice",
      "etag": "AAAAAAAAAAE=",
      "deviceEtag": "null",
      "status": "enabled",
      "statusUpdateTime": "0001-01-01T00:00:00",
      "connectionState": "Disconnected",
      "lastActivityTime": "0001-01-01T00:00:00",
      "cloudToDeviceMessageCount": 0,
      "authenticationType": "sas",
      "x509Thumbprint": {
        "primaryThumbprint": null,
        "secondaryThumbprint": null
      },
      "version": 2,
      "properties": {
        "desired": {
          "$metadata": {
            "$lastUpdated": "2018-01-02T19:17:44.4383997Z"
          },
          "$version": 1
        },
        "reported": {
          "$metadata": {
            "$lastUpdated": "2018-01-02T19:17:44.4383997Z"
          },
          "$version": 1
        }
      }
    },
    "hubName": "egtesthub1",
    "deviceId": "LogicAppTestDevice"
  },
  "specversion": "1.0"
}]

Olay özellikleri

Tüm olaylar aynı üst düzey verileri içerir:

Özellik Türü Veri Akışı Açıklaması
id Dize Olayın benzersiz tanımlayıcısı.
source Dize Olay kaynağının tam kaynak yolu. Bu alan yazılabilir değil. Event Grid bu değeri sağlar.
subject Dize Olay konusunun yayımcı tarafından tanımlanan yolu.
type Dize Bu olay kaynağı için kayıtlı olay türlerinden biri.
time Dize Sağlayıcının UTC saati temelinde olayın oluşturulduğu saat.
data nesne IoT Hub olay verileri.
specversion Dize CloudEvents şema belirtimi sürümü.

Tüm IoT Hub olayları için veri nesnesi aşağıdaki özellikleri içerir:

Özellik Türü Veri Akışı Açıklaması
hubName Dize Cihazın oluşturulduğu veya silindiği IoT Hub'ın adı.
deviceId Dize Cihazın benzersiz tanımlayıcısı. Bu büyük/küçük harfe duyarlı dize en çok 128 karakter uzunluğunda olabilir ve ASCII 7 bit alfasayısal karakterleri ve aşağıdaki özel karakterleri destekler: - : . + % _ # * ? ! ( ) , = @ ; $ '.

Veri nesnesinin içeriği her olay yayımcısı için farklıdır.

Cihaz Bağlan veCihaz Bağlantısı Kesilmiş IoT Hub olayları için veri nesnesi aşağıdaki özellikleri içerir:

Özellik Türü Veri Akışı Açıklaması
moduleId Dize Modülün benzersiz tanımlayıcısı. Bu alan yalnızca modül cihazları için çıktıdır. Bu büyük/küçük harfe duyarlı dize en çok 128 karakter uzunluğunda olabilir ve ASCII 7 bit alfasayısal karakterleri ve aşağıdaki özel karakterleri destekler: - : . + % _ # * ? ! ( ) , = @ ; $ '.
deviceConnectionStateEventInfo nesne Cihaz bağlantı durumu olay bilgileri
sequenceNumber Dize Cihaz bağlı veya cihaz bağlantısı kesilmiş olayların sırasının gösterilmesine yardımcı olan bir numara. En son olay, önceki olaydan daha yüksek bir sıra numarasına sahip olur. Bu sayı 1'den fazla değişebilir, ancak kesinlikle artmaktadır. Sıra numarasının nasıl kullanılacağını görün.

Cihaz Telemetrisi IoT Hub olayı için veri nesnesi IoT hub ileti biçiminde cihazdan buluta iletisini içerir ve aşağıdaki özelliklere sahiptir:

Özellik Türü Veri Akışı Açıklaması
body Dize Cihazdan iletinin içeriği.
properties Dize Uygulama özellikleri, iletiye eklenebilen kullanıcı tanımlı dizelerdir. Bu alanlar isteğe bağlıdır.
system properties Dize Sistem özellikleri , iletilerin içeriğini ve kaynağını belirlemeye yardımcı olur. Cihaz telemetri iletisi, contentType değeri JSON ve contentEncoding değeri ileti sistemi özelliklerinde UTF-8 olarak ayarlanmış geçerli bir JSON biçiminde olmalıdır. Bu ayarlı değilse IoT Hub iletileri 64 tabanlı kodlanmış biçimde yazar.

Cihaz Oluşturuldu ve Cihaz Silindi IoT Hub olayları için veri nesnesi aşağıdaki özellikleri içerir:

Özellik Türü Açıklama
twin nesne Uygulama cihazı meta verilerinin bulut gösterimi olan cihaz ikizi hakkında bilgi.
deviceID Dize Cihaz ikizinin benzersiz tanımlayıcısı.
etag Dize Cihaz ikizine yönelik güncelleştirmelerin tutarlılığını sağlamaya yönelik bir doğrulayıcı. Her etag'in cihaz ikizi başına benzersiz olması garanti edilir.
deviceEtag Dize Cihaz kayıt defteri güncelleştirmelerinin tutarlılığını sağlamaya yönelik bir doğrulayıcı. Her deviceEtag'ın cihaz kayıt defteri başına benzersiz olması garanti edilir.
status Dize Cihaz ikizinin etkinleştirilip etkinleştirilmediğini veya devre dışı bırakılıp bırakılmadığını gösterir.
statusUpdateTime Dize Son cihaz ikizi durum güncelleştirmesinin ISO8601 zaman damgası.
connectionState Dize Cihazın bağlı olup olmadığını veya bağlantısının kesilip kesilmediğini gösterir.
lastActivityTime Dize Son etkinliğin ISO8601 zaman damgası.
cloudToDeviceMessageCount integer Bu cihaza gönderilen buluttan cihaza ileti sayısı.
authenticationType Dize Bu cihaz için kullanılan kimlik doğrulama türü: SAS, SelfSignedveya CertificateAuthority.
x509Thumbprint Dize Parmak izi, bir sertifika deposundaki belirli bir sertifikayı bulmak için yaygın olarak kullanılan x509 sertifikası için benzersiz bir değerdir. Parmak izi SHA1 algoritması kullanılarak dinamik olarak oluşturulur ve sertifikada fiziksel olarak bulunmaz.
primaryThumbprint Dize x509 sertifikası için birincil parmak izi.
secondaryThumbprint Dize x509 sertifikası için ikincil parmak izi.
version integer Cihaz ikizi her güncelleştirildiğinde bir artırılan tamsayı.
desired nesne Özelliklerin yalnızca uygulama arka ucu tarafından yazılabilen ve cihaz tarafından okunabilen bir bölümü.
reported nesne Özelliklerin yalnızca cihaz tarafından yazılabilen ve uygulama arka ucu tarafından okunabilen bir bölümü.
lastUpdated Dize Son cihaz ikizi özellik güncelleştirmesinin ISO8601 zaman damgası.

Öğreticiler ve nasıl yapılır kılavuzları

Ünvan Açıklama
Logic Apps kullanarak Azure IoT Hub olayları hakkında e-posta bildirimleri gönderme Mantıksal uygulama, IoT Hub'ınıza her cihaz eklendiğinde bildirim e-postası gönderir.
Eylemleri tetikleme amacıyla Event Grid kullanarak IoT Hub olaylarına tepki verme IoT Hub'ı Event Grid ile tümleştirmeye genel bakış.
Cihaz bağlı ve cihaz bağlantısı kesilmiş olayları sipariş etme Cihaz bağlantı durumu olaylarının nasıl sıralanması gerektiğini gösterir.

Sonraki adımlar

  • Azure Event Grid'e giriş için bkz. Event Grid nedir?
  • IoT Hub ve Event Grid'in birlikte nasıl çalıştığı hakkında bilgi edinmek için bkz . Eylemleri tetikleme amacıyla Event Grid kullanarak IoT Hub olaylarına tepki verme.