Azure Video Analyzer Direct-metódusok

edge icon
Másik lehetőségként tekintse meg a videóalkalmazások létrehozása a szolgáltatásban című témakört.


Megjegyzés

Az Azure Video Analyzer előzetes verziójának szolgáltatásból való kivonását javasoljuk, hogy 2022. december 01-ig váltsa át az alkalmazásait a Video Analyzerről.

Az Azure Video Analyzer for Media-t ez a kivezetés nem érinti. Most az Azure Video Indexerre vált át. További információért kattintson ide .

Szükséges művelet: A számítási feladatok megszakadásának minimalizálása érdekében 2022. december 01. előtt váltsa át az alkalmazást a Video Analyzerről az útmutatóban ismertetett javaslatok alapján. 2022. december 1-je után az Azure Video Analyzer-fiók nem fog működni. 2022. május 2-tól nem hozhat létre új Video Analyzer-fiókokat.

Az Azure Video Analyzer peremhálózati modulja avaedge számos közvetlen metódust tesz elérhetővé, amelyek meghívhatók IoT Hub. A közvetlen metódusok a HTTP-híváshoz hasonló eszköz kérés-válasz interakcióját jelentik abban az esetben, ha azonnal sikeresek vagy sikertelenek (a felhasználó által megadott időtúllépés után). Ez a módszer olyan helyzetekben hasznos, amikor az azonnali művelet végrehajtása eltérő attól függően, hogy az eszköz válaszképes volt-e. További információt a IoT Hub közvetlen metódusainak ismertetése és meghívása című témakörben talál.

Ez a témakör ezeket a metódusokat, konvenciókat és a metódusok sémáját ismerteti.

Konvenciók

A közvetlen metódusok a következő konvenciókon alapulnak:

  1. A közvetlen metódusok a FŐVERZIÓban megadott verzióval rendelkeznek. MINOR formátum (az alábbi példában látható módon). Ez a "@apiVersion" szám, ahol az "1" a MAJOR, a "0" pedig a MINOR a példában:

    {
      "methodName": "pipelineTopologySet",
      "payload": {
          "@apiVersion": "1.1",
          "name": "{TopologyName}",
          "properties": {
              // Desired Topology properties
          }
      }
    }
    
  2. A Video Analyzer modul egy adott verziója támogatja a közvetlen metódusok összes alverzióját, és az aktuális verziót hívja meg. A főverziók támogatása nem garantált.

  3. Minden közvetlen metódus szinkron.

  4. A hibaeredmények az OData hibasémán alapulnak.

  5. A neveknek a következő korlátozásokat kell figyelembe vennie:

    • Csak alfanumerikus karakterek és kötőjelek, feltéve, hogy nem kötőjellel kezdődnek és végződnek
    • Nincs szóköz
    • Legfeljebb 32 karakter

Példa közvetlen metódusból érkező válaszra

-----------------------  Request: livePipelineList  --------------------------------------------------

{
  "@apiVersion": "1.1"
}

---------------  Response: livePipelineList - Status: 200  ---------------

{
  "value": []
}

--------------------------------------------------------------------------

Hibakódok

Amint az alábbi példában látható, amikor egy közvetlen metódusból kap hibaválaszt, egy legfelső szintű hibakód jelenik meg, és további információt a következő szakaszban detailstalál.

{
  "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"
        }
      ]
    }
  }
}

Az alábbiakban a legfelső szinten használt hibakódokat követjük.

Állapot Code Üzenet
400 BadRequest Érvénytelen kérelem
400 InvalidResource Az erőforrás érvénytelen
400 InvalidVersion Az API-verzió érvénytelen
402 ConnectivityRequired A peremhálózati modul működéséhez felhőkapcsolat szükséges.
404 NotFound Az erőforrás nem található
409 Ütközés Műveletütközés
500 InternalServerError Belső kiszolgálóhiba
503 ServerBusy Kiszolgáló foglalt

Az alábbiakban néhány, a részletek szintjén használt hibakódot ismertetjük.

Állapot Részletes kód Description
400 PipelineValidationError Általános folyamathibák, például ciklusok vagy particionálás stb.
400 ModuleValidationError Modulspecifikus ellenőrzési hibák.
409 PipelineTopologyInUse A folyamattopológiára továbbra is hivatkozik egy vagy több élő folyamat.
409 OperationNotAllowedInState A kért művelet nem hajtható végre az aktuális állapotban.
409 ResourceValidationError A hivatkozott erőforrás (például videoerőforrás) nincs érvényes állapotban.

