Share via


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

Paraméter Paraméter típusa Leírás
taskHub Lekérdezési sztring A tevékenységközpont neve. Ha nincs megadva, a függvényalkalmazás aktuális feladatközpontjának neve lesz feltételezve.
connection Lekérdezési sztring A háttértár-szolgáltató kapcsolatalkalmazás-beállításának neve . Ha nincs megadva, a függvényalkalmazás alapértelmezett kapcsolatkonfigurációja lesz feltételezve.
systemKey Lekérdezési sztring Az API meghívásához szükséges engedélyezési kulcs.

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 truevan á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 megadott true 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 falsevan á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 topkorlá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ű stepsentitá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 deletemű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/jsontípusú volt, érvénytelen JSON volt, vagy érvénytelen entityKey é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 }
    }
]

Következő lépések