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 ve Cihaz 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 , SelfSigned veya 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.