Támogatott közvetlen metódusok

Az alábbiakban a Video Analyzer peremhálózati modul által közzétett közvetlen metódusokat követjük. A közvetlen metódusok sémája itt található.

pipelineTopologyList

Ez a közvetlen metódus felsorolja az összes létrehozott folyamattopológiát.

Kérés

{
  "@apiVersion": "1.1"
}

Reagálás

{
  "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
      
    }    
  ]
}

Állapotkódok

Feltétel Állapotkód
Entitás található 200
Általános felhasználói hibák 400 tartomány
Az entitás nem található 404
Általános kiszolgálóhibák 500 tartomány

pipelineTopologySet

Létrehoz egy folyamattopológiát a megadott névvel, ha ilyen topológia nem létezik, vagy frissít egy meglévő topológiát ezzel a névvel.

Főbb szempontok:

  • A folyamattopológia szabadon frissíthető, ha nincsenek rá hivatkozó élő folyamatok.

  • A folyamattopológia szabadon frissíthető, ha az összes hivatkozó élő folyamat inaktiválva van, amennyiben:

    • Az újonnan hozzáadott paraméterek alapértelmezett értékekkel rendelkeznek
    • Az eltávolított paraméterekre egyetlen folyamat sem hivatkozik
  • Csak néhány folyamattopológia-frissítés engedélyezett, amíg egy élő folyamat aktív.

Kérés

  {
    "methodName": "pipelineTopologySet",
    "payload": {
        "@apiVersion": "1.1",
        "name": "{TopologyName}",
        "properties": {
            // Desired pipeline topology properties
        }
    }
  }

Reagálás

  {
    "status": 201,
    "payload": {
        "systemData": {
           "createdAt": "2021-05-11T18:16:46.491Z",
           "lastModifiedAt": "2021-05-11T18:16:46.491Z"
        },
        "name": "{TopologyName}",
        "properties": {
            // Complete pipeline topology
        }
    }
  }

Állapotkódok

Feltétel Állapotkód Részletes hibakód
Meglévő entitás frissítve 200 N/A
Új entitás létrehozva 201 N/A
Általános felhasználói hibák 400 tartomány
Folyamatérvényesítési hibák 400 PipelineValidationError
Modulérvényesítési hibák 400 ModuleValidationError
Általános kiszolgálóhibák 500 tartomány

pipelineTopologyGet

Lekéri a megadott nevű folyamattopológiát, ha létezik.

Kérés

  {
        "@apiVersion": "1.1",
        "name": "{TopologyName}"       
  }

Reagálás

{
  "status": 200,
  "payload": {
    "value": [
      {
        "systemData": {
          "createdAt": "2021-05-06T10:28:04.560Z",
          "lastModifiedAt": "2021-05-06T10:28:04.560Z"
        },
        "name": "{TopologyName}",
        // Complete pipeline topology
      }
    ]
  }
}

Állapotkódok

Feltétel Állapotkód
Siker 200
Általános felhasználói hibák 400 tartomány
Általános kiszolgálóhibák 500 tartomány

pipelineTopologyDelete

Egyetlen folyamattopológia törlése.

Kérés

  {
    "methodName": "pipelineTopologyDelete",
    "payload": {
        "@apiVersion": "1.1",
        "name": "{TopologyName}"
    }
  }

Reagálás

{
    "status": 200,
    "payload": null
}

Állapotkódok

Feltétel Állapotkód Részletes hibakód
Entitás törölve 200 N/A
Az entitás nem található 204 N/A
Általános felhasználói hibák 400 tartomány
Egy vagy több folyamat hivatkozik a folyamattopológiára 409 PipelineTopologyInUse
Általános kiszolgálóhibák 500 tartomány

livePipelineList

Felsorolja az összes élő folyamatot.

Kérés

  {
        "@apiVersion": "1.1"
  }

Reagálás

{
  "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
    }    
  ]
}

Állapotkódok

Feltétel Állapotkód
Entitás található 200
Általános felhasználói hibák 400 tartomány
Az entitás nem található 404
Általános kiszolgálóhibák 500 tartomány

livePipelineSet

Létrehoz egy élő folyamatot a megadott névvel, ha ilyen élő folyamat nem létezik, vagy frissít egy meglévő élő folyamatot ezzel a névvel.

Főbb szempontok:

  • Az élő folyamatok "Inaktivált" állapotban szabadon frissíthetők. Más államokban csak bizonyos frissítések engedélyezettek.
  • Az élő folyamat minden frissítéskor újraértékelódik.

