أساليب Azure Video Analyzer Direct

edge icon
بدلًا من ذلك، تحقق من المواضيع ضمن إنشاء تطبيقات الفيديو على الحافة.


ملاحظة

نحن نوقف خدمة معاينة 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.

يصف هذا الموضوع هذه الأساليب والاصطلاحات ومخطط الأساليب.

الاتفاقيات

تستند الأساليب المباشرة إلى الاصطلاحات التالية:

  1. الأساليب المباشرة لها إصدار محدد في MAJOR. تنسيق MINOR (كما هو موضح في المثال التالي). إنه رقم "@apiVersion" حيث "1" هو MAJOR و"0" MINOR في هذا المثال:

    {
      "methodName": "pipelineTopologySet",
      "payload": {
          "@apiVersion": "1.1",
          "name": "{TopologyName}",
          "properties": {
              // Desired Topology properties
          }
      }
    }
    
  2. يدعم إصدار معين من وحدة Video Analyzer جميع الإصدارات الثانوية من أسلوب مباشر لاستدعاء ما يصل إلى إصداره الحالي. الدعم عبر الإصدارات الرئيسية غير مضمون.

  3. جميع الأساليب المباشرة متزامنة.

  4. تستند نتائج الخطأ إلى مخطط خطأ OData.

  5. يجب أن تلاحظ الأسماء القيود التالية:

    • فقط الأحرف الأبجدية الرقمية والشرطات طالما أنها لا تبدأ وتنتهي بشرطة
    • بلا مسافات
    • بحد أقصى 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

حذف مخطط مسار واحد.

طلب

  {
    "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.

الخطوات التالية

مخطط تكوين الوحدة المزدوجة