أساليب Azure Video Analyzer Direct
![]()
بدلًا من ذلك، تحقق من المواضيع ضمن إنشاء تطبيقات الفيديو على الحافة.
ملاحظة
نحن نوقف خدمة معاينة Azure Video Analyzer، وينصحك بنقل تطبيقاتك من Video Analyzer بحلول 01 ديسمبر 2022.
لا يتأثر محلل فيديو Azure للوسائط بهذا الإيقاف. يتم الآن تغيير العلامة التجارية إلى Azure Video Indexer. انقر هنا لقراءة المزيد.
الإجراء مطلوب: لتقليل تعطيل أحمال العمل الخاصة بك، قم بنقل التطبيق الخاص بك من Video Analyzer لكل اقتراحات موصوفة في هذا الدليل قبل 01 ديسمبر 2022. بعد 1 ديسمبر 2022، لن يعمل حساب Azure Video Analyzer. اعتبارا من 2 مايو 2022، لن تتمكن من إنشاء حسابات محلل فيديو جديدة.
تعرض وحدة avaedge Azure Video Analyzer edge العديد من الطرق المباشرة التي يمكن استدعاؤها من IoT Hub. تمثل الطرق المباشرة تفاعلًا بين الطلب والرد مع جهاز مشابه لاستدعاء HTTP من حيث أنها تنجح أو تفشل على الفور (بعد انتهاء مهلة يحددها المستخدم). هذا النهج مفيد للسيناريوهات التي يكون فيها مسار الإجراء الفوري مختلفًا تبعًا لما إذا كان الجهاز قادرًا على الاستجابة. لمزيد من المعلومات، راجع فهم واستدعاء الأساليب المباشرة من IoT Hub.
يصف هذا الموضوع هذه الأساليب والاصطلاحات ومخطط الأساليب.
الاتفاقيات
تستند الأساليب المباشرة إلى الاصطلاحات التالية:
الأساليب المباشرة لها إصدار محدد في MAJOR. تنسيق MINOR (كما هو موضح في المثال التالي). إنه رقم "@apiVersion" حيث "1" هو MAJOR و"0" MINOR في هذا المثال:
{ "methodName": "pipelineTopologySet", "payload": { "@apiVersion": "1.1", "name": "{TopologyName}", "properties": { // Desired Topology properties } } }يدعم إصدار معين من وحدة Video Analyzer جميع الإصدارات الثانوية من أسلوب مباشر لاستدعاء ما يصل إلى إصداره الحالي. الدعم عبر الإصدارات الرئيسية غير مضمون.
جميع الأساليب المباشرة متزامنة.
تستند نتائج الخطأ إلى مخطط خطأ OData.
يجب أن تلاحظ الأسماء القيود التالية:
- فقط الأحرف الأبجدية الرقمية والشرطات طالما أنها لا تبدأ وتنتهي بشرطة
- بلا مسافات
- بحد أقصى 32 حرفا
مثال على الاستجابة من أسلوب مباشر
----------------------- Request: livePipelineList --------------------------------------------------
{
"@apiVersion": "1.1"
}
--------------- Response: livePipelineList - Status: 200 ---------------
{
"value": []
}
--------------------------------------------------------------------------
رموز الخطأ
كما هو موضح في المثال أدناه، عندما تحصل على استجابة خطأ من أسلوب مباشر، هناك رمز خطأ من المستوى الأعلى، ويتم توفير مزيد من المعلومات ضمن details.
{
"status": 400,
"payload": {
"error": {
"code": "BadRequest",
"message": "The request is invalid",
"details": [
{
"code": "ApiVersionNotSupported",
"message": "The API version '1.4' is not supported. Supported version(s): 1.0, 1.1"
}
]
}
}
}
فيما يلي رموز الخطأ المستخدمة في المستوى الأعلى.
| الحالة | رمز | رسالة |
|---|---|---|
| 400 | اقتراح غير جيد | الطلب غير صالح |
| 400 | مصدر غير صالح | المورد غير صحيح |
| 400 | غير صالح | إصدار واجهة برمجة التطبيقات غير صحيح |
| 402 | طلب الاتصال | تتطلب وحدة Edge اتصالا سحابيا لتعمل بشكل صحيح. |
| 404 | NotFound | لم يتم العثور على المورد |
| 409 | تعارض | تعارض العملية |
| 500 | InternalServerError | خطأ داخلي في الخادم |
| 503 | ServerBusy | الخادم مشغول |
فيما يلي بعض رموز الخطأ المستخدمة على مستوى التفاصيل.
| الحالة | التعليمات البرمجية التفصيلية | الوصف |
|---|---|---|
| 400 | PipelineValidationError | أخطاء البنية الأساسية لبرنامج ربط العمليات التجارية العامة مثل الدورات أو التقسيم، وما إلى ذلك. |
| 400 | ModuleValidationError | أخطاء التحقق من صحة الوحدة النمطية المحددة. |
| 409 | PipelineTopologyInUse | لا يزال مخطط البنية الأساسية لبرنامج ربط العمليات التجارية يشار إليه بواسطة مسار مباشر واحد أو أكثر. |
| 409 | OperationNotAllowedInState | لا يمكن تنفيذ العملية المطلوبة في الحالة الحالية. |
| 409 | ResourceValidationError | المورد المشار إليه (على سبيل المثال: مورد الفيديو) ليس في حالة صحيحة. |
الأساليب المباشرة المدعومة
فيما يلي الأساليب المباشرة التي تعرضها وحدة حافة محلل الفيديو. يمكن العثور على مخطط الطرق المباشرة هنا.
قائمة طوبولوجيا البنية الأساسية لبرنامج ربط العمليات التجارية
يسرد هذا الأسلوب المباشر كافة طبولوجيا البنية الأساسية لبرنامج ربط العمليات التجارية التي تم إنشاؤها.
طلب
{
"@apiVersion": "1.1"
}
الاستجابة
{
"status": 200,
"value": [
{
"systemData": {
"createdAt": "2021-05-05T14:19:22.16Z",
"lastModifiedAt": "2021-05-05T16:20:41.505Z"
},
// first pipeline topology payload
},
"systemData": {
"createdAt": "2021-05-06T14:19:22.16Z",
"lastModifiedAt": "2021-05-06T16:20:41.505Z"
},
// next pipeline topology payload
}
]
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة |
|---|---|
| تم العثور على الكيان | 200 |
| أخطاء المستخدم العامة | نطاق 400 |
| لم يتم العثور على الكيان | 404 |
| أخطاء الخادم العامة | نطاق 500 |
pipelineTopologySet
إنشاء مخطط البنية الأساسية لبرنامج ربط العمليات التجارية بالاسم المحدد إذا لم يكن هناك مثل هذا المخطط موجود، أو يقوم بتحديث مخطط موجود بهذا الاسم.
الجوانب الرئيسية:
يمكن تحديث مخطط البنية الأساسية لبرنامج ربط العمليات التجارية بحرية إذا لم تكن هناك مسارات مباشرة تشير إليه.
يمكن تحديث مخطط البنية الأساسية لبرنامج ربط العمليات التجارية بحرية إذا تم إلغاء تنشيط كافة المسارات المباشرة المرجعية طالما:
- المعلمات المضافة حديثا لها قيم افتراضية
- لا تتم الإشارة إلى المعلمات التي تمت إزالتها بواسطة أي مسار
يسمح فقط ببعض تحديثات طبولوجيا البنية الأساسية لبرنامج ربط العمليات التجارية أثناء تنشيط البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة.
طلب
{
"methodName": "pipelineTopologySet",
"payload": {
"@apiVersion": "1.1",
"name": "{TopologyName}",
"properties": {
// Desired pipeline topology properties
}
}
}
الاستجابة
{
"status": 201,
"payload": {
"systemData": {
"createdAt": "2021-05-11T18:16:46.491Z",
"lastModifiedAt": "2021-05-11T18:16:46.491Z"
},
"name": "{TopologyName}",
"properties": {
// Complete pipeline topology
}
}
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة | رمز الخطأ التفصيلي |
|---|---|---|
| تم تحديث الكيان الحالي | 200 | غير متوفر |
| كيان جديد تم إنشاؤه | 201 | غير متوفر |
| أخطاء المستخدم العامة | نطاق 400 | |
| أخطاء التحقق من صحة البنية الأساسية لبرنامج ربط العمليات التجارية | 400 | PipelineValidationError |
| أخطاء التحقق من صحة الوحدة النمطية | 400 | ModuleValidationError |
| أخطاء الخادم العامة | نطاق 500 |
PipelineTopologyGet
يسترد مخطط البنية الأساسية لبرنامج ربط العمليات التجارية بالاسم المحدد، إذا كان موجودا.
طلب
{
"@apiVersion": "1.1",
"name": "{TopologyName}"
}
الاستجابة
{
"status": 200,
"payload": {
"value": [
{
"systemData": {
"createdAt": "2021-05-06T10:28:04.560Z",
"lastModifiedAt": "2021-05-06T10:28:04.560Z"
},
"name": "{TopologyName}",
// Complete pipeline topology
}
]
}
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة |
|---|---|
| نجاح | 200 |
| أخطاء المستخدم العامة | نطاق 400 |
| أخطاء الخادم العامة | نطاق 500 |
الحذف الخاص ب pipelineTopology
حذف مخطط مسار واحد.
- لاحظ أنه لا يمكن أن تكون هناك أي مسارات مباشرة تشير إلى طوبولوجيا البنية الأساسية لبرنامج ربط العمليات التجارية التي يتم حذفها. إذا كان هناك مثل هذه المسارات المباشرة، فستتلقى خطأ
TopologyInUse.
طلب
{
"methodName": "pipelineTopologyDelete",
"payload": {
"@apiVersion": "1.1",
"name": "{TopologyName}"
}
}
الاستجابة
{
"status": 200,
"payload": null
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة | رمز الخطأ التفصيلي |
|---|---|---|
| الوحدة المحذوفة | 200 | غير متوفر |
| لم يتم العثور على الكيان | 204 | غير متوفر |
| أخطاء المستخدم العامة | نطاق 400 | |
| تتم الإشارة إلى مخطط البنية الأساسية لبرنامج ربط العمليات التجارية بواسطة مسار واحد أو أكثر | 409 | PipelineTopologyInUse |
| أخطاء الخادم العامة | نطاق 500 |
livePipelineList
يسرد جميع المسارات المباشرة.
طلب
{
"@apiVersion": "1.1"
}
الاستجابة
{
"status": 200,
"value": [
{
"systemData": {
"createdAt": "2021-05-05T14:19:22.16Z",
"lastModifiedAt": "2021-05-05T16:20:41.505Z"
},
// first live pipeline payload
},
"systemData": {
"createdAt": "2021-05-06T14:19:22.16Z",
"lastModifiedAt": "2021-05-06T16:20:41.505Z"
},
// next live pipeline payload
}
]
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة |
|---|---|
| تم العثور على الكيان | 200 |
| أخطاء المستخدم العامة | نطاق 400 |
| لم يتم العثور على الكيان | 404 |
| أخطاء الخادم العامة | نطاق 500 |
livePipelineSet
ينشئ مسارا مباشرا بالاسم المحدد إذا لم يكن هناك مثل هذا المسار المباشر، أو يحدث مسارا مباشرا موجودا بهذا الاسم.
الجوانب الرئيسية:
- يمكن تحديث البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة بحرية أثناء حالة "إلغاء التنشيط". في حالات أخرى، يسمح ببعض التحديثات فقط.
- تتم إعادة التحقق من البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة في كل تحديث.
طلب
{
"@apiVersion": "1.1",
"name": "{livePipelineName}",
"properties": {
// Desired live pipeline properties
}
}
الاستجابة
{
"status": 201,
"payload": {
"systemData": {
"createdAt": "2021-05-11T18:16:46.491Z",
"lastModifiedAt": "2021-05-11T18:16:46.491Z"
},
"name": "{livePipelineName}",
"properties": {
// Complete live pipeline
}
}
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة | رمز الخطأ التفصيلي |
|---|---|---|
| تم تحديث الكيان الحالي | 200 | غير متوفر |
| كيان جديد تم إنشاؤه | 201 | غير متوفر |
| أخطاء المستخدم العامة | نطاق 400 | غير متوفر |
| أخطاء التحقق من صحة البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة | 400 | PipelineValidationError |
| أخطاء التحقق من صحة الوحدة النمطية | 400 | ModuleValidationError |
| أخطاء التحقق من صحة الموارد | 409 | ResourceValidationError |
| أخطاء الخادم العامة | نطاق 500 | غير متوفر |
livePipelineDelete
حذف مسار مباشر واحد.
الجوانب الرئيسية:
- يمكن حذف المسارات المباشرة التي تم إلغاء تنشيطها فقط.
طلب
{
"@apiVersion": "1.1",
"name": "{livePipelineName}"
}
الاستجابة
{
"status": 200,
"payload": null
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة | رمز الخطأ التفصيلي |
|---|---|---|
| تم حذف المسار المباشر بنجاح | 200 | غير متوفر |
| لم يتم العثور على البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة | 204 | غير متوفر |
| أخطاء المستخدم العامة | نطاق 400 | |
| البنية الأساسية لبرنامج ربط العمليات التجارية ليست في حالة "تم إلغاء تنشيطها" | 409 | OperationNotAllowedInState |
| أخطاء الخادم العامة | نطاق 500 |
livePipelineGet
هذا مشابه ل livePipelineTopologyGet. يقوم باسترداد مسار مباشر بالاسم المحدد، إذا كان موجودا.
طلب
{
"@apiVersion": "1.1",
"name": "{livePipelineName}"
}
الاستجابة
{
"status": 200,
"payload": {
"value": [
{
"systemData": {
"createdAt": "2021-05-06T10:28:04.560Z",
"lastModifiedAt": "2021-05-06T10:28:04.560Z"
},
"name": "{livePipelineName}",
// Complete live pipeline
}
]
}
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة |
|---|---|
| نجاح | 200 |
| أخطاء المستخدم العامة | نطاق 400 |
| أخطاء الخادم العامة | نطاق 500 |
livePipelineActivate
تنشيط البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة.
الجوانب الرئيسية
- يرجع الأسلوب عندما يكون المسار المباشر في حالة "التنشيط" أو "المنشط".
- ستؤدي عملية قائمة/تعيين على المسار المباشر إلى إرجاع الحالة الحالية.
- يمكن استدعاء هذا الأسلوب طالما أن المسار المباشر ليس في حالة "إلغاء التنشيط" (عابر).
- التكرار:
- يعمل استدعاء
livePipelineActivateالبنية الأساسية لبرنامج ربط العمليات التجارية المباشرة الموجودة بالفعل في حالة "التنشيط" بنفس الطريقة كما لو تم إلغاء تنشيط البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة. - يؤدي تنشيط البنية الأساسية لبرنامج ربط العمليات التجارية في حالة "نشط" إلى إرجاع رمز نجاح على الفور.
- يعمل استدعاء
طلب
{
"@apiVersion": "1.1",
"name": "{livePipelineName}"
}
الاستجابة
{
"status": 200,
"payload": null
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة | رمز الخطأ التفصيلي |
|---|---|---|
| تم تنشيط المسار بنجاح | 200 | غير متوفر |
| كيان جديد تم إنشاؤه | 201 | غير متوفر |
| أخطاء المستخدم العامة | نطاق 400 | |
| أخطاء التحقق من صحة الوحدة النمطية | 400 | ModuleValidationError |
| أخطاء التحقق من صحة الموارد | 409 | ResourceValidationError |
| البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة في حالة إلغاء تنشيط | 409 | OperationNotAllowedInState |
| أخطاء الخادم العامة | نطاق 500 |
livePipelineDeactivate
إلغاء تنشيط البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة. يعمل إلغاء تنشيط البنية الأساسية لبرنامج ربط العمليات التجارية على إلغاء تنشيط معالجة الفيديو بأمان ويضمن أن جميع الأحداث والفيديو المخزن مؤقتا على الحافة ملتزمة بالسحابة، كلما أمكن ذلك.
الجوانب الرئيسية:
- يرجع الأسلوب فقط عند إلغاء تنشيط البنية الأساسية لبرنامج ربط العمليات التجارية المباشرة.
- يمكن استدعاء هذا الأسلوب طالما أن المسار المباشر ليس في حالة "التنشيط" (العابر).
- ينتقل المسار إلى حالة "إلغاء التنشيط" أثناء إلغاء تنشيطه.
- ستؤدي عملية قائمة/تعيين على المسار المباشر إلى إرجاع الحالة الحالية.
- يكتمل إلغاء التنشيط عند تحميل جميع الوسائط إلى السحابة (إذا كان المسار يحتوي على عقدة متلقي فيديو ).
- التكرار:
- يعمل استدعاء
livePipelineDeactivateالبنية الأساسية لبرنامج ربط العمليات التجارية المباشرة الموجودة بالفعل في حالة "إلغاء التنشيط" بنفس الطريقة كما لو كان المسار المباشر في حالة "نشط". - يؤدي إلغاء تنشيط البنية الأساسية لبرنامج ربط العمليات التجارية في حالة "غير نشطة" إلى إرجاع رمز نجاح على الفور.
- يعمل استدعاء
طلب
{
"@apiVersion": "1.1",
"name": "{livePipelineName}"
}
الاستجابة
{
"status": 200,
"payload": null
}
| الشرط | كود الحالة | رمز الخطأ التفصيلي |
|---|---|---|
| تم تنشيط المسار بنجاح | 200 | غير متوفر |
| كيان جديد تم إنشاؤه | 201 | غير متوفر |
| أخطاء المستخدم العامة | نطاق 400 | |
| البنية الأساسية لبرنامج ربط العمليات التجارية في حالة التنشيط | 409 | OperationNotAllowedInState |
| أخطاء الخادم العامة | نطاق 500 |
remoteDeviceAdapterList
يسرد جميع محولات الأجهزة البعيدة. يمكن أن تعمل وحدة حافة محلل الفيديو كبوابة شفافة للفيديو، ما يمكن أجهزة IoT من إرسال فيديو إلى السحابة من خلف جدار حماية. يجب إنشاء محول جهاز بعيد لكل جهاز IoT. ثم سيتدفق الاتصال بين السحابة وجهاز IoT عبر وحدة حافة محلل الفيديو.
طلب
{
"@apiVersion": "1.1"
}
الاستجابة
{
"status": 200,
"value": [
{
"systemData": {
"createdAt": "2021-10-05T14:19:22.16Z",
"lastModifiedAt": "2021-10-05T16:20:41.505Z"
},
// first remote device adapter payload
},
"systemData": {
"createdAt": "2021-10-06T14:19:22.16Z",
"lastModifiedAt": "2021-10-06T16:20:41.505Z"
},
// next remote device adapter payload
}
]
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة |
|---|---|
| تم العثور على الكيان | 200 |
| أخطاء المستخدم العامة | نطاق 400 |
| لم يتم العثور على الكيان | 404 |
| أخطاء الخادم العامة | نطاق 500 |
remoteDeviceAdapterSet
إنشاء محول جهاز بعيد بالاسم المحدد في حالة عدم وجود مثل هذا المحول، أو تحديث محول موجود بهذا الاسم. في remoteDeviceAdapterList حمولة الاستجابة، وفي أو remoteDeviceAdapterGet استدعاءات، يتم حذف أي بيانات اعتماد أو أسرار.
طلب
{
"@apiVersion": "1.1",
"name": "{remoteDeviceAdapterName}",
"properties": {
// Desired remote device adapter properties
}
}
الاستجابة
{
"status": 201,
"payload": {
"systemData": {
"createdAt": "2021-10-11T18:16:46.491Z",
"lastModifiedAt": "2021-10-11T18:16:46.491Z"
},
"name": "{remoteDeviceAdapterName}",
"properties": {
// Remote device adapter properties, except the credentials
}
}
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة | رمز الخطأ التفصيلي |
|---|---|---|
| تم تحديث الكيان الحالي | 200 | غير متوفر |
| كيان جديد تم إنشاؤه | 201 | غير متوفر |
| أخطاء المستخدم العامة | نطاق 400 | غير متوفر |
| أخطاء التحقق من صحة محول الجهاز البعيد | 400 | RemoteDeviceAdapterValidationError |
| أخطاء التحقق من صحة الوحدة النمطية | 400 | ModuleValidationError |
| أخطاء التحقق من صحة الموارد | 409 | ResourceValidationError |
| أخطاء الخادم العامة | نطاق 500 | غير متوفر |
remoteDeviceAdapterGet
هذا مشابه ل livePipelineTopologyGet. يقوم باسترداد محول جهاز بعيد بالاسم المحدد، إذا كان موجودا (يتم حذف أي بيانات اعتماد أو أسرار).
طلب
{
"@apiVersion": "1.1",
"name": "{remoteDeviceAdapterName}"
}
الاستجابة
{
"status": 200,
"payload": {
"value": [
{
"systemData": {
"createdAt": "2021-10-06T10:28:04.560Z",
"lastModifiedAt": "2021-10-06T10:28:04.560Z"
},
"name": "{remoteDeviceAdapterName}",
// Remote device adapter properties, except the credentials
}
]
}
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة |
|---|---|
| نجاح | 200 |
| أخطاء المستخدم العامة | نطاق 400 |
| أخطاء الخادم العامة | نطاق 500 |
remoteDeviceAdapterDelete
حذف محول جهاز بعيد واحد إذا كان موجودا.
طلب
{
"@apiVersion": "1.1",
"name": "{remoteDeviceAdapterName}"
}
الاستجابة
{
"status": 200,
"payload": null
}
تعليمات الحالة البرمجية
| الشرط | كود الحالة | رمز الخطأ التفصيلي |
|---|---|---|
| تم حذف محول الجهاز البعيد بنجاح | 200 | غير متوفر |
| لم يتم العثور على محول الجهاز البعيد | 204 | غير متوفر |
| أخطاء المستخدم العامة | نطاق 400 | |
| أخطاء الخادم العامة | نطاق 500 |
onvifDeviceDiscover و onvifDeviceGet
يتم توفير تفاصيل هذه المكالمات في المقالة حول اكتشاف الأجهزة التي تدعم ONVIF.