Kérés

  {
        "@apiVersion": "1.1",
        "name": "{livePipelineName}",
        "properties": {
            // Desired live pipeline properties
        }
  }

Reagálás

  {
    "status": 201,
    "payload": {
        "systemData": {
           "createdAt": "2021-05-11T18:16:46.491Z",
           "lastModifiedAt": "2021-05-11T18:16:46.491Z"
        },
        "name": "{livePipelineName}",
        "properties": {
            // Complete live pipeline
        }
    }
  }

Állapotkódok

Feltétel Állapotkód Részletes hibakód
Meglévő entitás frissítve 200 N/A
Új entitás létrehozva 201 N/A
Általános felhasználói hibák 400 tartomány N/A
Élő folyamat ellenőrzési hibái 400 PipelineValidationError
Modulérvényesítési hibák 400 ModuleValidationError
Erőforrás-érvényesítési hibák 409 ResourceValidationError
Általános kiszolgálóhibák 500 tartomány N/A

livePipelineDelete

Egyetlen élő folyamatot töröl.

Főbb szempontok:

  • Csak inaktivált élő folyamatok törölhetők.

Kérés

  {
        "@apiVersion": "1.1",
        "name": "{livePipelineName}"
  }

Reagálás

  {
    "status": 200,
    "payload": null
  }

Állapotkódok

Feltétel Állapotkód Részletes hibakód
Az élő folyamat törlése sikeresen megtörtént 200 N/A
Az élő folyamat nem található 204 N/A
Általános felhasználói hibák 400 tartomány
A folyamat nincs inaktiválva állapotban 409 OperationNotAllowedInState
Általános kiszolgálóhibák 500 tartomány

livePipelineGet

Ez hasonló a livePipelineTopologyGet elemhez. Lekéri a megadott nevű élő folyamatot, ha létezik.

Kérés

  {
        "@apiVersion": "1.1",
        "name": "{livePipelineName}"       
  }

Reagálás

{
  "status": 200,
  "payload": {
    "value": [
      {
        "systemData": {
          "createdAt": "2021-05-06T10:28:04.560Z",
          "lastModifiedAt": "2021-05-06T10:28:04.560Z"
        },
        "name": "{livePipelineName}",
        // Complete live pipeline
      }
    ]
  }
}

Állapotkódok

Feltétel Állapotkód
Siker 200
Általános felhasználói hibák 400 tartomány
Általános kiszolgálóhibák 500 tartomány

livePipelineActivate

Aktivál egy élő folyamatot.

Főbb szempontok

  • A metódus akkor ad vissza, ha az élő folyamat "Aktiválás" vagy "Aktiválva" állapotban van.
  • Az élő folyamat listázási/beállítási művelete az aktuális állapotot adja vissza.
  • Ez a metódus addig hívható meg, amíg az élő folyamat nem az átmeneti "Inaktiválás" állapotban van.
  • Idempotencia:
    • Az "Aktiválás" állapotú élő folyamat meghívása livePipelineActivate ugyanúgy viselkedik, mintha az élő folyamat inaktiválva lett volna.
    • Az "Aktív" állapotú folyamat aktiválása azonnal sikerkódot ad vissza.

Kérés

  {
        "@apiVersion": "1.1",
        "name": "{livePipelineName}"
  }

Reagálás

{
    "status": 200,
    "payload": null
}

Állapotkódok

Feltétel Állapotkód Részletes hibakód
A folyamat sikeresen aktiválva 200 N/A
Új entitás létrehozva 201 N/A
Általános felhasználói hibák 400 tartomány
Modulérvényesítési hibák 400 ModuleValidationError
Erőforrás-érvényesítési hibák 409 ResourceValidationError
Az élő folyamat inaktivált állapotban van 409 OperationNotAllowedInState
Általános kiszolgálóhibák 500 tartomány

livePipelineDeactivate

Inaktivál egy élő folyamatot. A folyamatok deaktiválása zökkenőmentesen inaktiválja a videófeldolgozást, és biztosítja, hogy a peremhálózaton gyorsítótárazott összes esemény és videó minden esetben a felhőbe legyen véglegesítva.

