HTTP API-referens
Tillägget Durable Functions exponerar en uppsättning inbyggda HTTP-API:er som kan användas för att utföra hanteringsuppgifter på orkestreringar, entiteter och aktivitetshubbar. Dessa HTTP-API:er är utökningswebbhooks som är auktoriserade av Azure Functions-värden men hanteras direkt av Durable Functions-tillägget.
Bas-URL:en för de API:er som nämns i den här artikeln är samma som bas-URL:en för funktionsappen. När du utvecklar lokalt med Hjälp av Azure Functions Core Tools är bas-URL:en vanligtvis http://localhost:7071
. I den azure functions-värdbaserade tjänsten är bas-URL:en vanligtvis https://{appName}.azurewebsites.net
. Anpassade värdnamn stöds också om de konfigureras i App Service-appen.
Alla HTTP-API:er som implementeras av tillägget kräver följande parametrar. Datatypen för alla parametrar är string
.
systemKey
är en auktoriseringsnyckel som genereras automatiskt av Azure Functions-värden. Det ger specifikt åtkomst till API:erna för durable task-tillägget och kan hanteras på samma sätt som andra Azure Functions-åtkomstnycklar. Du kan generera URL:er som innehåller rätt taskHub
, connection
och systemKey
frågesträngsvärden med hjälp av api:er för orkestreringsklientbindning, till exempel CreateCheckStatusResponse
API:erna och CreateHttpManagementPayload
i .NET, API:erna createCheckStatusResponse
och createHttpManagementPayload
i JavaScript osv.
De kommande avsnitten beskriver de specifika HTTP-API:er som stöds av tillägget och innehåller exempel på hur de kan användas.
Starta orkestrering
Börjar köra en ny instans av den angivna orchestrator-funktionen.
Begär
För version 1.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
POST /admin/extensions/DurableTaskExtension/orchestrators/{functionName}/{instanceId?}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
I version 2.x av Functions-körningen har URL-formatet samma parametrar men med ett något annorlunda prefix:
POST /runtime/webhooks/durabletask/orchestrators/{functionName}/{instanceId?}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parametrar:
Fält | Parametertyp | beskrivning |
---|---|---|
functionName |
Webbadress | Namnet på orkestreringsfunktionen som ska startas. |
instanceId |
webbadress | Valfri parameter. ID för orkestreringsinstansen. Om den inte anges börjar orkestreringsfunktionen med ett slumpmässigt instans-ID. |
{content} |
Begära innehåll | Valfritt. JSON-formaterad orchestrator-funktionsindata. |
Response
Flera möjliga statuskodvärden kan returneras.
- HTTP 202 (accepterad): Den angivna orkestreringsfunktionen var schemalagd att börja köras. Svarshuvudet
Location
innehåller en URL för avsökning av orkestreringsstatusen. - HTTP 400 (felaktig begäran): Den angivna orchestrator-funktionen finns inte, det angivna instans-ID:t var inte giltigt eller så var begärandeinnehållet ogiltigt JSON.
Följande är en exempelbegäran som startar en RestartVMs
orchestrator-funktion och innehåller JSON-objektnyttolast:
POST /runtime/webhooks/durabletask/orchestrators/RestartVMs?code=XXX
Content-Type: application/json
Content-Length: 83
{
"resourceGroup": "myRG",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}
Svarsnyttolasten för HTTP 202-ärenden är ett JSON-objekt med följande fält:
Fält | beskrivning |
---|---|
id |
ID för orkestreringsinstansen. |
statusQueryGetUri |
Status-URL:en för orkestreringsinstansen. |
sendEventPostUri |
URL:en för "raise event" för orkestreringsinstansen. |
terminatePostUri |
Url:en "avsluta" för orkestreringsinstansen. |
purgeHistoryDeleteUri |
URL:en för "rensningshistorik" för orkestreringsinstansen. |
rewindPostUri |
(förhandsversion) Url:en "spola tillbaka" för orkestreringsinstansen. |
suspendPostUri |
Url:en "pausa" för orkestreringsinstansen. |
resumePostUri |
Url:en "återuppta" för orkestreringsinstansen. |
Datatypen för alla fält är string
.
Här är ett exempel på svarsnyttolast för en orkestreringsinstans med abc123
som sitt ID (formaterat för läsbarhet):
{
"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"
}
HTTP-svaret är avsett att vara kompatibelt med avsökningskonsumentmönstret. Den innehåller även följande viktiga svarshuvuden:
- Plats: URL:en för statusslutpunkten. Den här URL:en innehåller samma värde som fältet
statusQueryGetUri
. - Försök igen: Antalet sekunder att vänta mellan avsökningsåtgärder. Standardvärdet är
10
.
Mer information om det asynkrona HTTP-avsökningsmönstret finns i dokumentationen för HTTP-asynkron åtgärdsspårning .
Hämta instansstatus
Hämtar status för en angiven orkestreringsinstans.
Begär
För version 1.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
GET /admin/extensions/DurableTaskExtension/instances/{instanceId}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&showHistory=[true|false]
&showHistoryOutput=[true|false]
&showInput=[true|false]
&returnInternalServerErrorOnFailure=[true|false]
I version 2.x av Functions-körningen har URL-formatet samma parametrar men med ett något annorlunda prefix:
GET /runtime/webhooks/durabletask/instances/{instanceId}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&showHistory=[true|false]
&showHistoryOutput=[true|false]
&showInput=[true|false]
&returnInternalServerErrorOnFailure=[true|false]
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parametrar:
Fält | Parametertyp | beskrivning |
---|---|---|
instanceId |
Webbadress | ID för orkestreringsinstansen. |
showInput |
Frågesträng | Valfri parameter. Om värdet false är inställt på inkluderas inte funktionsindata i svarsnyttolasten. |
showHistory |
Frågesträng | Valfri parameter. Om värdet är true inställt på inkluderas orkestreringskörningshistoriken i svarsnyttolasten. |
showHistoryOutput |
Frågesträng | Valfri parameter. Om värdet är true inställt på inkluderas funktionsutdata i orkestreringskörningshistoriken. |
createdTimeFrom |
Frågesträng | Valfri parameter. När du anger det filtrerar du listan över returnerade instanser som skapades vid eller efter den angivna ISO8601 tidsstämpeln. |
createdTimeTo |
Frågesträng | Valfri parameter. När du anger det filtrerar du listan över returnerade instanser som skapades vid eller före den angivna ISO8601 tidsstämpeln. |
runtimeStatus |
Frågesträng | Valfri parameter. När det anges filtrerar du listan över returnerade instanser baserat på deras körningsstatus. En lista över möjliga körningsstatusvärden finns i artikeln Fråga instanser . |
returnInternalServerErrorOnFailure |
Frågesträng | Valfri parameter. Om värdet är true inställt på returnerar det här API:et ett HTTP 500-svar i stället för 200 om instansen är i ett feltillstånd. Den här parametern är avsedd för scenarier för automatisk statusavsökning. |
Response
Flera möjliga statuskodvärden kan returneras.
- HTTP 200 (OK): Den angivna instansen är i ett slutfört eller misslyckat tillstånd.
- HTTP 202 (accepterad): Den angivna instansen pågår.
- HTTP 400 (felaktig begäran): Den angivna instansen misslyckades eller avslutades.
- HTTP 404 (hittades inte): Den angivna instansen finns inte eller har inte börjat köras.
- HTTP 500 (internt serverfel): Returneras endast när
returnInternalServerErrorOnFailure
är inställt påtrue
och den angivna instansen misslyckades med ett ohanterat undantag.
Svarsnyttolasten för HTTP 200 - och HTTP 202-fallen är ett JSON-objekt med följande fält:
Fält | Datatyp | beskrivning |
---|---|---|
runtimeStatus |
sträng | Körningsstatus för instansen. Värden inkluderar körning, väntar, misslyckades, avbröts, avslutades, slutfördes, pausades. |
input |
JSON | JSON-data som används för att initiera instansen. Det här fältet är null om frågesträngsparametern showInput är inställd på false . |
customStatus |
JSON | JSON-data som används för anpassad orkestreringsstatus. Det här fältet är null om det inte har angetts. |
output |
JSON | JSON-utdata för instansen. Det här fältet är null om instansen inte är i ett slutfört tillstånd. |
createdTime |
sträng | Tidpunkten då instansen skapades. Använder iso 8601 utökad notation. |
lastUpdatedTime |
sträng | Tiden då instansen senast sparades. Använder iso 8601 utökad notation. |
historyEvents |
JSON | En JSON-matris som innehåller orkestreringskörningshistoriken. Det här fältet är null om inte showHistory frågesträngsparametern är inställd på true . |
Här är ett exempel på svarsnyttolast, inklusive orkestreringskörningshistoriken och aktivitetsutdata (formaterade för läsbarhet):
{
"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"
}
HTTP 202-svaret innehåller också en platssvarsrubrik som refererar till samma URL som det statusQueryGetUri
fält som nämndes tidigare.
Hämta alla instansstatusar
Du kan också fråga efter status för alla instanser genom att ta bort instanceId
från begäran "Hämta instansstatus". I det här fallet är de grundläggande parametrarna samma som "Hämta instansstatus". Frågesträngsparametrar för filtrering stöds också.
Begär
För version 1.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
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}
I version 2.x av Functions-körningen har URL-formatet samma parametrar men med ett något annorlunda prefix:
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}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parametrar:
Fält | Parametertyp | beskrivning |
---|---|---|
showInput |
Frågesträng | Valfri parameter. Om värdet false är inställt på inkluderas inte funktionsindata i svarsnyttolasten. |
showHistoryOutput |
Frågesträng | Valfri parameter. Om värdet är true inställt på inkluderas funktionsutdata i orkestreringskörningshistoriken. |
createdTimeFrom |
Frågesträng | Valfri parameter. När du anger det filtrerar du listan över returnerade instanser som skapades vid eller efter den angivna ISO8601 tidsstämpeln. |
createdTimeTo |
Frågesträng | Valfri parameter. När du anger det filtrerar du listan över returnerade instanser som skapades vid eller före den angivna ISO8601 tidsstämpeln. |
runtimeStatus |
Frågesträng | Valfri parameter. När det anges filtrerar du listan över returnerade instanser baserat på deras körningsstatus. En lista över möjliga körningsstatusvärden finns i artikeln Fråga instanser . |
instanceIdPrefix |
Frågesträng | Valfri parameter. När det anges filtreras listan över returnerade instanser så att den endast innehåller instanser vars instans-ID börjar med den angivna prefixsträngen. Tillgänglig från och med version 2.7.2 av tillägget. |
top |
Frågesträng | Valfri parameter. När det anges begränsar du antalet instanser som returneras av frågan. |
Response
Här är ett exempel på svarsnyttolaster, inklusive orkestreringsstatusen (formaterad för läsbarhet):
[
{
"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"
}
]
Kommentar
Den här åtgärden kan vara mycket dyr när det gäller Azure Storage I/O om du använder azure storage-standardprovidern och om det finns många rader i tabellen Instanser. Mer information om instanstabellen finns i dokumentationen för Azure Storage-providern .
Om det finns fler resultat returneras en fortsättningstoken i svarshuvudet. Namnet på rubriken är x-ms-continuation-token
.
Varning
Frågeresultatet kan returnera färre objekt än den gräns som anges av top
. När du får resultat bör du därför alltid kontrollera om det finns en fortsättningstoken.
Om du anger värdet för fortsättningstoken i nästa begärandehuvud kan du få nästa resultatsida. Det här namnet på begärandehuvudet är också x-ms-continuation-token
.
Rensa enstaka instanshistorik
Tar bort historiken och relaterade artefakter för en angiven orkestreringsinstans.
Begär
För version 1.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
DELETE /admin/extensions/DurableTaskExtension/instances/{instanceId}
?taskHub={taskHub}
&connection={connection}
&code={systemKey}
I version 2.x av Functions-körningen har URL-formatet samma parametrar men med ett något annorlunda prefix:
DELETE /runtime/webhooks/durabletask/instances/{instanceId}
?taskHub={taskHub}
&connection={connection}
&code={systemKey}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parametrar:
Fält | Parametertyp | beskrivning |
---|---|---|
instanceId |
Webbadress | ID för orkestreringsinstansen. |
Response
Följande HTTP-statuskodvärden kan returneras.
- HTTP 200 (OK): Instanshistoriken har rensats.
- HTTP 404 (hittades inte): Den angivna instansen finns inte.
Svarsnyttolasten för HTTP 200-fallet är ett JSON-objekt med följande fält:
Fält | Datatyp | beskrivning |
---|---|---|
instancesDeleted |
integer | Antalet borttagna instanser. För det enskilda instansfallet ska det här värdet alltid vara 1 . |
Här är ett exempel på svarsnyttolast (formaterad för läsbarhet):
{
"instancesDeleted": 1
}
Rensa flera instanshistoriker
Du kan också ta bort historiken och relaterade artefakter för flera instanser i en aktivitetshubb genom att ta bort {instanceId}
från begäran "Rensa enskild instanshistorik". Om du vill rensa instanshistoriken selektivt använder du samma filter som beskrivs i begäran "Hämta alla instanser status".
Begär
För version 1.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
DELETE /admin/extensions/DurableTaskExtension/instances
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
I version 2.x av Functions-körningen har URL-formatet samma parametrar men med ett något annorlunda prefix:
DELETE /runtime/webhooks/durabletask/instances
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parametrar:
Fält | Parametertyp | beskrivning |
---|---|---|
createdTimeFrom |
Frågesträng | Filtrerar listan över rensade instanser som skapades vid eller efter den angivna ISO8601 tidsstämpeln. |
createdTimeTo |
Frågesträng | Valfri parameter. När du anger det filtrerar du listan över rensade instanser som skapades vid eller före den angivna ISO8601 tidsstämpeln. |
runtimeStatus |
Frågesträng | Valfri parameter. När du anger det filtrerar du listan över rensade instanser baserat på deras körningsstatus. En lista över möjliga körningsstatusvärden finns i artikeln Fråga instanser . |
Kommentar
Den här åtgärden kan vara mycket dyr när det gäller Azure Storage I/O om du använder azure storage-standardprovidern och om det finns många rader i tabellerna Instanser och/eller historik. Mer information om dessa tabeller finns i dokumentationen Prestanda och skalning i Durable Functions (Azure Functions).
Response
Följande HTTP-statuskodvärden kan returneras.
- HTTP 200 (OK): Instanshistoriken har rensats.
- HTTP 404 (hittades inte): Inga instanser hittades som matchar filteruttrycket.
Svarsnyttolasten för HTTP 200-fallet är ett JSON-objekt med följande fält:
Fält | Datatyp | beskrivning |
---|---|---|
instancesDeleted |
integer | Antalet borttagna instanser. |
Här är ett exempel på svarsnyttolast (formaterad för läsbarhet):
{
"instancesDeleted": 250
}
Skapa händelse
Skickar ett händelsemeddelande till en orkestreringsinstans som körs.
Begär
För version 1.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/raiseEvent/{eventName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
I version 2.x av Functions-körningen har URL-formatet samma parametrar men med ett något annorlunda prefix:
POST /runtime/webhooks/durabletask/instances/{instanceId}/raiseEvent/{eventName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parametrar:
Fält | Parametertyp | beskrivning |
---|---|---|
instanceId |
Webbadress | ID för orkestreringsinstansen. |
eventName |
webbadress | Namnet på den händelse som målorkestreringsinstansen väntar på. |
{content} |
Begära innehåll | Den JSON-formaterade händelsenyttolasten. |
Response
Flera möjliga statuskodvärden kan returneras.
- HTTP 202 (accepterad): Den upphöjda händelsen accepterades för bearbetning.
- HTTP 400 (felaktig begäran): Begärandeinnehållet var inte av typen
application/json
eller var inte giltigt JSON. - HTTP 404 (hittades inte): Den angivna instansen hittades inte.
- HTTP 410 (Borta): Den angivna instansen har slutförts eller misslyckats och kan inte bearbeta några upphöjda händelser.
Här är en exempelbegäran som skickar JSON-strängen "incr"
till en instans som väntar på en händelse med namnet operation:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/raiseEvent/operation?taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Content-Type: application/json
Content-Length: 6
"incr"
Svaren för det här API:et innehåller inget innehåll.
Avsluta instans
Avslutar en orkestreringsinstans som körs.
Begär
För version 1.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/terminate
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
I version 2.x av Functions-körningen har URL-formatet samma parametrar men med ett något annorlunda prefix:
POST /runtime/webhooks/durabletask/instances/{instanceId}/terminate
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parameter.
Fält | Parametertyp | beskrivning |
---|---|---|
instanceId |
Webbadress | ID för orkestreringsinstansen. |
reason |
Frågesträng | Valfritt. Orsaken till att orkestreringsinstansen avslutas. |
Response
Flera möjliga statuskodvärden kan returneras.
- HTTP 202 (godkänd): Begäran om att avsluta godkändes för bearbetning.
- HTTP 404 (hittades inte): Den angivna instansen hittades inte.
- HTTP 410 (Borta): Den angivna instansen har slutförts eller misslyckats.
Här är en exempelbegäran som avslutar en instans som körs och anger orsaken till buggy:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/terminate?reason=buggy&taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Svaren för det här API:et innehåller inget innehåll.
Pausa instans
Pausar en orkestreringsinstans som körs.
Begär
I version 2.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
POST /runtime/webhooks/durabletask/instances/{instanceId}/suspend
?reason={text}
&taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Fält | Parametertyp | beskrivning |
---|---|---|
instanceId |
Webbadress | ID för orkestreringsinstansen. |
reason |
Frågesträng | Valfritt. Orsaken till att orkestreringsinstansen pausas. |
Flera möjliga statuskodvärden kan returneras.
- HTTP 202 (godkänd): Begäran om paus accepterades för bearbetning.
- HTTP 404 (hittades inte): Den angivna instansen hittades inte.
- HTTP 410 (Borta): Den angivna instansen har slutförts, misslyckats eller avslutats.
Svaren för det här API:et innehåller inget innehåll.
Återuppta instans
Återupptar en pausad orkestreringsinstans.
Begär
I version 2.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
POST /runtime/webhooks/durabletask/instances/{instanceId}/resume
?reason={text}
&taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Fält | Parametertyp | beskrivning |
---|---|---|
instanceId |
Webbadress | ID för orkestreringsinstansen. |
reason |
Frågesträng | Valfritt. Orsaken till att orkestreringsinstansen återupptas. |
Flera möjliga statuskodvärden kan returneras.
- HTTP 202 (godkänd): Begäran om återupptagning accepterades för bearbetning.
- HTTP 404 (hittades inte): Den angivna instansen hittades inte.
- HTTP 410 (Borta): Den angivna instansen har slutförts, misslyckats eller avslutats.
Svaren för det här API:et innehåller inget innehåll.
Spola tillbaka instansen (förhandsversion)
Återställer en misslyckad orkestreringsinstans till ett körningstillstånd genom att spela upp de senaste misslyckade åtgärderna.
Begär
För version 1.x av Functions-körningen formateras begäran enligt följande (flera rader visas för tydlighetens skull):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/rewind
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
I version 2.x av Functions-körningen har URL-formatet samma parametrar men med ett något annorlunda prefix:
POST /runtime/webhooks/durabletask/instances/{instanceId}/rewind
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parameter.
Fält | Parametertyp | beskrivning |
---|---|---|
instanceId |
Webbadress | ID för orkestreringsinstansen. |
reason |
Frågesträng | Valfritt. Orsaken till att orkestreringsinstansen spolas tillbaka. |
Response
Flera möjliga statuskodvärden kan returneras.
- HTTP 202 (accepterad): Begäran om bakåtspolning accepterades för bearbetning.
- HTTP 404 (hittades inte): Den angivna instansen hittades inte.
- HTTP 410 (Borta): Den angivna instansen har slutförts eller avslutats.
Här är en exempelbegäran som spolar tillbaka en misslyckad instans och anger orsaken till att den är fast:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/rewind?reason=fixed&taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Svaren för det här API:et innehåller inget innehåll.
Signalentitet
Skickar ett envägsåtgärdsmeddelande till en varaktig entitet. Om entiteten inte finns skapas den automatiskt.
Kommentar
Varaktiga entiteter är tillgängliga från och med Durable Functions 2.0.
Begär
HTTP-begäran formateras på följande sätt (flera rader visas för tydlighetens skull):
POST /runtime/webhooks/durabletask/entities/{entityName}/{entityKey}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&op={operationName}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parametrar:
Fält | Parametertyp | beskrivning |
---|---|---|
entityName |
Webbadress | Entitetens namn (typ). |
entityKey |
webbadress | Nyckeln (unikt ID) för entiteten. |
op |
Frågesträng | Valfritt. Namnet på den användardefinierade åtgärd som ska anropas. |
{content} |
Begära innehåll | Den JSON-formaterade händelsenyttolasten. |
Här är en exempelbegäran som skickar ett användardefinierat "Lägg till"-meddelande till en entitet Counter
med namnet steps
. Innehållet i meddelandet är värdet 5
. Om entiteten inte redan finns skapas den av den här begäran:
POST /runtime/webhooks/durabletask/entities/Counter/steps?op=Add
Content-Type: application/json
5
Kommentar
Som standard med klassbaserade entiteter i .NET tas tillståndet för en entitet bort om du anger op
värdet delete
för. Om entiteten definierar en åtgärd med namnet delete
anropas dock den användardefinierade åtgärden i stället.
Response
Den här åtgärden har flera möjliga svar:
- HTTP 202 (accepterad): Signalåtgärden accepterades för asynkron bearbetning.
- HTTP 400 (felaktig begäran): Begärandeinnehållet var inte av typen
application/json
, var inte giltig JSON eller hade ett ogiltigtentityKey
värde. - HTTP 404 (hittades inte): Det angivna
entityName
gick inte att hitta.
En lyckad HTTP-begäran innehåller inget innehåll i svaret. En misslyckad HTTP-begäran kan innehålla JSON-formaterad felinformation i svarsinnehållet.
Hämta entitet
Hämtar tillståndet för den angivna entiteten.
Begär
HTTP-begäran formateras på följande sätt (flera rader visas för tydlighetens skull):
GET /runtime/webhooks/durabletask/entities/{entityName}/{entityKey}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Response
Den här åtgärden har två möjliga svar:
- HTTP 200 (OK): Den angivna entiteten finns.
- HTTP 404 (hittades inte): Den angivna entiteten hittades inte.
Ett lyckat svar innehåller det JSON-serialiserade tillståndet för entiteten som dess innehåll.
Exempel
I följande exempel hämtar HTTP-begäran tillståndet för en befintlig Counter
entitet med namnet steps
:
GET /runtime/webhooks/durabletask/entities/Counter/steps
Om entiteten Counter
helt enkelt innehåller ett antal steg som sparats i ett currentValue
fält kan svarsinnehållet se ut som följande (formaterat för läsbarhet):
{
"currentValue": 5
}
Listentiteter
Du kan fråga efter flera entiteter efter entitetsnamnet eller efter det senaste åtgärdsdatumet.
Begär
HTTP-begäran formateras på följande sätt (flera rader visas för tydlighetens skull):
GET /runtime/webhooks/durabletask/entities/{entityName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&lastOperationTimeFrom={timestamp}
&lastOperationTimeTo={timestamp}
&fetchState=[true|false]
&top={integer}
Begärandeparametrar för det här API:et inkluderar standarduppsättningen som nämnts tidigare samt följande unika parametrar:
Fält | Parametertyp | beskrivning |
---|---|---|
entityName |
Webbadress | Valfritt. När det anges filtreras listan över returnerade entiteter efter deras entitetsnamn (skiftlägesokänslig). |
fetchState |
Frågesträng | Valfri parameter. Om värdet anges till true inkluderas entitetstillståndet i svarsnyttolasten. |
lastOperationTimeFrom |
Frågesträng | Valfri parameter. När du anger det filtrerar du listan över returnerade entiteter som bearbetade åtgärder efter den angivna ISO8601 tidsstämpeln. |
lastOperationTimeTo |
Frågesträng | Valfri parameter. När du anger det filtrerar du listan över returnerade entiteter som bearbetade åtgärder före den angivna ISO8601 tidsstämpeln. |
top |
Frågesträng | Valfri parameter. När det anges begränsar du antalet entiteter som returneras av frågan. |
Response
Ett lyckat HTTP 200-svar innehåller en JSON-serialiserad matris med entiteter och eventuellt tillståndet för varje entitet.
Som standard returnerar åtgärden de första 100 entiteterna som matchar frågevillkoren. Anroparen kan ange ett frågesträngsparametervärde för för top
att returnera ett annat maximalt antal resultat. Om det finns fler resultat än vad som returneras returneras även en fortsättningstoken i svarshuvudet. Namnet på rubriken är x-ms-continuation-token
.
Om du anger värdet för fortsättningstoken i nästa begärandehuvud kan du få nästa resultatsida. Det här namnet på begärandehuvudet är också x-ms-continuation-token
.
Exempel – visa en lista över alla entiteter
I följande exempel på HTTP-begäran visas alla entiteter i aktivitetshubben:
GET /runtime/webhooks/durabletask/entities
JSON-svaret kan se ut så här (formaterat för läsbarhet):
[
{
"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"
},
]
Exempel – filtrera listan över entiteter
I följande exempel visar HTTP-begäran bara de två första entiteterna av typen counter
och hämtar även deras tillstånd:
GET /runtime/webhooks/durabletask/entities/counter?top=2&fetchState=true
JSON-svaret kan se ut så här (formaterat för läsbarhet):
[
{
"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 }
}
]