Event Grid kaynağı olarak Azure IoT Hub

Bu makalede, Azure IoT Hub olayları için özellikler ve şema sağlanır. Olay şemalarına giriş için bkz. olay şemasını Azure Event Grid.

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 Bir cihaz IoT hub'ından 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 bağlantısı kesildiğinde yayımlanır.
Microsoft.Devices.DeviceTelemetry IoT hub'ına telemetri iletisi gönderildiğinde yayımlanır.

Örnek olay

DeviceConnected ve DeviceDisconnected olaylarının şeması aynı yapıya sahiptir. Bu örnek olay, bir cihaz IoT hub'ına bağlandığında tetiklenen olayın şemasını gösterir:

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

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

[{
  "id": "9af86784-8d40-fe2g-8b2a-bab65e106785",
  "topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", 
  "subject": "devices/LogicAppTestDevice", 
  "eventType": "Microsoft.Devices.DeviceTelemetry",
  "eventTime": "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"        
        }    
    },
  "dataVersion": "",
  "metadataVersion": "1"
}]

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

[{
  "id": "56afc886-767b-d359-d59e-0da7877166b2",
  "topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
  "subject": "devices/LogicAppTestDevice",
  "eventType": "Microsoft.Devices.DeviceCreated",
  "eventTime": "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"
  },
  "dataVersion": "1",
  "metadataVersion": "1"
}]

Olay özellikleri

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

Özellik Tür Description
id dize Olayın benzersiz tanımlayıcısı.
topic string Olay kaynağının tam kaynak yolu. Bu alan yazılabilir değil. Event Grid bu değeri sağlar.
subject string Olay konusunun yayımcı tarafından tanımlanan yolu.
eventType string Bu olay kaynağı için kayıtlı olay türlerinden biri.
eventTime string Sağlayıcının UTC saati temelinde olayın oluşturulduğu saat.
data object Olay verilerini IoT Hub.
dataVersion string Veri nesnesinin şema sürümü. Şema sürümünü yayımcı tanımlar.
metadataVersion string Olay meta verilerinin şema sürümü. Event Grid en üst düzey özelliklerin şemasını tanımlar. Event Grid bu değeri sağlar.

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

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

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

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

Özellik Tür Description
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 karakterlerin yanı sıra şu özel karakterleri destekler: - : . + % _ # * ? ! ( ) , = @ ; $ '.
deviceConnectionStateEventInfo object Cihaz bağlantı durumu olay bilgileri
sequenceNumber string Cihaz bağlı veya cihaz bağlantısı kesilmiş olayların sırasını belirtmeye yardımcı olan bir sayı. En son olay, önceki olaydan daha yüksek bir sıra numarasına sahip olacaktır. Bu sayı 1'den fazla değişebilir, ancak kesinlikle artmaktadır. Sıra numarasının nasıl kullanılacağını öğrenin.

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 Description
body dize Cihazdan gelen iletinin içeriği.
properties string Uygulama özellikleri, iletiye eklenebilen kullanıcı tanımlı dizelerdir. Bu alanlar isteğe bağlıdır.
system properties string 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 ayarlanmadıysa, IoT Hub iletileri 64 tabanında 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 Description
twin object Uygulama cihazı meta verilerinin bulut gösterimi olan cihaz ikizi hakkında bilgiler.
deviceID string Cihaz ikizinin benzersiz tanımlayıcısı.
etag string 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 olacağı garanti edilir.
deviceEtag string Cihaz kayıt defteri güncelleştirmelerinin tutarlılığını sağlamaya yönelik bir doğrulayıcı. Her deviceEtag'in cihaz kayıt defteri başına benzersiz olacağı garanti edilir.
status string Cihaz ikizinin etkinleştirilip etkinleştirilmediği veya devre dışı bırakılıp bırakılmadığı.
statusUpdateTime string Son cihaz ikizi durum güncelleştirmesinin ISO8601 zaman damgası.
connectionState string Cihazın bağlı veya bağlantısı kesilmiş olup olmadığı.
lastActivityTime string Son etkinliğin ISO8601 zaman damgası.
cloudToDeviceMessageCount tamsayı Bu cihaza gönderilen buluttan cihaza ileti sayısı.
authenticationType string Bu cihaz için kullanılan kimlik doğrulama türü: SAS, SelfSignedveya CertificateAuthority.
x509Thumbprint string 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 string x509 sertifikası için birincil parmak izi.
secondaryThumbprint string x509 sertifikası için ikincil parmak izi.
version tamsayı Cihaz ikizi her güncelleştirildiğinde bir artırılan tamsayı.
desired object Özelliklerin yalnızca uygulama arka ucu tarafından yazılabilen ve cihaz tarafından okunabilen bir bölümü.
reported object Özelliklerin yalnızca cihaz tarafından yazılabilen ve uygulama arka ucu tarafından okunabilen bir bölümü.
lastUpdated string Son cihaz ikizi özellik güncelleştirmesinin ISO8601 zaman damgası.

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

Başlık Açıklama
Logic Apps kullanarak Azure IoT Hub olayları hakkında e-posta bildirimleri gönderme Mantıksal uygulama, IoT Hub her cihaz eklendiğinde bir bildirim e-postası gönderir.
Eylemleri tetikleme amacıyla Event Grid kullanarak olayları IoT Hub React 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ı sıralamayı gösterir.

Sonraki adımlar