Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze verwijzing biedt een uitgebreide toewijzing tussen de in-process SDK (2.x) en de geïsoleerde worker SDK voor Durable Functions. Gebruik deze pagina naast de migratiehandleiding bij het bijwerken van uw code.
Client-APIs
| In-proces (2.x) | Geïsoleerde werkrol |
|---|---|
IDurableOrchestrationClient |
DurableTaskClient |
IDurableOrchestrationClient.StartNewAsync |
DurableTaskClient.ScheduleNewOrchestrationInstanceAsync |
IDurableOrchestrationClient.GetStatusAsync |
DurableTaskClient.GetInstanceAsync |
IDurableOrchestrationClient.ListInstancesAsync |
DurableTaskClient.GetAllInstancesAsync |
IDurableOrchestrationClient.TerminateAsync |
DurableTaskClient.TerminateInstanceAsync |
IDurableOrchestrationClient.SuspendAsync |
DurableTaskClient.SuspendInstanceAsync |
IDurableOrchestrationClient.ResumeAsync |
DurableTaskClient.ResumeInstanceAsync |
IDurableOrchestrationClient.RaiseEventAsync |
DurableTaskClient.RaiseEventAsync |
IDurableOrchestrationClient.RewindAsync |
DurableTaskClient.RewindInstanceAsync |
IDurableOrchestrationClient.RestartAsync |
DurableTaskClient.RestartAsync |
IDurableOrchestrationClient.PurgeInstanceHistoryAsync |
DurableTaskClient.PurgeInstanceAsync of PurgeAllInstancesAsync |
IDurableOrchestrationClient.CreateCheckStatusResponse |
DurableTaskClient.CreateCheckStatusResponseAsync (extensiemethode, neemt HttpRequestData) |
IDurableOrchestrationClient.WaitForCompletionOrCreateCheckStatusResponseAsync |
DurableTaskClient.WaitForCompletionOrCreateCheckStatusResponseAsync (extensiemethode, timeout vervangen door CancellationToken) |
IDurableOrchestrationClient.CreateHttpManagementPayload |
DurableTaskClient.CreateHttpManagementPayload (extensiemethode) |
DurableOrchestrationStatus |
OrchestrationMetadata |
DurableOrchestrationStatus.History |
Verwijderd uit statusobject. Gebruik in plaats daarvan DurableTaskClient.GetOrchestrationHistoryAsync. |
PurgeHistoryResult |
PurgeResult |
OrchestrationStatusQueryCondition |
OrchestrationQuery |
OrchestrationStatusQueryResult |
AsyncPageable<OrchestrationMetadata> |
Client-API's verwijderd
De volgende in-process API's hebben geen equivalenten in de geïsoleerde worker SDK:
| Verwijderde API | Workaround |
|---|---|
IDurableOrchestrationClient.MakeCurrentAppPrimaryAsync |
Geen equivalent |
IDurableOrchestrationClient.GetStatusAsync(IEnumerable<string>) |
Gebruiken GetInstanceAsync in een lus of GetAllInstancesAsync met een queryfilter |
IDurableOrchestrationClient.PurgeInstanceHistoryAsync(IEnumerable<string>) |
Gebruiken PurgeInstanceAsync in een lus of PurgeAllInstancesAsync met een filter |
Overbelasting van meerdere takenhubs (RaiseEventAsync, SignalEntityAsyncReadEntityStateAsync metconnectionNametaskHubName/ ) |
Alleen bewerkingen met dezelfde taakhub worden ondersteund |
Api's voor entiteitsclient
| In-proces (2.x) | Geïsoleerde werkrol |
|---|---|
IDurableEntityClient.SignalEntityAsync |
DurableTaskClient.Entities.SignalEntityAsync |
IDurableEntityClient.ReadEntityStateAsync |
DurableTaskClient.Entities.GetEntityAsync |
IDurableEntityClient.ListEntitiesAsync |
DurableTaskClient.Entities.GetAllEntitiesAsync |
IDurableEntityClient.CleanEntityStorageAsync |
DurableTaskClient.Entities.CleanEntityStorageAsync (gebruikt CleanEntityStorageRequest object in plaats van boolparameters) |
Orkestratiecontext-API's
| In-proces (2.x) | Geïsoleerde werkrol |
|---|---|
IDurableOrchestrationContext |
TaskOrchestrationContext |
IDurableOrchestrationContext.InstanceId |
TaskOrchestrationContext.InstanceId |
IDurableOrchestrationContext.Name |
TaskOrchestrationContext.Name |
IDurableOrchestrationContext.CurrentUtcDateTime |
TaskOrchestrationContext.CurrentUtcDateTime |
IDurableOrchestrationContext.IsReplaying |
TaskOrchestrationContext.IsReplaying |
IDurableOrchestrationContext.NewGuid |
TaskOrchestrationContext.NewGuid |
IDurableOrchestrationContext.GetInput<T>() |
TaskOrchestrationContext.GetInput<T>() of voeg invoer toe als parameter: MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input) |
IDurableOrchestrationContext.SetOutput |
Verwijderd. Gebruik de retourwaarde van de orchestratorfunctie. |
IDurableOrchestrationContext.CallActivityAsync |
TaskOrchestrationContext.CallActivityAsync |
IDurableOrchestrationContext.CallActivityWithRetryAsync |
TaskOrchestrationContext.CallActivityAsync met een TaskOptions parameter voor details van opnieuw proberen |
IDurableOrchestrationContext.CallSubOrchestratorAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync |
IDurableOrchestrationContext.CallSubOrchestratorWithRetryAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync met een TaskOptions parameter voor details van opnieuw proberen |
IDurableOrchestrationContext.ContinueAsNew |
TaskOrchestrationContext.ContinueAsNew (zie gedragswijzigingen voor standaardverschillen ) |
IDurableOrchestrationContext.CallHttpAsync |
TaskOrchestrationContext.CallHttpAsync |
IDurableOrchestrationContext.CreateTimer<T>(DateTime, T, CancellationToken) |
TaskOrchestrationContext.CreateTimer(DateTime, CancellationToken). Statusparameter verwijderd. |
IDurableOrchestrationContext.WaitForExternalEvent(string) (niet-algemeen) |
Verwijderd. Gebruik WaitForExternalEvent<T>(string, CancellationToken). |
IDurableOrchestrationContext.WaitForExternalEvent<T>(string, TimeSpan, T) (met defaultValue) |
Verwijderd. Gebruik WaitForExternalEvent<T>(string, TimeSpan, CancellationToken), dat TaskCanceledException bij time-out opwerpt. |
IDurableOrchestrationContext.ParentInstanceId |
TaskOrchestrationContext.Parent.InstanceId |
IDurableOrchestrationContext.CreateReplaySafeLogger(ILogger) |
TaskOrchestrationContext.CreateReplaySafeLogger<T>() of TaskOrchestrationContext.CreateReplaySafeLogger(string) |
IDurableOrchestrationContext.CreateEntityProxy<T> |
Verwijderd. Gebruik Entities.CallEntityAsync of Entities.SignalEntityAsync rechtstreeks. |
IDurableOrchestrationContext.CallEntityAsync |
TaskOrchestrationContext.Entities.CallEntityAsync |
IDurableOrchestrationContext.SignalEntity |
TaskOrchestrationContext.Entities.SignalEntityAsync |
IDurableOrchestrationContext.LockAsync |
TaskOrchestrationContext.Entities.LockEntitiesAsync |
IDurableOrchestrationContext.IsLocked |
TaskOrchestrationContext.Entities.InCriticalSection() |
RetryOptions |
TaskOptions met TaskRetryOptions |
DurableActivityContext |
Geen equivalent |
DurableActivityContext.GetInput<T>() |
Invoer als parameter injecteren: MyActivity([ActivityTrigger] T input) |
DurableHttpRequest (WebJobs-naamruimte) |
DurableHttpRequest (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http naamruimte) |
DurableHttpResponse (WebJobs-naamruimte) |
DurableHttpResponse (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http naamruimte) |
Entiteits-API's
| In-proces (2.x) | Geïsoleerde werkrol |
|---|---|
IDurableEntityContext |
TaskEntityContext |
IDurableEntityContext.EntityName |
TaskEntityContext.Id.Name |
IDurableEntityContext.EntityKey |
TaskEntityContext.Id.Key |
IDurableEntityContext.OperationName |
TaskEntityOperation.Name |
IDurableEntityContext.FunctionBindingContext |
Verwijderd. Toevoegen FunctionContext als invoerparameter. |
IDurableEntityContext.HasState |
TaskEntityOperation.State.HasState |
IDurableEntityContext.GetState |
TaskEntityOperation.State.GetState |
IDurableEntityContext.SetState |
TaskEntityOperation.State.SetState |
IDurableEntityContext.DeleteState |
TaskEntityOperation.State.SetState(null) |
IDurableEntityContext.GetInput |
TaskEntityOperation.GetInput |
IDurableEntityContext.Return |
Verwijderd. Gebruik in plaats daarvan de retourwaarde van de methode. |
IDurableEntityContext.SignalEntity |
TaskEntityContext.SignalEntity. Geplande signalen gebruiken SignalEntityOptions.SignalTime in plaats van een DateTime parameteroverbelasting. |
IDurableEntityContext.StartNewOrchestration |
TaskEntityContext.ScheduleNewOrchestration. Exemplaar-id wordt ingesteld via StartOrchestrationOptions.InstanceId in plaats van een tekenreeksparameter. |
IDurableEntityContext.DispatchAsync |
TaskEntityDispatcher.DispatchAsync. Constructorparams verwijderd; gebruik in plaats daarvan standaard-DI. |
IDurableEntityContext.BatchSize |
Removed |
IDurableEntityContext.BatchPosition |
Removed |
Gedragswijzigingen
Bekijk deze belangrijke gedragswijzigingen voordat u uw gemigreerde app test.
Standaard serialisatie gewijzigd
De standaardserialisatie is gewijzigd van Newtonsoft.Json .System.Text.Json Zie Serialisatie en persistentie in Durable Functions voor configuratieopties.
Waarschuwing
ContinueAsNew-standaardwijziging: de standaardwaarde van de preserveUnprocessedEvents parameter is gewijzigd van false (2.x) in true (geïsoleerd). Als uw orkestratie gebruikmaakt van ContinueAsNew en afhankelijk is van niet-verwerkte gebeurtenissen die worden verwijderd, moet u expliciet preserveUnprocessedEvents: false doorgeven.
Note
Standaardwijziging restartAsync: de standaardwaarde van de restartWithNewInstanceId parameter is gewijzigd van true (2.x) in false (geïsoleerd). Als uw code aanroept RestartAsync en afhankelijk is van een nieuwe exemplaar-id die wordt gegenereerd, geeft u expliciet door restartWithNewInstanceId: true.
Andere gedragswijzigingen
-
Entiteitsproxyverwijdering:
CreateEntityProxy<T>en de getypteSignalEntityAsync<TEntityInterface>(Action<T>)afgevaardigde overbelastingen zijn niet beschikbaar in de geïsoleerde werker. RoepEntities.CallEntityAsyncofEntities.SignalEntityAsyncrechtstreeks met bewerkingsnamen op basis van tekenreeksen in plaats van getypte proxyinterfaces te gebruiken. -
WaitForCompletionOrCreateCheckStatusResponseAsync: De
timeoutparameter is verwijderd. Gebruik in plaats daarvan eenCancellationTokentime-out voor annulering. -
Cross-task-hub-bewerkingen verwijderd: de in-process overbelastingen die zijn geaccepteerd
taskHubNameenconnectionNameparameters zijn niet beschikbaar in geïsoleerde werkrol. Alleen bewerkingen met dezelfde taakhub worden ondersteund. -
Batchbewerkingen op id verwijderd: de in-process
GetStatusAsync(IEnumerable<string>)enPurgeInstanceHistoryAsync(IEnumerable<string>)overbelastingen zijn niet beschikbaar. GebruikGetAllInstancesAsyncmet eenOrchestrationQueryfilter of belGetInstanceAsync/PurgeInstanceAsyncafzonderlijk. -
Orkestratiegeschiedenis is verplaatst:
DurableOrchestrationStatus.History(het ingeslotenJArray) maakt niet langer deel uit van het statusobject. Gebruik de afzonderlijkeDurableTaskClient.GetOrchestrationHistoryAsyncAPI. -
Entiteit DispatchAsync constructorparameters verwijderd: Entiteitsklassen worden geactiveerd via standaardinjectie van afhankelijkheden. Registreer de afhankelijkheden van uw entiteit in
Program.cs. -
Wijzigingen in entiteitsqueryfilters:
EntityQuery.EntityNamewordt vervangen doorEntityQuery.InstanceIdStartsWithenEntityQuery.IncludeDeletedwordt vervangen doorEntityQuery.IncludeTransient. -
CleanEntityStorageAsync-handtekeningwijziging: neemt een
CleanEntityStorageRequestobject metRemoveEmptyEntitiesenReleaseOrphanedLockseigenschappen in plaats van boolparameters. -
Nieuwe API's in geïsoleerde werkrol:
DurableTaskClient.GetOrchestrationHistoryAsyncen deTaskOrchestrationContext.GetFunctionContext()extensiemethode heeft geen in-process equivalent.