Azure Video Analyzer Direct-metódusok
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:
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 } } }
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.
Minden közvetlen metódus szinkron.
A hibaeredmények az OData hibasémán alapulnak.
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 details
talá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.
- Vegye figyelembe, hogy nem lehet olyan élő folyamat, amely a folyamattopológiára hivatkozik. Ha vannak ilyen élő folyamatok, hibaüzenet jelenik
TopologyInUse
meg.
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.
- Az "Aktiválás" állapotú élő folyamat meghívása
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.
- Az
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.