Főbb szempontok:

  • A metódus csak élő folyamat inaktiválásakor ad vissza értéket.
  • Ez a metódus addig hívható meg, amíg az élő folyamat nem az átmeneti "Aktiválás" állapotban van.
  • A folyamat inaktiválás közben "Inaktiválás" állapotba kerül.
    • Az élő folyamat listázási/beállítási művelete az aktuális állapotot adja vissza.
    • A deaktiválás akkor fejeződik be, ha az összes adathordozót feltöltötték a felhőbe (ha a folyamat rendelkezik videofogadó csomóponttal).
  • Idempotencia:
    • Az livePipelineDeactivate élő folyamat meghívása, amely már "Inaktiválás" állapotban van, ugyanúgy viselkedik, mintha az élő folyamat "Aktív" állapotban lett volna.
    • Az "Inaktív" állapotú folyamatok inaktiválása azonnal sikerkódot ad vissza.

Kérés

  {
    "@apiVersion": "1.1",
    "name": "{livePipelineName}"
  }

Reagálás

{
 "status": 200,
 "payload": null
}
Feltétel Állapotkód Részletes hibakód
A folyamat sikeresen aktiválva 200 N/A
Új entitás létrehozva 201 N/A
Általános felhasználói hibák 400 tartomány
A folyamat aktiválási állapotban van 409 OperationNotAllowedInState
Általános kiszolgálóhibák 500 tartomány

remoteDeviceAdapterList

Felsorolja az összes távoli eszközadaptert. A Video Analyzer peremhálózati modul transzparens videoátjáróként is működhet, így az IoT-eszközök a tűzfal mögött küldhetnek videót a felhőbe. Minden ilyen IoT-eszközhöz létre kell hozni egy távoli eszközadaptert. A felhő és az IoT-eszköz közötti kommunikáció ezután a Video Analyzer edge modulon keresztül áramlik.

Kérés

  {
        "@apiVersion": "1.1"
  }

Reagálás

{
  "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
    }    
  ]
}

Állapotkódok

Feltétel Állapotkód
Entitás található 200
Általános felhasználói hibák 400 tartomány
Az entitás nem található 404
Általános kiszolgálóhibák 500 tartomány

remoteDeviceAdapterSet

Létrehoz egy távoli eszközadaptert a megadott névvel, ha nincs ilyen adapter, vagy frissít egy meglévő adaptert ezzel a névvel. A válasz hasznos adataiban, valamint a bejövő vagy remoteDeviceAdapterGet hívási adatokban remoteDeviceAdapterList a hitelesítő adatok vagy titkos kódok nem kerülnek ki.

Kérés

  {
        "@apiVersion": "1.1",
        "name": "{remoteDeviceAdapterName}",
        "properties": {
            // Desired remote device adapter properties
        }
  }

Reagálás

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

Állapotkódok

Feltétel Állapotkód Részletes hibakód
Meglévő entitás frissítve 200 N/A
Új entitás létrehozva 201 N/A
Általános felhasználói hibák 400 tartomány N/A
Távoli eszközadapter érvényesítési hibái 400 RemoteDeviceAdapterValidationError
Modulérvényesítési hibák 400 ModuleValidationError
Erőforrás-érvényesítési hibák 409 ResourceValidationError
Általános kiszolgálóhibák 500 tartomány N/A

remoteDeviceAdapterGet

Ez hasonló a livePipelineTopologyGet. Lekéri a megadott nevű távoli eszközadaptert, ha létezik (a hitelesítő adatok vagy titkos kulcsok nincsenek megadva).

Kérés

  {
        "@apiVersion": "1.1",
        "name": "{remoteDeviceAdapterName}"       
  }

Reagálás

{
  "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
      }
    ]
  }
}

Állapotkódok

Feltétel Állapotkód
Siker 200
Általános felhasználói hibák 400 tartomány
Általános kiszolgálóhibák 500 tartomány

remoteDeviceAdapterDelete

Egyetlen távoli eszközadapter törlése, ha létezik.

Kérés

  {
        "@apiVersion": "1.1",
        "name": "{remoteDeviceAdapterName}"
  }

Reagálás

  {
    "status": 200,
    "payload": null
  }

Állapotkódok

Feltétel Állapotkód Részletes hibakód
A távoli eszközadapter törlése sikerült 200 N/A
A távoli eszközadapter nem található 204 N/A
Általános felhasználói hibák 400 tartomány
Általános kiszolgálóhibák 500 tartomány

onvifDeviceDiscover és onvifDeviceGet

Ezeknek a hívásoknak a részleteit az ONVIF-kompatibilis eszközök felderítéséről szóló cikkben találja.

Következő lépések

Ikermodul konfigurációs sémája