Azure Digital Twins'de kullanıcı tanımlı işlevlerde hata ayıklama
Önemli
Azure Digital Twins hizmetinin yeni bir sürümü yayınlandı. Yeni hizmetin genişletilmiş özellikleri ışığında özgün Azure Digital Twins hizmeti (bu belge kümesinde açıklanmıştır) kullanımdan kaldırılmıştır.
Yeni hizmetin belgelerini görüntülemek için etkin Azure Digital Twins Belgeleri'ni ziyaret edin.
Bu makalede Azure Digital Twins'de kullanıcı tanımlı işlevleri tanılama ve hatalarını ayıklama işlemleri özetlenmektedir. Ardından, hata ayıklama sırasında bulunan en yaygın senaryolardan bazılarını tanımlar.
İpucu
Etkinlik Günlüklerini, Tanılama Günlüklerini ve Azure İzleyici'yi kullanarak Azure Digital Twins'de hata ayıklama araçlarını ayarlama hakkında daha fazla bilgi edinmek için İzlemeyi ve günlüğe kaydetmeyi yapılandırma bölümüne bakın.
Hata ayıklama sorunları
Azure Digital Twins'de sorunları tanılamayı bilmek sorunları etkili bir şekilde analiz etmenizi, sorunların nedenlerini belirlemenizi ve bunlara uygun çözümler sunmanızı sağlar.
Bu amaçla çeşitli günlüğe kaydetme, analiz ve tanılama araçları sağlanır.
Örneğin için günlüğe kaydetmeyi etkinleştirme
Azure Digital Twins güçlü günlüğe kaydetmeyi, izlemeyi ve analizi destekler. Çözüm geliştiricileri Bir IoT uygulamasının karmaşık izleme gereksinimlerini desteklemek için Azure İzleyici günlüklerini, tanılama günlüklerini, etkinlik günlüklerini ve diğer hizmetleri kullanabilir. Günlüğe kaydetme seçenekleri, birçok hizmette kayıtları sorgulamak veya görüntülemek ve birçok hizmet için ayrıntılı günlük kapsamı sağlamak üzere birleştirilebilir.
- Azure Digital Twins'e özgü günlük yapılandırması için İzlemeyi ve günlüğü yapılandırma'yı okuyun.
- Azure İzleyici aracılığıyla etkinleştirilen güçlü günlük ayarları hakkında bilgi edinmek için Azure İzleyici'ye genel bakış bölümüne bakın.
- Azure portal, Azure CLI veya PowerShell aracılığıyla Azure Digital Twins'de tanılama günlüğü ayarlarını yapılandırmak için Azure kaynaklarınızdan günlük verilerini toplama ve kullanma makalesini gözden geçirin.
Yapılandırıldıktan sonra tüm günlük kategorilerini, ölçümleri seçebilir ve hata ayıklama çalışmalarınızı desteklemek için güçlü Azure İzleyici log analytics çalışma alanlarını kullanabilirsiniz.
Algılayıcı telemetri verilerini izleme
Algılayıcı telemetrisini izlemek için Azure Digital Twins örneğinizde tanılama ayarlarının etkinleştirildiğini doğrulayın. Ardından, istenen tüm günlük kategorilerinin seçildiğinden emin olun. Son olarak, istenen günlüklerin Azure İzleyici günlüklerine gönderildiğini onaylayın.
Algılayıcı telemetri iletisini ilgili günlüklerine eşleştirmek için, gönderilen olay verileri üzerinde bir Bağıntı Kimliği belirtebilirsiniz. Bunu yapmak için özelliğini GUID olarak ayarlayın x-ms-client-request-id
.
Telemetriyi gönderdikten sonra, ayarlanan Bağıntı Kimliğini kullanarak günlükleri sorgulamak için Azure İzleyici log analytics'i açın:
AzureDiagnostics
| where CorrelationId == 'YOUR_CORRELATION_IDENTIFIER'
Sorgu değeri | Şununla değiştir |
---|---|
YOUR_CORRELATION_IDENTIFIER | Olay verilerinde belirtilen Bağıntı Kimliği |
Tüm son telemetri günlükleri sorgusunu okumak için:
AzureDiagnostics
| order by CorrelationId desc
Kullanıcı tanımlı işleviniz için günlüğe kaydetmeyi etkinleştirirseniz, bu günlükler log analytics örneğinizde kategorisiyle UserDefinedFunction
görüntülenir. Bunları almak için Log Analytics'e aşağıdaki sorgu koşulunu girin:
AzureDiagnostics
| where Category == 'UserDefinedFunction'
Güçlü sorgu işlemleri hakkında daha fazla bilgi için bkz. Sorgularla çalışmaya başlama.
Yaygın sorunları belirleme
Çözümünüzün sorunlarını giderirken yaygın sorunları tanılamak ve tanımlamak önemlidir. Kullanıcı tanımlı işlevler geliştirirken sık karşılaşılan çeşitli sorunlar aşağıdaki alt bölümler halinde özetlenmiştir.
Aşağıdaki örneklerde Digital YOUR_MANAGEMENT_API_URL
Twins API'lerinin URI'sine başvurur:
https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/api/v1.0
Name | Şununla değiştir |
---|---|
YOUR_INSTANCE_NAME | Azure Digital Twins örneğinizin adı |
YOUR_LOCATION | Örneğinizin barındırılıyor olduğu bölge |
Rol ataması oluşturulup oluşturulmadığını denetleme
Yönetim API'sinde bir rol ataması oluşturulmadan, kullanıcı tanımlı işlevin bildirim gönderme, meta verileri alma ve topoloji içinde hesaplanan değerleri ayarlama gibi eylemleri gerçekleştirme erişimi olmaz.
Yönetim API'niz aracılığıyla kullanıcı tanımlı işleviniz için rol ataması olup olmadığını denetleyin:
GET YOUR_MANAGEMENT_API_URL/roleassignments?path=/&traverse=Down&objectId=YOUR_USER_DEFINED_FUNCTION_ID
Parametre değeri | Şununla değiştir |
---|---|
YOUR_USER_DEFINED_FUNCTION_ID | Rol atamalarını almak için kullanıcı tanımlı işlevin kimliği |
Rol ataması yoksa kullanıcı tanımlı işleviniz için rol ataması oluşturmayı öğrenin.
Eşleştiricinin algılayıcının telemetrisi için çalışıp çalışmadığını denetleyin
Azure Digital Twins örneklerinizin Yönetim API'sine yönelik aşağıdaki çağrıyla, belirli bir eşleştiricinin belirli bir algılayıcı için geçerli olup olmadığını belirleyebilirsiniz.
GET YOUR_MANAGEMENT_API_URL/matchers/YOUR_MATCHER_IDENTIFIER/evaluate/YOUR_SENSOR_IDENTIFIER?enableLogging=true
Parametre | Şununla değiştir |
---|---|
YOUR_MATCHER_IDENTIFIER | Değerlendirmek istediğiniz eşleştiricinin kimliği |
YOUR_SENSOR_IDENTIFIER | Değerlendirmek istediğiniz algılayıcının kimliği |
Yanıt:
{
"success": true,
"logs": [
"$.dataType: \"Motion\" Equals \"Motion\" => True"
]
}
Algılayıcının neleri tetikle istediğini denetleme
Azure Digital Twins Yönetim API'lerine yönelik aşağıdaki çağrıyla, belirli bir algılayıcının gelen telemetrisi tarafından tetiklenen kullanıcı tanımlı işlevlerinizin tanımlayıcılarını belirleyebilirsiniz:
GET YOUR_MANAGEMENT_API_URL/sensors/YOUR_SENSOR_IDENTIFIER/matchers?includes=UserDefinedFunctions
Parametre | Şununla değiştir |
---|---|
YOUR_SENSOR_IDENTIFIER | Telemetri göndermek için algılayıcının kimliği |
Yanıt:
[
{
"id": "48a64768-797e-4832-86dd-de625f5f3fd9",
"name": "MotionMatcher",
"spaceId": "2117b3e1-b6ce-42c1-9b97-0158bef59eb7",
"conditions": [
{
"id": "024a067a-414f-415b-8424-7df61392541e",
"target": "Sensor",
"path": "$.dataType",
"value": "\"Motion\"",
"comparison": "Equals"
}
],
"userDefinedFunctions": [
{
"id": "373d03c5-d567-4e24-a7dc-f993460120fc",
"spaceId": "2117b3e1-b6ce-42c1-9b97-0158bef59eb7",
"name": "Motion User-Defined Function",
"disabled": false
}
]
}
]
Bildirimleri alma sorunu
Tetiklenen kullanıcı tanımlı işlevden bildirim almıyorsanız, topoloji nesne türü parametrenizin kullanılmakta olan tanımlayıcı türüyle eşleştiğinden emin olun.
Yanlış Örnek:
var customNotification = {
Message: 'Custom notification that will not work'
};
sendNotification(telemetry.SensorId, "Space", JSON.stringify(customNotification));
Bu senaryo, kullanılan tanımlayıcı belirtilen topoloji nesne türü olduğunda Space
bir algılayıcıya başvurduğundan ortaya çıkar.
Doğru Örnek:
var customNotification = {
Message: 'Custom notification that will work'
};
sendNotification(telemetry.SensorId, "Sensor", JSON.stringify(customNotification));
Bu sorunla karşılaşılmaması için en kolay yol meta veri nesnesinde Notify
yöntemini kullanmaktır.
Örnek:
function process(telemetry, executionContext) {
var sensorMetadata = getSensorMetadata(telemetry.SensorId);
var customNotification = {
Message: 'Custom notification'
};
// Short-hand for above methods where object type is known from metadata.
sensorMetadata.Notify(JSON.stringify(customNotification));
}
Yaygın tanılama özel durumları
Tanılama ayarlarını etkinleştirirseniz şu yaygın özel durumlarla karşılaşabilirsiniz:
Azaltma: Kullanıcı tanımlı işleviniz Hizmet Sınırları makalesinde belirtilen yürütme hızı sınırlarını aşarsa kısıtlanır. Azaltma sınırlarının süresi dolana kadar başka hiçbir işlem başarıyla yürütülemez.
Veri Bulunamadı: Kullanıcı tanımlı işleviniz var olmayan meta verilere erişmeye çalışırsa işlem başarısız olur.
Yetkilendirilmedi: Kullanıcı tanımlı işlevinizin rol atama kümesi yoksa veya topolojiden belirli meta verilere erişmek için yeterli izni yoksa işlem başarısız olur.
Sonraki adımlar
Azure Digital Twins'de izlemeyi ve günlükleri etkinleştirmeyi öğrenin.
Diğer Azure günlük seçenekleri için Azure Etkinlik günlüğüne genel bakış makalesini okuyun.