HTTP API-referencia
A Durable Functions bővítmény beépített HTTP API-k készletét teszi elérhetővé, amelyekkel felügyeleti feladatokat hajthat végre vezényléseken, entitásokon és feladatközpontokon. Ezek a HTTP API-k olyan bővíthetőségi webhookok, amelyeket az Azure Functions-gazdagép engedélyez, de amelyeket közvetlenül a Durable Functions bővítmény kezel.
A cikkben említett API-k alap URL-címe megegyezik a függvényalkalmazás alap URL-címével. Az Azure Functions Core Tools helyi fejlesztésekor az alap URL-cím általában http://localhost:7071
. Az Azure Functions által üzemeltetett szolgáltatásban az alap URL-cím általában https://{appName}.azurewebsites.net
. Az egyéni gazdagépnevek akkor is támogatottak, ha az App Service-alkalmazásban van konfigurálva.
A bővítmény által implementált HTTP API-khoz a következő paraméterek szükségesek. Az összes paraméter adattípusa.string
systemKey
az Azure Functions-gazdagép által automatikusan létrehozott engedélyezési kulcs. Kifejezetten hozzáférést biztosít a Durable Task extension API-khoz, és ugyanúgy kezelhető, mint más Azure Functions hozzáférési kulcsok. Olyan URL-címeket hozhat létre, amelyek a megfelelő taskHub
, connection
és systemKey
a sztringértékeket kérdezik le vezénylési ügyfélkötési API-kkal, például a CreateCheckStatusResponse
.NET-ben és CreateHttpManagementPayload
API-kkal, a createCheckStatusResponse
JavaScriptben lévő createHttpManagementPayload
API-kkal stb.
A következő néhány szakasz a bővítmény által támogatott konkrét HTTP API-kat ismerteti, és példákat ad a használatuk módjára.
Vezénylés indítása
Megkezdi a megadott vezénylőfüggvény új példányának végrehajtását.
Kérelem
A Functions-futtatókörnyezet 1.x verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
POST /admin/extensions/DurableTaskExtension/orchestrators/{functionName}/{instanceId?}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
A Functions-futtatókörnyezet 2.x verziójában az URL-formátum ugyanazokat a paramétereket használja, de kissé eltérő előtaggal rendelkezik:
POST /runtime/webhooks/durabletask/orchestrators/{functionName}/{instanceId?}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint a következő egyedi paraméterek:
Mező | Paramétertípus | Leírás |
---|---|---|
functionName |
URL-cím | A elindítandó vezénylő függvény neve. |
instanceId |
URL-cím | Nem kötelező paraméter. A vezénylési példány azonosítója. Ha nincs megadva, a vezénylő függvény véletlenszerű példányazonosítóval kezdődik. |
{content} |
Tartalom kérése | Opcionális. A JSON-formátumú vezénylő függvény bemenete. |
Válasz
Több lehetséges állapotkódérték is visszaadható.
- HTTP 202 (Elfogadva): A megadott vezénylőfüggvényt a rendszer úgy ütemezte, hogy elinduljon. A
Location
válaszfejléc egy URL-címet tartalmaz a vezénylési állapot lekérdezéséhez. - HTTP 400 (Hibás kérés): A megadott vezénylő függvény nem létezik, a megadott példányazonosító érvénytelen volt, vagy a kérelem tartalma nem volt érvényes JSON.
Az alábbi példakérés elindít egy vezénylőfüggvényt RestartVMs
, és JSON-objektum hasznos adatait tartalmazza:
POST /runtime/webhooks/durabletask/orchestrators/RestartVMs?code=XXX
Content-Type: application/json
Content-Length: 83
{
"resourceGroup": "myRG",
"subscriptionId": "111deb5d-09df-4604-992e-a968345530a9"
}
A HTTP 202-esetek válasz hasznos adatai egy JSON-objektum, amely a következő mezőket tartalmazza:
Mező | Leírás |
---|---|
id |
A vezénylési példány azonosítója. |
statusQueryGetUri |
A vezénylési példány állapot URL-címe. |
sendEventPostUri |
A vezénylési példány "eseményemelés" URL-címe. |
terminatePostUri |
A vezénylési példány "megszakítás" URL-címe. |
purgeHistoryDeleteUri |
A vezénylési példány "törlési előzményeinek" URL-címe. |
rewindPostUri |
(előzetes verzió) A vezénylési példány "visszatekerés" URL-címe. |
suspendPostUri |
A vezénylési példány "felfüggesztés" URL-címe. |
resumePostUri |
A vezénylési példány "önéletrajz" URL-címe. |
Az összes mező adattípusa.string
Íme egy példa válasz hasznos adata egy vezénylési példányra azonosítóként abc123
(olvashatóságra formázva):
{
"id": "abc123",
"purgeHistoryDeleteUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123?code=XXX",
"sendEventPostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123/raiseEvent/{eventName}?code=XXX",
"statusQueryGetUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123?code=XXX",
"terminatePostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123/terminate?reason={text}&code=XXX",
"suspendPostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123/suspend?reason={text}&code=XXX",
"resumePostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123/resume?reason={text}&code=XXX"
}
A HTTP-válasznak kompatibilisnek kell lennie a lekérdezési fogyasztói mintával. A következő fontos válaszfejléceket is tartalmazza:
- Hely: Az állapotvégpont URL-címe. Ez az URL-cím ugyanazt az értéket tartalmazza, mint a
statusQueryGetUri
mező. - Újrapróbálkozás után: A lekérdezési műveletek közötti várakozási másodpercek száma. Az alapértelmezett érték
10
.
Az aszinkron HTTP-lekérdezési mintával kapcsolatos további információkért tekintse meg a HTTP aszinkron műveletkövetési dokumentációját.
Példány állapotának lekérése
Lekéri egy adott vezénylési példány állapotát.
Kérelem
A Functions-futtatókörnyezet 1.x verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
GET /admin/extensions/DurableTaskExtension/instances/{instanceId}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&showHistory=[true|false]
&showHistoryOutput=[true|false]
&showInput=[true|false]
&returnInternalServerErrorOnFailure=[true|false]
A Functions-futtatókörnyezet 2.x verziójában az URL-formátum ugyanazokat a paramétereket használja, de kissé eltérő előtaggal rendelkezik:
GET /runtime/webhooks/durabletask/instances/{instanceId}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&showHistory=[true|false]
&showHistoryOutput=[true|false]
&showInput=[true|false]
&returnInternalServerErrorOnFailure=[true|false]
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint a következő egyedi paraméterek:
Mező | Paramétertípus | Leírás |
---|---|---|
instanceId |
URL-cím | A vezénylési példány azonosítója. |
showInput |
Lekérdezési sztring | Nem kötelező paraméter. Ha be van false állítva, a függvény bemenete nem lesz belefoglalva a válasz hasznos adataiba. |
showHistory |
Lekérdezési sztring | Nem kötelező paraméter. Ha be van true állítva, a vezénylés végrehajtási előzményei szerepelni fognak a válasz hasznos adatai között. |
showHistoryOutput |
Lekérdezési sztring | Nem kötelező paraméter. Ha be van true állítva, a függvénykimenetek szerepelni fognak a vezénylés végrehajtási előzményeiben. |
createdTimeFrom |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, szűri az adott ISO8601 időbélyegen vagy után létrehozott visszaadott példányok listáját. |
createdTimeTo |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, szűri az adott ISO8601 időbélyegen vagy előtt létrehozott visszaadott példányok listáját. |
runtimeStatus |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, a visszaadott példányok listáját a futtatókörnyezet állapota alapján szűri. A lehetséges futtatókörnyezeti állapotértékek listájának megtekintéséhez tekintse meg a Lekérdezéspéldányok című cikket. |
returnInternalServerErrorOnFailure |
Lekérdezési sztring | Nem kötelező paraméter. Ha be true van állítva, ez az API 200 helyett HTTP 500-választ ad vissza, ha a példány hibaállapotban van. Ez a paraméter automatizált állapot-lekérdezési forgatókönyvekhez készült. |
Válasz
Több lehetséges állapotkódérték is visszaadható.
- HTTP 200 (OK): A megadott példány befejeződött vagy sikertelen állapotban van.
- HTTP 202 (Elfogadva): A megadott példány folyamatban van.
- HTTP 400 (hibás kérelem):: A megadott példány nem sikerült vagy leállt.
- HTTP 404 (Nem található): A megadott példány nem létezik vagy nem indult el.
- HTTP 500 (belső kiszolgálóhiba): Csak akkor adja vissza, ha a
returnInternalServerErrorOnFailure
megadotttrue
példány nincs kezelve, és a megadott példány nem kezelt kivétellel meghiúsult.
A HTTP 200- és HTTP 202-esetek válasz hasznos adatai egy JSON-objektum, amely a következő mezőket tartalmazza:
Mező | Adattípus | Leírás |
---|---|---|
runtimeStatus |
húr | A példány futtatókörnyezeti állapota. Az értékek közé tartozik a futtatás, a függőben lévő, a sikertelen, a megszakított, a befejezett, a felfüggesztett. |
input |
JSON | A példány inicializálásához használt JSON-adatok. Ez a mező akkor van null beállítva, ha a lekérdezési sztring showInput paramétere a következőre false van állítva: . |
customStatus |
JSON | Az egyéni vezénylési állapothoz használt JSON-adatok. Ez a mező be van null állítva. |
output |
JSON | A példány JSON-kimenete. Ez a mező akkor jelenik null meg, ha a példány nincs befejezve. |
createdTime |
húr | A példány létrehozásának időpontja. ISO 8601 kiterjesztett jelölést használ. |
lastUpdatedTime |
húr | A példány utolsó megőrzésének időpontja. ISO 8601 kiterjesztett jelölést használ. |
historyEvents |
JSON | A vezénylés végrehajtási előzményeit tartalmazó JSON-tömb. Ez a mező csak akkor, null ha a lekérdezési sztring showHistory paramétere be van állítva true . |
Íme egy példa válasz hasznos adataira, beleértve a vezénylés végrehajtási előzményeit és a tevékenységkimeneteket (olvashatóságra formázva):
{
"createdTime": "2018-02-28T05:18:49Z",
"historyEvents": [
{
"EventType": "ExecutionStarted",
"FunctionName": "E1_HelloSequence",
"Timestamp": "2018-02-28T05:18:49.3452372Z"
},
{
"EventType": "TaskCompleted",
"FunctionName": "E1_SayHello",
"Result": "Hello Tokyo!",
"ScheduledTime": "2018-02-28T05:18:51.3939873Z",
"Timestamp": "2018-02-28T05:18:52.2895622Z"
},
{
"EventType": "TaskCompleted",
"FunctionName": "E1_SayHello",
"Result": "Hello Seattle!",
"ScheduledTime": "2018-02-28T05:18:52.8755705Z",
"Timestamp": "2018-02-28T05:18:53.1765771Z"
},
{
"EventType": "TaskCompleted",
"FunctionName": "E1_SayHello",
"Result": "Hello London!",
"ScheduledTime": "2018-02-28T05:18:53.5170791Z",
"Timestamp": "2018-02-28T05:18:53.891081Z"
},
{
"EventType": "ExecutionCompleted",
"OrchestrationStatus": "Completed",
"Result": [
"Hello Tokyo!",
"Hello Seattle!",
"Hello London!"
],
"Timestamp": "2018-02-28T05:18:54.3660895Z"
}
],
"input": null,
"customStatus": { "nextActions": ["A", "B", "C"], "foo": 2 },
"lastUpdatedTime": "2018-02-28T05:18:54Z",
"output": [
"Hello Tokyo!",
"Hello Seattle!",
"Hello London!"
],
"runtimeStatus": "Completed"
}
A HTTP 202-válasz tartalmaz egy Hely válaszfejlécet is, amely ugyanarra az URL-címre hivatkozik, mint a statusQueryGetUri
korábban említett mező.
Az összes példány állapotának lekérése
Az összes példány állapotát úgy is lekérdezheti, ha eltávolítja a instanceId
"Példányállapot lekérése" kérésből. Ebben az esetben az alapparaméterek megegyeznek a példány állapotának lekérésével. A szűréshez használható lekérdezési sztringparaméterek is támogatottak.
Kérelem
A Functions-futtatókörnyezet 1.x verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
GET /admin/extensions/DurableTaskExtension/instances
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
&instanceIdPrefix={prefix}
&showInput=[true|false]
&top={integer}
A Functions-futtatókörnyezet 2.x verziójában az URL-formátum ugyanazokat a paramétereket használja, de kissé eltérő előtaggal rendelkezik:
GET /runtime/webhooks/durableTask/instances?
taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
&instanceIdPrefix={prefix}
&showInput=[true|false]
&top={integer}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint a következő egyedi paraméterek:
Mező | Paramétertípus | Leírás |
---|---|---|
showInput |
Lekérdezési sztring | Nem kötelező paraméter. Ha be van false állítva, a függvény bemenete nem lesz belefoglalva a válasz hasznos adataiba. |
showHistoryOutput |
Lekérdezési sztring | Nem kötelező paraméter. Ha be van true állítva, a függvénykimenetek szerepelni fognak a vezénylés végrehajtási előzményeiben. |
createdTimeFrom |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, szűri az adott ISO8601 időbélyegen vagy után létrehozott visszaadott példányok listáját. |
createdTimeTo |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, szűri az adott ISO8601 időbélyegen vagy előtt létrehozott visszaadott példányok listáját. |
runtimeStatus |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, a visszaadott példányok listáját a futtatókörnyezet állapota alapján szűri. A lehetséges futtatókörnyezeti állapotértékek listájának megtekintéséhez tekintse meg a Lekérdezéspéldányok című cikket. |
instanceIdPrefix |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, a visszaadott példányok listáját úgy szűri, hogy csak azokat a példányokat tartalmazza, amelyek példányazonosítója a megadott előtag-sztringgel kezdődik. A bővítmény 2.7.2-es verziójától kezdve érhető el. |
top |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, korlátozza a lekérdezés által visszaadott példányok számát. |
Válasz
Íme egy példa a válasz hasznos adataira, beleértve a vezénylés állapotát (olvashatóságra formázva):
[
{
"instanceId": "7af46ff000564c65aafbfe99d07c32a5",
"runtimeStatus": "Completed",
"input": null,
"customStatus": null,
"output": [
"Hello Tokyo!",
"Hello Seattle!",
"Hello London!"
],
"createdTime": "2018-06-04T10:46:39Z",
"lastUpdatedTime": "2018-06-04T10:46:47Z"
},
{
"instanceId": "80eb7dd5c22f4eeba9f42b062794321e",
"runtimeStatus": "Running",
"input": null,
"customStatus": null,
"output": null,
"createdTime": "2018-06-04T15:18:28Z",
"lastUpdatedTime": "2018-06-04T15:18:38Z"
},
{
"instanceId": "9124518926db408ab8dfe84822aba2b1",
"runtimeStatus": "Completed",
"input": null,
"customStatus": null,
"output": [
"Hello Tokyo!",
"Hello Seattle!",
"Hello London!"
],
"createdTime": "2018-06-04T10:46:54Z",
"lastUpdatedTime": "2018-06-04T10:47:03Z"
},
{
"instanceId": "d100b90b903c4009ba1a90868331b11b",
"runtimeStatus": "Pending",
"input": null,
"customStatus": null,
"output": null,
"createdTime": "2018-06-04T15:18:39Z",
"lastUpdatedTime": "2018-06-04T15:18:39Z"
}
]
Feljegyzés
Ez a művelet nagyon költséges lehet az Azure Storage I/O szempontjából, ha az alapértelmezett Azure Storage-szolgáltatót használja, és ha a Példányok táblában sok sor található. A Példánytáblázat további részletei az Azure Storage szolgáltató dokumentációjában találhatók.
Ha további eredmények is léteznek, a válaszfejléc egy folytatási jogkivonatot ad vissza. A fejléc neve .x-ms-continuation-token
Figyelem
A lekérdezés eredménye kevesebb elemet adhat vissza, mint a megadott top
korlát. Az eredmények fogadásakor ezért mindig ellenőrizze, hogy van-e folytatási jogkivonat.
Ha a folytatási jogkivonat értékét a következő kérelemfejlécben állítja be, a következő találatoldalt is lekérheti. Ez a kérésfejléc neve is x-ms-continuation-token
.
Egyetlen példány előzményeinek törlése
Törli egy adott vezénylési példány előzményeit és kapcsolódó összetevőit.
Kérelem
A Functions-futtatókörnyezet 1.x verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
DELETE /admin/extensions/DurableTaskExtension/instances/{instanceId}
?taskHub={taskHub}
&connection={connection}
&code={systemKey}
A Functions-futtatókörnyezet 2.x verziójában az URL-formátum ugyanazokat a paramétereket használja, de kissé eltérő előtaggal rendelkezik:
DELETE /runtime/webhooks/durabletask/instances/{instanceId}
?taskHub={taskHub}
&connection={connection}
&code={systemKey}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint a következő egyedi paraméterek:
Mező | Paramétertípus | Leírás |
---|---|---|
instanceId |
URL-cím | A vezénylési példány azonosítója. |
Válasz
A következő HTTP-állapotkódértékek adhatók vissza.
- HTTP 200 (OK): A példányelőzmények kiürítése sikeresen megtörtént.
- HTTP 404 (Nem található): A megadott példány nem létezik.
A HTTP 200-eset válasz hasznos adata egy JSON-objektum, amely a következő mezővel rendelkezik:
Mező | Adattípus | Leírás |
---|---|---|
instancesDeleted |
egész szám | A törölt példányok száma. Az egyetlen példány esetében ennek az értéknek mindig a következőnek kell lennie 1 : . |
Íme egy példa válasz hasznos adataira (olvashatóságra formázva):
{
"instancesDeleted": 1
}
Több példány előzményének törlése
A feladatközpontban lévő több példány előzményeit és kapcsolódó összetevőit úgy is törölheti, hogy eltávolítja az {instanceId}
"Egyetlen példány előzményeinek törlése" kérésből. A példányelőzmények szelektív törléséhez használja a "Minden példány állapotának lekérése" kérésben leírt szűrőket.
Kérelem
A Functions-futtatókörnyezet 1.x verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
DELETE /admin/extensions/DurableTaskExtension/instances
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
A Functions-futtatókörnyezet 2.x verziójában az URL-formátum ugyanazokat a paramétereket használja, de kissé eltérő előtaggal rendelkezik:
DELETE /runtime/webhooks/durabletask/instances
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint a következő egyedi paraméterek:
Mező | Paramétertípus | Leírás |
---|---|---|
createdTimeFrom |
Lekérdezési sztring | Szűri azoknak a kiürített példányoknak a listáját, amelyeket az adott ISO8601 időbélyegen vagy után hoztak létre. |
createdTimeTo |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, szűri azoknak a kiürített példányoknak a listáját, amelyeket az adott ISO8601 időbélyegen vagy előtt hoztak létre. |
runtimeStatus |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, a futtatókörnyezet állapota alapján szűri a kiürített példányok listáját. A lehetséges futtatókörnyezeti állapotértékek listájának megtekintéséhez tekintse meg a Lekérdezéspéldányok című cikket. |
Feljegyzés
Ez a művelet nagyon költséges lehet az Azure Storage I/O szempontjából, ha az alapértelmezett Azure Storage-szolgáltatót használja, és ha a Példányok és/vagy előzmények táblában sok sor található. Ezekről a táblákról további részleteket a Durable Functions (Azure Functions) teljesítmény- és méretezési dokumentációjában talál.
Válasz
A következő HTTP-állapotkódértékek adhatók vissza.
- HTTP 200 (OK): A példányelőzmények kiürítése sikeresen megtörtént.
- HTTP 404 (Nem található): Nem található olyan példány, amely megfelel a szűrőkifejezésnek.
A HTTP 200-eset válasz hasznos adata egy JSON-objektum, amely a következő mezővel rendelkezik:
Mező | Adattípus | Leírás |
---|---|---|
instancesDeleted |
egész szám | A törölt példányok száma. |
Íme egy példa válasz hasznos adataira (olvashatóságra formázva):
{
"instancesDeleted": 250
}
Esemény emelése
Eseményértesítési üzenetet küld egy futó vezénylési példánynak.
Kérelem
A Functions-futtatókörnyezet 1.x verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/raiseEvent/{eventName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
A Functions-futtatókörnyezet 2.x verziójában az URL-formátum ugyanazokat a paramétereket használja, de kissé eltérő előtaggal rendelkezik:
POST /runtime/webhooks/durabletask/instances/{instanceId}/raiseEvent/{eventName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint a következő egyedi paraméterek:
Mező | Paramétertípus | Leírás |
---|---|---|
instanceId |
URL-cím | A vezénylési példány azonosítója. |
eventName |
URL-cím | Annak az eseménynek a neve, amelyen a cél vezénylési példány várakozik. |
{content} |
Tartalom kérése | A JSON-formátumú esemény hasznos adatai. |
Válasz
Több lehetséges állapotkódérték is visszaadható.
- HTTP 202 (Elfogadva): A létrehozott esemény feldolgozásra lett elfogadva.
- HTTP 400 (Hibás kérés):: A kérelem tartalma nem volt típus vagy
application/json
érvénytelen JSON. - HTTP 404 (Nem található): A megadott példány nem található.
- HTTP 410 (Gone): A megadott példány befejeződött vagy meghiúsult, és nem tudja feldolgozni a létrehozott eseményeket.
Íme egy példakérés, amely elküldi a JSON-sztringet "incr"
egy olyan példánynak, amely egy esemény nevesített műveletre vár:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/raiseEvent/operation?taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Content-Type: application/json
Content-Length: 6
"incr"
Az API válaszai nem tartalmaznak tartalmat.
Példány leállítja a példányt
Leállítja a futó vezénylési példányt.
Kérelem
A Functions-futtatókörnyezet 1.x verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/terminate
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
A Functions-futtatókörnyezet 2.x verziójában az URL-formátum ugyanazokat a paramétereket használja, de kissé eltérő előtaggal rendelkezik:
POST /runtime/webhooks/durabletask/instances/{instanceId}/terminate
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint az alábbi egyedi paraméter.
Mező | Paraméter típusa | Leírás |
---|---|---|
instanceId |
URL-cím | A vezénylési példány azonosítója. |
reason |
Lekérdezési sztring | Opcionális. A vezénylési példány megszüntetésének oka. |
Válasz
Több lehetséges állapotkódérték is visszaadható.
- HTTP 202 (Elfogadva): A leállítási kérelem feldolgozásra lett elfogadva.
- HTTP 404 (Nem található): A megadott példány nem található.
- HTTP 410 (Gone): A megadott példány befejeződött vagy meghiúsult.
Íme egy példakérés, amely leállítja a futó példányt, és megadja a hiba okát:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/terminate?reason=buggy&taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Az API válaszai nem tartalmaznak tartalmat.
Példány felfüggesztése
Felfüggeszt egy futó vezénylési példányt.
Kérelem
A Functions-futtatókörnyezet 2.x-es verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
POST /runtime/webhooks/durabletask/instances/{instanceId}/suspend
?reason={text}
&taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Mező | Paraméter típusa | Leírás |
---|---|---|
instanceId |
URL-cím | A vezénylési példány azonosítója. |
reason |
Lekérdezési sztring | Opcionális. A vezénylési példány felfüggesztésének oka. |
Több lehetséges állapotkódérték is visszaadható.
- HTTP 202 (Elfogadva): A felfüggesztési kérelem feldolgozásra lett elfogadva.
- HTTP 404 (Nem található): A megadott példány nem található.
- HTTP 410 (Gone): A megadott példány befejeződött, meghiúsult vagy leállt.
Az API válaszai nem tartalmaznak tartalmat.
Példány folytatása
Folytatja a felfüggesztett vezénylési példányt.
Kérelem
A Functions-futtatókörnyezet 2.x-es verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
POST /runtime/webhooks/durabletask/instances/{instanceId}/resume
?reason={text}
&taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Mező | Paraméter típusa | Leírás |
---|---|---|
instanceId |
URL-cím | A vezénylési példány azonosítója. |
reason |
Lekérdezési sztring | Opcionális. A vezénylési példány újraindításának oka. |
Több lehetséges állapotkódérték is visszaadható.
- HTTP 202 (Elfogadva): Az önéletrajz-kérelem feldolgozásra lett elfogadva.
- HTTP 404 (Nem található): A megadott példány nem található.
- HTTP 410 (Gone): A megadott példány befejeződött, meghiúsult vagy leállt.
Az API válaszai nem tartalmaznak tartalmat.
Példány visszatekerése (előzetes verzió)
Visszaállít egy sikertelen vezénylési példányt futó állapotba a legutóbbi sikertelen műveletek ismétlésével.
Kérelem
A Functions-futtatókörnyezet 1.x verziójában a kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/rewind
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
A Functions-futtatókörnyezet 2.x verziójában az URL-formátum ugyanazokat a paramétereket használja, de kissé eltérő előtaggal rendelkezik:
POST /runtime/webhooks/durabletask/instances/{instanceId}/rewind
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint az alábbi egyedi paraméter.
Mező | Paraméter típusa | Leírás |
---|---|---|
instanceId |
URL-cím | A vezénylési példány azonosítója. |
reason |
Lekérdezési sztring | Opcionális. A vezénylési példány visszatekerésének oka. |
Válasz
Több lehetséges állapotkódérték is visszaadható.
- HTTP 202 (Elfogadva): A visszatekerési kérelem feldolgozásra lett elfogadva.
- HTTP 404 (Nem található): A megadott példány nem található.
- HTTP 410 (Gone): A megadott példány befejeződött vagy leállt.
Íme egy példakérés, amely visszateker egy sikertelen példányt, és megadja a javítás okát:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/rewind?reason=fixed&taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Az API válaszai nem tartalmaznak tartalmat.
Jelentitás
Egyirányú műveletüzenetet küld egy tartós entitásnak. Ha az entitás nem létezik, automatikusan létrejön.
Feljegyzés
A Tartós entitások a Durable Functions 2.0-tól érhetők el.
Kérelem
A HTTP-kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
POST /runtime/webhooks/durabletask/entities/{entityName}/{entityKey}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&op={operationName}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint a következő egyedi paraméterek:
Mező | Paramétertípus | Leírás |
---|---|---|
entityName |
URL-cím | Az entitás neve (típusa). |
entityKey |
URL-cím | Az entitás kulcsa (egyedi azonosítója). |
op |
Lekérdezési sztring | Opcionális. A meghívandó felhasználó által megadott művelet neve. |
{content} |
Tartalom kérése | A JSON-formátumú esemény hasznos adatai. |
Íme egy példakérés, amely egy felhasználó által definiált "Hozzáadás" üzenetet küld egy Counter
nevű steps
entitásnak. Az üzenet tartalma az érték 5
. Ha az entitás még nem létezik, a következő kérés hozza létre:
POST /runtime/webhooks/durabletask/entities/Counter/steps?op=Add
Content-Type: application/json
5
Feljegyzés
Alapértelmezés szerint az osztályalapú entitások a .NET-ben, az op
érték delete
megadásával törli az entitás állapotát. Ha az entitás egy elnevezett delete
műveletet határoz meg, a rendszer ehelyett a felhasználó által definiált műveletet fogja meghívni.
Válasz
Ez a művelet több lehetséges választ is ad:
- HTTP 202 (Elfogadva): A jelművelet aszinkron feldolgozásra lett elfogadva.
- HTTP 400 (Hibás kérés):: A kérelem tartalma nem
application/json
típusú volt, érvénytelen JSON volt, vagy érvénytelenentityKey
érték volt. - HTTP 404 (Nem található): A megadott
entityName
nem található.
A sikeres HTTP-kérések nem tartalmaznak tartalmat a válaszban. A sikertelen HTTP-kérések JSON formátumú hibainformációkat tartalmazhatnak a válasz tartalmában.
Entitás lekérése
Lekéri a megadott entitás állapotát.
Kérelem
A HTTP-kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
GET /runtime/webhooks/durabletask/entities/{entityName}/{entityKey}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Válasz
Ez a művelet két lehetséges választ ad:
- HTTP 200 (OK): A megadott entitás létezik.
- HTTP 404 (Nem található): A megadott entitás nem található.
A sikeres válasz tartalma az entitás JSON-szerializált állapotát tartalmazza.
Példa
Az alábbi HTTP-kérelem egy meglévő Counter
entitás állapotát kéri le steps
:
GET /runtime/webhooks/durabletask/entities/Counter/steps
Ha az Counter
entitás egyszerűen tartalmazott egy mezőben mentett currentValue
lépések számát, a válasz tartalma a következőhöz hasonlóan nézhet ki (olvashatóságra formázva):
{
"currentValue": 5
}
Listaentitások
Több entitást is lekérdezhet az entitás neve vagy az utolsó művelet dátuma alapján.
Kérelem
A HTTP-kérés a következőképpen van formázva (az egyértelműség érdekében több sor jelenik meg):
GET /runtime/webhooks/durabletask/entities/{entityName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&lastOperationTimeFrom={timestamp}
&lastOperationTimeTo={timestamp}
&fetchState=[true|false]
&top={integer}
Az API kérésparaméterei közé tartozik a korábban említett alapértelmezett készlet, valamint a következő egyedi paraméterek:
Mező | Paramétertípus | Leírás |
---|---|---|
entityName |
URL-cím | Opcionális. Ha meg van adva, a visszaadott entitások listáját az entitás neve alapján szűri (kis- és nagybetűk megkülönböztetése). |
fetchState |
Lekérdezési sztring | Nem kötelező paraméter. Ha be van true állítva, az entitás állapota szerepelni fog a válasz hasznos adatai között. |
lastOperationTimeFrom |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, szűri azon visszaadott entitások listáját, amelyek a megadott ISO8601 időbélyeg után dolgozták fel a műveletet. |
lastOperationTimeTo |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, szűri azoknak a visszaadott entitásoknak a listáját, amelyek a megadott ISO8601 időbélyeg előtt dolgozták fel a műveleteket. |
top |
Lekérdezési sztring | Nem kötelező paraméter. Ha meg van adva, korlátozza a lekérdezés által visszaadott entitások számát. |
Válasz
A sikeres HTTP 200-válasz egy JSON-szerializált entitástömböt és opcionálisan az egyes entitások állapotát tartalmazza.
Alapértelmezés szerint a művelet a lekérdezési feltételeknek megfelelő első 100 entitást adja vissza. A hívó megadhat egy lekérdezési sztring paraméterértéket top
, amely eltérő maximális számú eredményt ad vissza. Ha a visszaadott eredményen túl további eredmények is léteznek, a válaszfejlécben egy folytatási jogkivonat is megjelenik. A fejléc neve .x-ms-continuation-token
Ha a folytatási jogkivonat értékét a következő kérelemfejlécben állítja be, a következő találatoldalt is lekérheti. Ez a kérésfejléc neve is x-ms-continuation-token
.
Példa – az összes entitás listázása
Az alábbi HTTP-kérelem példa felsorolja a tevékenységközpont összes entitását:
GET /runtime/webhooks/durabletask/entities
A válasz JSON-ja a következőhöz hasonlóan nézhet ki (olvashatóságra formázva):
[
{
"entityId": { "key": "cats", "name": "counter" },
"lastOperationTime": "2019-12-18T21:45:44.6326361Z",
},
{
"entityId": { "key": "dogs", "name": "counter" },
"lastOperationTime": "2019-12-18T21:46:01.9477382Z"
},
{
"entityId": { "key": "mice", "name": "counter" },
"lastOperationTime": "2019-12-18T21:46:15.4626159Z"
},
{
"entityId": { "key": "radio", "name": "device" },
"lastOperationTime": "2019-12-18T21:46:18.2616154Z"
},
]
Példa – az entitások listájának szűrése
Az alábbi HTTP-kérelem példa csak az első két típusú counter
entitást sorolja fel, és beolvassa az állapotukat is:
GET /runtime/webhooks/durabletask/entities/counter?top=2&fetchState=true
A válasz JSON-ja a következőhöz hasonlóan nézhet ki (olvashatóságra formázva):
[
{
"entityId": { "key": "cats", "name": "counter" },
"lastOperationTime": "2019-12-18T21:45:44.6326361Z",
"state": { "value": 9 }
},
{
"entityId": { "key": "dogs", "name": "counter" },
"lastOperationTime": "2019-12-18T21:46:01.9477382Z",
"state": { "value": 10 }
}
]