Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure IoT Hub , cihaz ikizi özellikleri, etiketleri vedoğrudan yöntemler gibi birçok yapı taşları sağlar. Genellikle arka uç uygulamaları, cihaz yöneticilerinin ve operatörlerin IoT cihazlarını toplu ve zamanlanmış bir zamanda güncelleştirmesine ve bunlarla etkileşim kurmasına olanak tanır. İşler, cihaz ikizi güncellemelerini ve doğrudan komutları zamanlı bir şekilde bir dizi cihazda uygular. Örneğin, bir operatör, bina 43 ve kat 3'teki bir dizi cihazı, bina işlemlerini kesintiye uğratmayacak bir zamanda yeniden başlatmak için işi başlatan ve izleyen bir arka uç uygulaması kullanır.
Uyarı
Bu makalede açıklanan özellikler yalnızca IoT Hub'ın standart katmanında kullanılabilir. Temel ve standart/ücretsiz IoT Hub katmanları hakkında daha fazla bilgi için bkz. çözüm için doğru IoT Hub katmanını ve boyutunu seçme.
Cihaz kümesinde aşağıdaki etkinliklerden herhangi birini zamanlamak ve ilerlemesini izlemek gerektiğinde işlevleri kullanmayı düşünebilirsiniz.
- İstenen özellikleri güncelleştirme
- Etiketleri güncelleştirme
- Doğrudan yöntemleri çağırma
İş yaşam döngüsü
İşler çözüm arka ucu tarafından başlatılır ve IoT Hub tarafından korunur. Hizmete yönelik bir URI (PUT https://<iot hub>/jobs/v2/<jobID>?api-version=2021-04-12) aracılığıyla bir iş başlatabilir ve hizmete yönelik bir URI (GET https://<iot hub>/jobs/v2/<jobID?api-version=2021-04-12) aracılığıyla yürütülen bir işte ilerleme durumunu sorgulayabilirsiniz. Bir iş başlatıldıktan sonra çalışan işlerin durumunu yenilemek için bir iş sorgusu yapın. İş geçmişi açıkça temizlenmez, ancak 30 günlük bir TTL'leri vardır.
Uyarı
Bir işi başlattığınızda, özellik adları ve değerleri, aşağıdaki kümedekiler dışında yalnızca US-ASCII yazdırılabilir alfasayısal karakterler içerebilir: $ ( ) < > @ , ; : \ " / [ ] ? = { } SP HT
Uyarı
Alan jobId 64 karakter veya daha az olmalıdır ve yalnızca US-ASCII harf, sayı ve tire (-) karakteri içerebilir.
Doğrudan yöntemleri yürütmek için görevler
Aşağıdaki kod parçacığında, bir iş kullanarak bir dizi cihazda doğrudan yöntem yürütmeye yönelik HTTPS 1.1 istek ayrıntıları gösterilmektedir:
PUT /jobs/v2/<jobId>?api-version=2021-04-12
Authorization: <config.sharedAccessSignature>
Content-Type: application/json; charset=utf-8
{
"jobId": "<jobId>",
"type": "scheduleDeviceMethod",
"cloudToDeviceMethod": {
"methodName": "<methodName>",
"payload": <payload>,
"responseTimeoutInSeconds": methodTimeoutInSeconds
},
"queryCondition": "<queryOrDevices>", // query condition
"startTime": <jobStartTime>, // as an ISO-8601 date string
"maxExecutionTimeInSeconds": <maxExecutionTimeInSeconds>
}
Sorgu koşulu, aşağıdaki örneklerde gösterildiği gibi tek bir cihaz kimliğinde veya cihaz kimlikleri listesinde de olabilir:
"queryCondition" = "deviceId = 'MyDevice1'"
"queryCondition" = "deviceId IN ['MyDevice1','MyDevice2']"
"queryCondition" = "deviceId IN ['MyDevice1']"
IoT Hub sorgu dili hakkında daha fazla bilgi için bkz. Cihaz ve modül ikizleri, işler ve ileti yönlendirme için IoT Hub sorgu dili.
Aşağıdaki kod parçacığı, contoso-hub-1 üzerindeki tüm cihazlarda testMethod adlı doğrudan bir yöntemi çağırmak üzere zamanlanmış bir işin isteğini ve yanıtını gösterir:
PUT https://contoso-hub-1.azure-devices.net/jobs/v2/job01?api-version=2021-04-12 HTTP/1.1
Authorization: SharedAccessSignature sr=contoso-hub-1.azure-devices.net&sig=68iv------------------------------------v8Hxalg%3D&se=1556849884&skn=iothubowner
Content-Type: application/json; charset=utf-8
Host: contoso-hub-1.azure-devices.net
Content-Length: 317
{
"jobId": "job01",
"type": "scheduleDeviceMethod",
"cloudToDeviceMethod": {
"methodName": "testMethod",
"payload": {},
"responseTimeoutInSeconds": 30
},
"queryCondition": "*",
"startTime": "2019-05-04T15:53:00.077Z",
"maxExecutionTimeInSeconds": 20
}
HTTP/1.1 200 OK
Content-Length: 65
Content-Type: application/json; charset=utf-8
Vary: Origin
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 03 May 2019 01:46:18 GMT
{"jobId":"job01","type":"scheduleDeviceMethod","status":"queued"}
Cihaz ikizi özelliklerini güncelleştirme işleri
Aşağıdaki kod parçacığı, bir iş kullanarak cihaz ikizi özelliklerini güncelleştirmeye yönelik HTTPS 1.1 istek ayrıntılarını gösterir:
PUT /jobs/v2/<jobId>?api-version=2021-04-12
Authorization: <config.sharedAccessSignature>
Content-Type: application/json; charset=utf-8
{
"jobId": "<jobId>",
"type": "scheduleUpdateTwin",
"updateTwin": <patch> // Valid JSON object
"queryCondition": "<queryOrDevices>", // query condition
"startTime": <jobStartTime>, // as an ISO-8601 date string
"maxExecutionTimeInSeconds": <maxExecutionTimeInSeconds>
}
Uyarı
updateTwin özelliği geçerli bir etag eşleşmesi gerektirir; örneğin, etag="*".
Aşağıdaki kod parçacığı, contoso-hub-1'de test cihazının cihaz ikizi özelliklerini güncellemek için planlanmış bir görevin talebini ve yanıtını gösterir.
PUT https://contoso-hub-1.azure-devices.net/jobs/v2/job02?api-version=2021-04-12 HTTP/1.1
Authorization: SharedAccessSignature sr=contoso-hub-1.azure-devices.net&sig=BN0U-------------------------------------RuA%3D&se=1556925787&skn=iothubowner
Content-Type: application/json; charset=utf-8
Host: contoso-hub-1.azure-devices.net
Content-Length: 339
{
"jobId": "job02",
"type": "scheduleUpdateTwin",
"updateTwin": {
"properties": {
"desired": {
"test1": "value1"
}
},
"etag": "*"
},
"queryCondition": "deviceId = 'test-device'",
"startTime": "2019-05-08T12:19:56.868Z",
"maxExecutionTimeInSeconds": 20
}
HTTP/1.1 200 OK
Content-Length: 63
Content-Type: application/json; charset=utf-8
Vary: Origin
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 03 May 2019 22:45:13 GMT
{"jobId":"job02","type":"scheduleUpdateTwin","status":"queued"}
İşlerin ilerleme durumunu sorgulama
Aşağıdaki kod parçacığında işler için sorgulamaya yönelik HTTPS 1.1 istek ayrıntıları gösterilmektedir:
GET /jobs/v2/query?api-version=2021-04-12[&jobType=<jobType>][&jobStatus=<jobStatus>][&pageSize=<pageSize>][&continuationToken=<continuationToken>]
Authorization: <config.sharedAccessSignature>
Content-Type: application/json; charset=utf-8
continuationToken, yanıttan alınır.
Cihaz ve modül ikizleri, işler ve ileti yönlendirme için IoT Hub sorgu dilini kullanarak her cihazda iş yürütme durumunu sorgulayabilirsiniz.
İş özellikleri
Aşağıdaki listede, işler veya iş sonuçları sorgulandığında kullanılabilecek özellikler ve ilgili açıklamalar gösterilir.
| Mülkiyet | Açıklama |
|---|---|
| jobId | Uygulamanın iş için sağladığı kimlik. |
| başlangıçZamanı | Uygulama iş için başlangıç saati (ISO-8601) sağladı. |
| endTime | IoT Hub'un işin tamamlandığı tarihe (ISO-8601) sağladığı bilgi. Yalnızca iş 'tamamlandı' durumuna ulaştıktan sonra geçerlidir. |
| maxExecutionTimeInSeconds | Uygulama, işin başlamasından tamamlanana kadar izin verilen toplam süre üst sınırını sağladı. |
| türü | İş türleri: |
| scheduleUpdateTwin: İstenen özellikler veya etiketler kümesini güncelleştirmek için kullanılan bir iş. | |
| scheduleDeviceMethod: Bir cihaz ikizleri setinde cihaz yöntemini çağırmak için kullanılan bir görev. | |
| durum | Geçerli iş durumu. Durum için olası değerler: |
| beklemede: Zamanlanmış ve bir iş hizmeti tarafından alınmayı bekliyor. | |
| zamanlanmış: Gelecekte bir zaman için planlanmıştır. | |
| çalışmakta olan: Şu anda etkin olan iş. | |
| iptal edildi: İş iptal edildi. | |
| başarısız: İş başarısız oldu. | |
| tamamlandı: İş tamamlandı. | |
| deviceJobStatistics | İşin yürütülmesiyle ilgili istatistikler. |
| deviceJobStatistics özellikleri: | |
| deviceJobStatistics.deviceCount: İşteki cihaz sayısı. | |
| deviceJobStatistics.failedCount: İşin başarısız olduğu cihaz sayısı. | |
| deviceJobStatistics.succeededCount: Görevin başarılı olduğu cihaz sayısı. | |
| deviceJobStatistics.runningCount: şu anda işi çalıştıran cihaz sayısı. | |
| deviceJobStatistics.pendingCount: İşi çalıştırmayı bekleyen cihaz sayısı. |
Diğer başvuru malzemeleri
IoT Hub geliştirici kılavuzundaki diğer başvuru makaleleri şunlardır:
IoT Hub uç noktaları, her IoT hub'ının çalışma zamanı ve yönetim işlemleri için sunduğu çeşitli uç noktaları tanımlar.
IoT Hub kotaları ve azaltma , IoT Hub hizmetine uygulanan kotaları ve hizmeti kullanırken bekleyebileceğiniz azaltma davranışını açıklar.
Azure IoT Hub SDK'ları, IoT Hub ile etkileşim kuran hem cihaz hem de hizmet uygulamaları geliştirirken kullanabileceğiniz çeşitli dil SDK'larını listeler.
Cihaz ve modül ikizleri, işler ve ileti yönlendirme için IoT Hub sorgu dili, IoT Hub sorgu dilini açıklar. IoT Hub'dan cihaz ikizleriniz ve işleriniz hakkındaki bilgileri almak için bu sorgu dilini kullanın.
MQTT protokolunu kullanarak bir IoT hub'ı ile iletişim kurmak, MQTT protokolü için IoT Hub desteği hakkında daha fazla bilgi sağlar.
Sonraki adımlar
Bu makalede açıklanan kavramlardan bazılarını keşfetmek için aşağıdaki IoT Hub makalesine bakın: