Veri dışarı aktarma kullanarak IoT verilerini bulut hedeflerine dışarı aktarma
Bu makalede, Azure IoT Central 'da veri dışarı aktarmanın nasıl kullanılacağı açıklanır. IoT Central uygulamanızdan filtrelenmiş ve zenginleştirilmiş IoT verilerini sürekli dışa aktarmak için bu özelliği kullanın. Veri dışa aktarma, gerçek zamanlı Öngörüler, analiz ve depolama için bulut çözümünüzün diğer bölümlerine neredeyse gerçek zamanlı olarak değişiklikleri iter.
Örneğin, şunları yapabilirsiniz:
- Telemetri, özellik değişiklikleri, cihaz bağlantısı, cihaz yaşam döngüsü ve cihaz şablonu yaşam döngüsü verilerini neredeyse gerçek zamanlı olarak JSON biçiminde dışarı aktarın.
- Özel koşullara uyan verileri dışarı aktarmak için veri akışlarını filtreleyin.
- Veri akışlarını cihazdan özel değerler ve özellik değerleriyle zenginleştirin.
- Şekil ve içeriklerini değiştirmek için veri akışlarını dönüştürün.
- verileri azure Event Hubs, azure Veri Gezgini, azure Service Bus, azure Blob Depolama ve web kancası uç noktaları gibi hedeflere gönderin.
İpucu
Veri dışarı aktarmayı açtığınızda, bu andan itibaren yalnızca verileri alırsınız. Şu anda veri dışa aktarma kapalı olduğunda veriler bir saat için alınamaz. Daha fazla geçmiş verileri sürdürmek için, verilerin dışarı aktarılmasını erken açın.
Önkoşullar
Veri dışa aktarma özelliklerini kullanmak için bir v3 uygulamasınasahip olmanız ve veri dışa aktarma izninizin olması gerekir.
V2 uygulamanız varsa, bkz. v2 IoT Central uygulamanızı v3 'e geçirme.
Dışarı aktarma hedefini ayarla
Dışarı aktarma hedefi, veri dışa aktarma işlemini yapılandırmadan önce mevcut olmalıdır. Şu hedef türleri şu anda kullanılabilir:
- Azure Event Hubs
- Azure Service Bus kuyruğu
- Azure Service Bus konusu
- Azure Blob Depolama
- Azure Veri Gezgini
- Web Kancası
Bağlantı seçenekleri
Azure hizmet hedefleri için bağlantıyı bir bağlantı dizesiyle veya yönetilen bir kimlikleyapılandırmayı seçebilirsiniz. Yönetilen kimlikler şu nedenle daha güvenlidir:
- Kaynağınızın kimlik bilgilerini IoT Central uygulamanızdaki bir bağlantı dizesinde depokalmazsınız.
- Kimlik bilgileri, IoT Central uygulamanızın kullanım ömrüne otomatik olarak bağlanır.
- Yönetilen kimlikler, güvenlik anahtarlarını otomatik olarak düzenli olarak döndürebilir.
IoT Central Şu anda sistem tarafından atanan Yönetilen kimliklerkullanıyor.
Yönetilen bir kimlik yapılandırdığınızda, yapılandırma bir kapsam ve bir rol içerir:
- Kapsam, yönetilen kimliği nerede kullanacağınızı tanımlar. Örneğin, kapsam olarak bir Azure Kaynak grubu kullanabilirsiniz. Bu durumda, IoT Central uygulaması ve hedefin her ikisi de aynı kaynak grubunda olmalıdır.
- Rol, hedef hizmette IoT Central uygulamaya verilen izinleri tanımlar. Örneğin, bir IoT Central uygulamasının bir olay hub 'ına veri gönderebilmesi için, yönetilen kimliğin Azure Event Hubs veri gönderici rolü ataması gerekir.
Bu makalede, Azure portal yönetilen bir kimliğin nasıl oluşturulacağı gösterilmektedir. Ayrıca, Azure CLı kullanarak bir bir kimlik doğrulaması oluşturabilirsiniz. Daha fazla bilgi edinmek için bkz. Azure CLI kullanarak bir kaynağa yönetilen kimlik erişimi atama.
Event Hubs hedefi oluşturma
Uygulamasına dışarı aktarmak için mevcut bir Event Hubs ad alanınız yoksa, aşağıdaki adımları izleyin:
Azure Portal yeni bir Event Hubs ad alanıoluşturun. Azure Event Hubs docs'ta daha fazla bilgi edinebilirsiniz.
Event Hubs ad alanında bir olay hub 'ı oluşturun. Ad alanına gidin ve bir olay hub 'ı örneği oluşturmak için en üstteki + Olay Hub 'ını seçin.
IoT Central ' de veri dışarı aktarmayı ayarlarken kullanılacak bir anahtar oluşturun:
- Oluşturduğunuz Olay Hub örneğini seçin.
- Ayarlar > paylaşılan erişim ilkeleri' ni seçin.
- Yeni bir anahtar oluşturun veya gönderme izinleri olan varolan bir anahtarı seçin.
- Birincil veya ikincil bağlantı dizesini kopyalayın. IoT Central yeni bir hedef ayarlamak için bu bağlantı dizesini kullanın.
- Alternatif olarak, tüm Event Hubs ad alanı için bir bağlantı dizesi oluşturabilirsiniz:
- Azure portal Event Hubs ad alanına gidin.
- Ayarlar altında, paylaşılan erişim ilkeleri ' ni seçin.
- Yeni bir anahtar oluşturun veya gönderme izinleri olan varolan bir anahtarı seçin.
- Birincil veya ikincil bağlantı dizesini kopyalayın
Service Bus kuyruğu veya konu hedefi oluşturma
uygulamasına dışarı aktarmak için mevcut bir Service Bus ad alanınız yoksa, aşağıdaki adımları izleyin:
Azure portal yeni bir Service Bus ad alanıoluşturun. Azure Service Bus docs'ta daha fazla bilgi edinebilirsiniz.
uygulamasına dışarı aktarmak için bir kuyruk veya konu oluşturmak için Service Bus ad alanına gidin ve + queue veya + konu başlığını seçin.
IoT Central ' de veri dışarı aktarmayı ayarlarken kullanılacak bir anahtar oluşturun:
- Oluşturduğunuz kuyruğu veya konuyu seçin.
- Ayarlar/paylaşılan erişim ilkeleri' ni seçin.
- Yeni bir anahtar oluşturun veya gönderme izinleri olan varolan bir anahtarı seçin.
- Birincil veya ikincil bağlantı dizesini kopyalayın. IoT Central yeni bir hedef ayarlamak için bu bağlantı dizesini kullanın.
- alternatif olarak, tüm Service Bus ad alanı için bir bağlantı dizesi oluşturabilirsiniz:
- Azure portal Service Bus ad alanına gidin.
- Ayarlar altında, paylaşılan erişim ilkeleri ' ni seçin.
- Yeni bir anahtar oluşturun veya gönderme izinleri olan varolan bir anahtarı seçin.
- Birincil veya ikincil bağlantı dizesini kopyalayın
Azure Blob Depolama hedefi oluşturma
' A dışa aktarılacak mevcut bir Azure depolama hesabınız yoksa, aşağıdaki adımları izleyin:
Azure Portal yeni bir depolama hesabıoluşturun. yeni Azure Blob depolama hesapları veya Azure Data Lake Storage v2 depolama hesaplarıoluşturma hakkında daha fazla bilgi edinebilirsiniz. Veri dışa aktarma, yalnızca blok bloblarını destekleyen depolama hesaplarına veri yazabilir. Aşağıdaki listede, bilinen uyumlu depolama hesabı türleri gösterilmektedir:
Performans katmanı Hesap Türü Standart Genel Amaçlı v2 Standart Genel Amaçlı v1 Standart Blob depolama Premium Blob depolamayı engelle Depolama hesabınızda bir kapsayıcı oluşturmak için depolama hesabınıza gidin. BLOB hizmeti altında bloblara gözatamıyorum' ı seçin. Yeni bir kapsayıcı oluşturmak için üst kısımdaki + kapsayıcı ' yı seçin.
Ayarlar > erişim anahtarlarına giderek depolama hesabınız için bir bağlantı dizesi oluşturun. İki bağlantı dizesinin birini kopyalayın.
Azure Veri Gezgini hedefi oluşturma
Bir Azure Veri Gezgini kümeniz ve dışarı aktarılacak veritabanınız yoksa, aşağıdaki adımları izleyin:
Yeni bir Azure Veri Gezgini kümesi ve veritabanı oluşturun. Daha fazla bilgi edinmek için bkz. Azure Veri Gezgini hızlı başlangıç. Oluşturduğunuz veritabanının adını bir yere getirin ve bu değere aşağıdaki adımlarda ihtiyacınız vardır.
IoT Central uygulamanızı Azure Veri Gezgini 'a bağlamak için kullanabileceğiniz bir hizmet sorumlusu oluşturun. Aşağıdaki komutu çalıştırmak için Azure Cloud Shell kullanın:
az ad sp create-for-rbac --skip-assignment --name "My SP for IoT Central"appIdpasswordKomut çıkışında, ve değerlerini bir yere,tenantAşağıdaki adımlarda de ihtiyacınız olduğunu unutmayın.Hizmet sorumlusunu veritabanına eklemek için Azure Veri Gezgini portalına gidin ve aşağıdaki sorguyu veritabanınızda çalıştırın. Yer tutucuları, daha önce bir nota yaptığınız değerlerle değiştirin:
.add database <YourDatabaseName> admins ('aadapp=<YourAppId>;<YourTenant>');Veritabanınızda dışarı aktardığınız veriler için uygun bir şema içeren bir tablo oluşturun. Aşağıdaki örnek sorgu adlı bir tablo oluşturur
smartvitalspatch. Daha fazla bilgi için bkz. IoT Central uygulamanızın içindeki verileri dışarı aktarma Için dönüştürme:.create table smartvitalspatch ( EnqueuedTime:datetime, Message:string, Application:string, Device:string, Simulated:boolean, Template:string, Module:string, Component:string, Capability:string, Value:dynamic )Seçim Verileri Azure Veri Gezgini veritabanınıza aktarmak için:
Azure Veri Gezgini kümeniz için Konfigürasyonlar sayfasına gidin. Ardından akış alma seçeneğini etkinleştirin.
Akış alımını etkinleştirmek üzere tablo ilkesini değiştirmek için aşağıdaki sorguyu çalıştırın:
.alter table smartvitalspatch policy streamingingestion enable
Azure Veri Gezgini kümesi URL 'nizi, veritabanı adınızı ve tablo adını kullanarak IoT Central Azure Veri Gezgini hedefi ekleyin. Aşağıdaki tabloda, yetkilendirme için kullanılacak hizmet sorumlusu değerleri gösterilmektedir:
Hizmet sorumlusu değeri Hedef yapılandırma appId ClientID Kiracı Kiracı Kimliği password Gizli anahtar
Web kancası uç noktası oluşturma
Verileri herkese açık bir HTTP Web kancası uç noktasına aktarabilirsiniz. Requestbinkullanarak bir test Web kancası uç noktası oluşturabilirsiniz. İstek sınırına ulaşıldığında RequestBin kısıtlar isteği:
- Requestbin'i açın.
- Yeni bir RequestBin oluşturun ve BIN URL 'sini kopyalayın. Veri dışa aktarmayı test ettiğinizde bu URL 'YI kullanırsınız.
Veri dışarı aktarma ayarlama
Verilerinizi dışarı aktarmak için bir hedef olduğuna göre, IoT Central uygulamanızda veri dışarı aktarma ayarlayın:
IoT Central uygulamanızda oturum açın.
Sol bölmede veri dışa aktar' ı seçin.
İpucu
Sol bölmede veri dışa aktarma 'yı görmüyorsanız, uygulamanızda veri dışarı aktarma yapılandırma izniniz yok demektir. Verilerin dışarı aktarılmasını ayarlamak için bir yöneticiye danışın.
+ Yeni dışarı aktar'ı seçin.
Yeni dışa aktarma için bir görünen ad girin ve veri dışa aktarmanın etkinleştirildiğinden emin olun.
Dışarı aktarılacak veri türünü seçin. Aşağıdaki tabloda desteklenen veri dışa aktarma türleri listelenmektedir:
Veri türü Açıklama Veri biçimi Telemetri Neredeyse gerçek zamanlı olarak cihazlardan telemetri iletileri dışarı aktarın. Her bir dışarıya ileti, özgün cihaz iletisinin normalleştirilmiş, Normalleştirilmemiş. Telemetri ileti biçimi Özellik değişiklikleri Değişiklikleri cihaz ve bulut özelliklerine neredeyse gerçek zamanlı olarak dışa aktarın. Salt okuma cihaz özellikleri için, bildirilen değerlerde yapılan değişiklikler verilir. Okuma-yazma özellikleri için hem bildirilen hem de istenen değerler verilir. Özellik değiştirme iletisi biçimi Cihaz bağlantısı Cihaza bağlı ve bağlantısı kesilmiş olayları dışarı aktarın. Cihaz bağlantı iletisi biçimi Cihaz yaşam döngüsü Kayıtlı, silinmiş, sağlanmış, etkin, devre dışı, displayNameChanged ve deviceTemplateChanged olaylarını dışarı aktarın. Cihaz yaşam döngüsü değişiklikleri ileti biçimi Cihaz şablonu yaşam döngüsü Oluşturulan, güncellenen ve Silinen cihaz şablonu değişikliklerini dışarı aktarın. Cihaz şablonu yaşam döngüsü değişiklikleri ileti biçimi İsteğe bağlı olarak, dışarıya aktarılmış veri miktarını azaltmak için filtre ekleyin. Her bir veri dışa aktarma türü için farklı filtre türleri mevcuttur:
Veri türü Kullanılabilir filtreler Telemetri - Cihaz adına, cihaz KIMLIĞINE, cihaz şablonuna ve cihaz benzetimine göre filtrele
- Akışı yalnızca filtre koşullarını karşılayan telemetri içerecek şekilde filtrele
- Akışı yalnızca filtre koşullarıyla eşleşen özelliklere sahip cihazlardan telemetri içerecek şekilde filtreleyin
- Akışı yalnızca, filtre koşulunu karşılayan ileti özelliklerine sahip Telemetriyi içerecek şekilde filtreleyin. İleti özellikleri ( uygulama özellikleri olarak da bilinir), Isteğe bağlı olarak cihaz SDK 'larını kullanan cihazlar tarafından gönderilen her telemetri iletisindeki anahtar-değer çiftlerinin bir paketinde gönderilir. İleti özellik filtresi oluşturmak için Aradığınız ileti özelliği anahtarını girip bir koşul belirtin. Yalnızca belirtilen filtre koşuluyla eşleşen özelliklere sahip telemetri iletileri verilir. IoT Hub belgelerinden uygulama özellikleri hakkında daha fazla bilgi edinin
Özellik değişiklikleri - Cihaz adına, cihaz KIMLIĞINE, cihaz şablonuna ve cihaz benzetimine göre filtrele
- Akışı yalnızca filtre koşullarını karşılayan özellik değişikliklerini içerecek şekilde filtrele
Cihaz bağlantısı - Cihaz adına, cihaz KIMLIĞINE, cihaz şablonuna, kuruluşlara ve cihaz benzetimine göre filtrele
- Akışı yalnızca filtre koşullarıyla eşleşen özelliklere sahip cihazlardan gelen değişiklikleri içerecek şekilde filtreleyin
Cihaz yaşam döngüsü - Cihaz adına, cihaz KIMLIĞINE, cihaz şablonuna ve cihaz sağlandıysa, etkin ya da benzetimli olarak filtreleyin
- Akışı yalnızca filtre koşullarıyla eşleşen özelliklere sahip cihazlardan gelen değişiklikleri içerecek şekilde filtreleyin
Cihaz şablonu yaşam döngüsü - Cihaz şablonuna göre filtrele
İsteğe bağlı olarak, ek anahtar-değer çifti meta verileri ile içe aktarılmış iletileri zenginleştirin. Aşağıdaki zenginler telemetri, özellik değişiklikleri, cihaz bağlantısı ve cihaz yaşam döngüsü verileri dışarı aktarma türleri için kullanılabilir:
- Özel dize: her iletiye özel bir statik dize ekler. Herhangi bir anahtar girin ve herhangi bir dize değeri girin.
- Her iletiye ekleyen özelliği:
- Cihaz adı, cihaz şablonu adı, etkin, kuruluşlar, sağlanmış ve benzetimli gibi cihaz meta verileri.
- Geçerli cihaz, her ileti için özellik veya bulut özelliği değeri bildirdi. Verdiğiniz ileti, belirtilen özelliğe sahip olmayan bir cihazdan ise, bu, verdiğiniz ileti zenginleştirme almaz.
Hedefi yapılandırın:
Yeni bir hedef ekleyin veya önceden oluşturduğunuz hedefi ekleyin. Yeni bir bağlantı oluştur bağlantısını seçin ve aşağıdaki bilgileri ekleyin:
- Hedef adı: IoT Central içindeki hedefin görünen adı.
- Hedef türü: hedef türünü seçin. Hedefini henüz ayarlamadıysanız bkz. dışarı aktarma hedefini ayarlama.
- Yetkilendirme: bağlantı dizesini seçin.
- azure Event Hubs, azure Service Bus kuyruğu veya konusu için, kaynağınız için bağlantı dizesini yapıştırın ve gerekirse büyük/küçük harfe duyarlı olay hub 'ını, kuyruğunu veya konu adını girin.
- Azure Blob Depolama için, kaynağınızın bağlantı dizesini yapıştırın ve gerekirse, büyük/küçük harfe duyarlı kapsayıcı adını girin.
- Web kancası için, Web kancası uç noktanız için geri çağırma URL 'sini yapıştırın. İsteğe bağlı olarak, Web kancası yetkilendirmesini (OAuth 2,0 ve yetkilendirme belirteci) yapılandırabilir ve özel üstbilgiler ekleyebilirsiniz.
- OAuth 2,0 için yalnızca istemci kimlik bilgileri akışı desteklenir. Hedef kaydedildiğinde IoT Central, bir yetkilendirme belirteci almak için OAuth sağlayıcınızla iletişim kurar. Bu belirteç,
AuthorizationBu hedefe gönderilen her ileti için üstbilgiye eklenecektir. - Yetkilendirme belirteci için,
AuthorizationBu hedefe gönderilen her iletinin üstbilgisine doğrudan eklenecek bir belirteç değeri belirtebilirsiniz.
- OAuth 2,0 için yalnızca istemci kimlik bilgileri akışı desteklenir. Hedef kaydedildiğinde IoT Central, bir yetkilendirme belirteci almak için OAuth sağlayıcınızla iletişim kurar. Bu belirteç,
- Oluştur’u seçin.
+ Hedef ' i seçin ve açılan listeden bir hedef seçin. Tek bir dışarı aktarmaya en fazla beş hedef ekleyebilirsiniz.
Dışarı aktarma işleminizi ayarlamayı bitirdiğinizde Kaydet' i seçin. Birkaç dakika sonra verileriniz hedeflerinizin içinde görüntülenir.
Dışarı aktarmayı izleme
IoT Central dışarı aktarmaların durumunu kontrol edebilirsiniz. Ayrıca, dışarı aktardığınız veri miktarını ve dışarı aktarma hatalarını görmek için Azure izleyici 'yi de kullanabilirsiniz. Azure portal, REST API veya PowerShell veya Azure CLı sorguları ile grafiklerde, dışarı aktarma ve cihaz sistem durumu ölçümlerine erişebilirsiniz. Şu anda Azure Izleyici 'de aşağıdaki veri dışa aktarma ölçümlerini izleyebilirsiniz:
- Filtreler uygulanmadan önce dışarı aktarmaya gelen ileti sayısı.
- Filtrelerle geçen ileti sayısı.
- Hedeflere başarıyla aktarılmış ileti sayısı.
- Karşılaşılan hata sayısı.
Daha fazla bilgi için bkz. uygulama durumunu izleme.
Hedefler
Azure Blob Depolama hedefi
Veriler, önceki dışa aktarma işleminden bu yana değişiklik kümesini içeren her bir dosyayla birlikte dakikada bir kez dışarı aktarılabilir. İçe aktarılmış veriler JSON biçiminde kaydedilir. Depolama hesabınızdaki dışarı aktarılmış verilerin varsayılan yolları şunlardır:
- Telemetri: {Container}/{app-id}/{partition_id}/{yyyy}/{mm}/{dd}/{ss}/{mm}/{filename}
- Özellik değişiklikleri: {Container}/{app-id}/{partition_id}/{yyyy}/{mm}/{dd}/{ss}/{mm}/{filename}
Azure portal içe aktarılmış dosyalara gitmek için dosyaya gidin ve blobu Düzenle' yi seçin.
azure Event Hubs ve azure Service Bus hedefleri
Veriler neredeyse gerçek zamanlı olarak verilir. Veriler ileti gövdesinde bulunur ve JSON biçiminde UTF-8 olarak kodlanır.
İletinin ek açıklamaları veya sistem özellikleri paketi, iotcentral-device-id iotcentral-application-id iotcentral-message-source iotcentral-message-type ileti gövdesinde karşılık gelen alanlarla aynı değerlere sahip olan,, ve alanlarını içerir.
Azure Veri Gezgini hedefi
Veriler neredeyse gerçek zamanlı olarak Azure Veri Gezgini kümesindeki belirli bir veritabanı tablosuna aktarılabilir. Veriler ileti gövdesinde bulunur ve JSON biçiminde UTF-8 olarak kodlanır. Tablo şemasıyla eşleşen verileri dışarı aktarmak için IoT Central bir dönüşüm ekleyebilirsiniz.
Azure Veri Gezgini portalındaki aktarılmış verileri sorgulamak için veritabanına gidin ve sorgu' yı seçin.
Web kancası hedefi
Web kancaları için de veriler neredeyse gerçek zamanlı olarak verilir. İleti gövdesindeki veriler Event Hubs ve Service Bus aynı biçimde.
Telemetri biçimi
Her bir dışarıya gönderilen ileti, cihazın ileti gövdesinde gönderdiği tam iletinin normalleştirilmiş bir biçimini içerir. İleti JSON biçiminde ve UTF-8 olarak kodlanır. Her iletideki bilgiler şunları içerir:
applicationId: IoT Central uygulamasının KIMLIĞI.messageSource: İleti kaynağı-telemetry.deviceId: Telemetri iletisini gönderen cihazın KIMLIĞI.schema: Yük şemasının adı ve sürümü.templateId: Cihazla ilişkili cihaz şablonu KIMLIĞI.enqueuedTime: IoT Central tarafından bu iletinin alındığı zaman.enrichments: Dışa aktarma üzerinde herhangi bir zenginleştirme ayarlanır.module: Bu iletiyi gönderen IoT Edge modülü. Bu alan yalnızca iletinin bir IoT Edge modülünden geldiği durumlarda görüntülenir.component: Bu iletiyi gönderen bileşen. Bu alan yalnızca iletide gönderilen yetenekler cihaz şablonunda bir bileşen olarak modellendiyse görüntülenirmessageProperties: Cihazın iletiyle gönderdiği diğer özellikler. Bu özellikler bazen uygulama özellikleri olarak adlandırılır. IoT Hub belgelerinden daha fazla bilgi edinin.
Event Hubs ve Service Bus için IoT Central bir cihazdan iletiyi aldıktan sonra yeni bir iletiyi hızlı bir şekilde dışarı aktarır. Her iletinin Kullanıcı özelliklerinde (uygulama özellikleri olarak da anılır),, iotcentral-device-id iotcentral-application-id ve iotcentral-message-source otomatik olarak eklenir.
BLOB depolama için, iletiler toplu ve dakikada bir kez verilir.
Aşağıdaki örnek, dışarıya aktarılmış bir telemetri iletisini göstermektedir:
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "telemetry",
"deviceId": "1vzb5ghlsg1",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2020-08-05T22:26:55.455Z",
"telemetry": {
"Activity": "running",
"BloodPressure": {
"Diastolic": 7,
"Systolic": 71
},
"BodyTemperature": 98.73447010562934,
"HeartRate": 88,
"HeartRateVariability": 17,
"RespiratoryRate": 13
},
"enrichments": {
"userSpecifiedKey": "sampleValue"
},
"module": "VitalsModule",
"component": "DeviceComponent",
"messageProperties": {
"messageProp": "value"
}
}
İleti özellikleri
Telemetri, telemetri yüküne ek olarak meta veriler için özelliklere sahiptir. Önceki kod parçacığında ve gibi sistem iletilerinin örnekleri gösterilir deviceId enqueuedTime . Sistem iletisi özellikleri hakkında daha fazla bilgi için bkz. D2C IoT Hub Iletilerinin sistem özellikleri.
Telemetri iletilerinize özel meta veriler eklemeniz gerekiyorsa telemetri iletilerine özellikler ekleyebilirsiniz. Örneğin, cihaz iletiyi oluşturduğunda bir zaman damgası eklemeniz gerekir.
Aşağıdaki kod parçacığı, iothub-creation-time-utc cihazda oluşturduğunuz sırada özelliğin iletiye nasıl ekleneceğini göstermektedir:
Önemli
Bu zaman damgasının biçimi, saat dilimi bilgisi olmayan UTC olmalıdır. Örneğin, 2021-04-21T11:30:16Z geçerlidir, 2021-04-21T11:30:16-07:00 geçersiz.
async function sendTelemetry(deviceClient, index) {
console.log('Sending telemetry message %d...', index);
const msg = new Message(
JSON.stringify(
deviceTemperatureSensor.updateSensor().getCurrentTemperatureObject()
)
);
msg.properties.add("iothub-creation-time-utc", new Date().toISOString());
msg.contentType = 'application/json';
msg.contentEncoding = 'utf-8';
await deviceClient.sendEvent(msg);
}
Aşağıdaki kod parçacığı, blob depolamaya aktarılmış iletideki bu özelliği gösterir:
{
"applicationId":"5782ed70-b703-4f13-bda3-1f5f0f5c678e",
"messageSource":"telemetry",
"deviceId":"sample-device-01",
"schema":"default@v1",
"templateId":"urn:modelDefinition:mkuyqxzgea:e14m1ukpn",
"enqueuedTime":"2021-01-29T16:45:39.143Z",
"telemetry":{
"temperature":8.341033560421833
},
"messageProperties":{
"iothub-creation-time-utc":"2021-01-29T16:45:39.021Z"
},
"enrichments":{}
}
Özellik değişiklikleri biçimi
Her ileti veya kayıt, cihaz ve bulut özelliklerindeki değişiklikleri temsil eder. Verdiğiniz iletideki bilgiler şunları içerir:
applicationId: IoT Central uygulamasının KIMLIĞI.messageSource: İleti kaynağı-properties.messageType:cloudPropertyChange,devicePropertyDesiredChange, VeyadevicePropertyReportedChange.deviceId: Telemetri iletisini gönderen cihazın KIMLIĞI.schema: Yük şemasının adı ve sürümü.enqueuedTime: IoT Central tarafından bu değişikliğin algılandığı zaman.templateId: Cihazla ilişkili cihaz şablonu KIMLIĞI.properties: Değiştirilen özelliklerin ve değerlerin adları da dahil olmak üzere bir dizi özellik. Bileşen ve modül bilgileri, özelliğin bir bileşen veya IoT Edge modülü içinde modellenmesi durumunda dahil edilir.enrichments: Dışa aktarma üzerinde herhangi bir zenginleştirme ayarlanır.
Event Hubs ve Service Bus için, IoT Central yeni iletileri olay hub 'ınıza veya Service Bus kuyruğuna veya konuya neredeyse gerçek zamanlı olarak dışa aktarır. Her iletinin Kullanıcı özelliklerinde (uygulama özellikleri olarak da anılır),,, iotcentral-device-id iotcentral-application-id iotcentral-message-source ve iotcentral-message-type otomatik olarak eklenir.
BLOB depolama için, iletiler toplu ve dakikada bir kez verilir.
aşağıdaki örnek, Azure Blob Depolama alınan bir ihraç özelliği değişiklik iletisini gösterir.
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "properties",
"messageType": "cloudPropertyChange",
"deviceId": "18a985g1fta",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2020-08-05T22:37:32.942Z",
"properties": [{
"name": "MachineSerialNumber",
"value": "abc",
"module": "VitalsModule",
"component": "DeviceComponent"
}],
"enrichments": {
"userSpecifiedKey" : "sampleValue"
}
}
Cihaz bağlantısı değişiklikleri biçimi
Her ileti veya kayıt, tek bir cihazdan bir bağlantı olayını temsil eder. Verdiğiniz iletideki bilgiler şunları içerir:
applicationId: IoT Central uygulamasının KIMLIĞI.messageSource: İleti kaynağı-deviceConnectivity.messageType:connectedYa dadisconnected.deviceId: Değiştirilen cihazın KIMLIĞI.schema: Yük şemasının adı ve sürümü.templateId: Cihazla ilişkili cihaz şablonu KIMLIĞI.enqueuedTime: IoT Central içinde bu değişikliğin gerçekleştiği zaman.enrichments: Dışa aktarma üzerinde herhangi bir zenginleştirme ayarlanır.
Event Hubs ve Service Bus için, IoT Central yeni iletileri olay hub 'ınıza veya Service Bus kuyruğuna veya konuya neredeyse gerçek zamanlı olarak dışa aktarır. Her iletinin Kullanıcı özelliklerinde (uygulama özellikleri olarak da anılır),,, iotcentral-device-id iotcentral-application-id iotcentral-message-source ve iotcentral-message-type otomatik olarak eklenir.
BLOB depolama için, iletiler toplu ve dakikada bir kez verilir.
aşağıdaki örnek, Azure Blob Depolama alınan bir içe aktarılmış cihaz bağlantı iletisini gösterir.
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "deviceConnectivity",
"messageType": "connected",
"deviceId": "1vzb5ghlsg1",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2021-04-05T22:26:55.455Z",
"enrichments": {
"userSpecifiedKey": "sampleValue"
}
}
Cihaz yaşam döngüsü değişiklikleri biçimi
Her ileti veya kayıt tek bir cihazdaki bir değişikliği temsil eder. Verdiğiniz iletideki bilgiler şunları içerir:
applicationId: IoT Central uygulamasının KIMLIĞI.messageSource: İleti kaynağı-deviceLifecycle.messageType: Gerçekleşen değişikliğin türü. Biri:registered,deleted,,provisionedenabled,disabled,displayNameChanged, vedeviceTemplateChanged.deviceId: Değiştirilen cihazın KIMLIĞI.schema: Yük şemasının adı ve sürümü.templateId: Cihazla ilişkili cihaz şablonu KIMLIĞI.enqueuedTime: IoT Central içinde bu değişikliğin gerçekleştiği zaman.enrichments: Dışa aktarma üzerinde herhangi bir zenginleştirme ayarlanır.
Event Hubs ve Service Bus için, IoT Central yeni iletileri olay hub 'ınıza veya Service Bus kuyruğuna veya konuya neredeyse gerçek zamanlı olarak dışa aktarır. Her iletinin Kullanıcı özelliklerinde (uygulama özellikleri olarak da anılır),,, iotcentral-device-id iotcentral-application-id iotcentral-message-source ve iotcentral-message-type otomatik olarak eklenir.
BLOB depolama için, iletiler toplu ve dakikada bir kez verilir.
aşağıdaki örnek, Azure Blob Depolama alınan bir aktarılmış cihaz yaşam döngüsü iletisini gösterir.
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "deviceLifecycle",
"messageType": "registered",
"deviceId": "1vzb5ghlsg1",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2021-01-01T22:26:55.455Z",
"enrichments": {
"userSpecifiedKey": "sampleValue"
}
}
Cihaz şablonu yaşam döngüsü değişiklikleri biçimi
Her ileti veya kayıt, tek bir yayımlanan cihaz şablonuna yapılan bir değişikliği temsil eder. Verdiğiniz iletideki bilgiler şunları içerir:
applicationId: IoT Central uygulamasının KIMLIĞI.messageSource: İleti kaynağı-deviceTemplateLifecycle.messageType:created,updated, Veyadeleted.schema: Yük şemasının adı ve sürümü.templateId: Cihazla ilişkili cihaz şablonu KIMLIĞI.enqueuedTime: IoT Central içinde bu değişikliğin gerçekleştiği zaman.enrichments: Dışa aktarma üzerinde herhangi bir zenginleştirme ayarlanır.
Event Hubs ve Service Bus için, IoT Central yeni iletileri olay hub 'ınıza veya Service Bus kuyruğuna veya konuya neredeyse gerçek zamanlı olarak dışa aktarır. Her iletinin Kullanıcı özelliklerinde (uygulama özellikleri olarak da anılır),,, iotcentral-device-id iotcentral-application-id iotcentral-message-source ve iotcentral-message-type otomatik olarak eklenir.
BLOB depolama için, iletiler toplu ve dakikada bir kez verilir.
aşağıdaki örnek, Azure Blob Depolama alınan bir aktarılmış cihaz yaşam döngüsü iletisini gösterir.
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "deviceTemplateLifecycle",
"messageType": "created",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2021-01-01T22:26:55.455Z",
"enrichments": {
"userSpecifiedKey": "sampleValue"
}
}
Eski veri dışa aktarma ve veri dışa aktarma karşılaştırması
Aşağıdaki tabloda, eski veri dışa aktarma ve veri dışa aktarma özellikleri arasındaki farklar gösterilmektedir:
| Özellikler | Eski veri dışa aktarma | Yeni veri dışa aktarma |
|---|---|---|
| Kullanılabilir veri türleri | Telemetri, cihazlar, cihaz şablonları | Telemetri, özellik değişiklikleri, cihaz bağlantısı değişiklikleri, cihaz yaşam döngüsü değişiklikleri, cihaz şablonu yaşam döngüsü değişiklikleri |
| Filtreleme | Hiçbiri | , Dışarıya aktarılmış veri türüne bağlıdır. Telemetri için telemetri, ileti özellikleri, özellik değerleri ile filtreleme |
| Zenginleştirmeleri | Hiçbiri | Cihazdaki özel bir dize veya özellik değeri ile zenginleştirme |
| Hedefler | azure Event Hubs, azure Service Bus kuyrukları ve konuları, azure Blob Depolama | Eski veri dışa aktarma ve Web kancaları ile aynı |
| Desteklenen uygulama sürümleri | V2, V3 | Yalnızca v3 |
| Önemli sınırlar | Uygulama başına beş dışarı aktarma, dışarı aktarma başına bir hedef | 10 dışarı aktarmalar-uygulama başına hedef bağlantı |
Sonraki adımlar
Veri dışa aktarmanın nasıl yapılandırılacağını bildiğinize göre, bir sonraki adım, IoT Central uygulamanızın içindeki verileri dışarı aktarma Için dönüştürmeyiöğrenmaktır.