このリファレンスでは、インプロセス (2.x) SDK と分離 worker SDK for Durable Functionsの包括的なマッピングを提供します。 コードを更新するときは、 移行ガイド と共にこのページを使用します。
クライアント API
| インプロセス中 (2.x) | アイソレートワーカー |
|---|---|
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 または PurgeAllInstancesAsync |
IDurableOrchestrationClient.CreateCheckStatusResponse |
DurableTaskClient.CreateCheckStatusResponseAsync (拡張メソッド、 HttpRequestDataを受け取ります) |
IDurableOrchestrationClient.WaitForCompletionOrCreateCheckStatusResponseAsync |
DurableTaskClient.WaitForCompletionOrCreateCheckStatusResponseAsync(拡張メソッド、timeoutCancellationTokenに置き換えられます) |
IDurableOrchestrationClient.CreateHttpManagementPayload |
DurableTaskClient.CreateHttpManagementPayload (拡張メソッド) |
DurableOrchestrationStatus |
OrchestrationMetadata |
DurableOrchestrationStatus.History |
状態オブジェクトから削除されました。
DurableTaskClient.GetOrchestrationHistoryAsync を代わりに使用します。 |
PurgeHistoryResult |
PurgeResult |
OrchestrationStatusQueryCondition |
OrchestrationQuery |
OrchestrationStatusQueryResult |
AsyncPageable<OrchestrationMetadata> |
クライアント API を削除しました
次のインプロセス API には、分離された worker SDK には同等のものがありません。
| 削除された API | Workaround |
|---|---|
IDurableOrchestrationClient.MakeCurrentAppPrimaryAsync |
同等の値はありません |
IDurableOrchestrationClient.GetStatusAsync(IEnumerable<string>) |
ループまたはクエリ フィルターでGetAllInstancesAsyncでGetInstanceAsyncを使用する |
IDurableOrchestrationClient.PurgeInstanceHistoryAsync(IEnumerable<string>) |
ループで PurgeInstanceAsync を使用するか、フィルターを使用して PurgeAllInstancesAsync する |
タスク ハブ間のオーバーロード (RaiseEventAsync、SignalEntityAsync、taskHubName/connectionNameを使用したReadEntityStateAsync) |
同じタスク ハブ操作のみがサポートされます |
エンティティ クライアント API
| インプロセス中 (2.x) | アイソレートワーカー |
|---|---|
IDurableEntityClient.SignalEntityAsync |
DurableTaskClient.Entities.SignalEntityAsync |
IDurableEntityClient.ReadEntityStateAsync |
DurableTaskClient.Entities.GetEntityAsync |
IDurableEntityClient.ListEntitiesAsync |
DurableTaskClient.Entities.GetAllEntitiesAsync |
IDurableEntityClient.CleanEntityStorageAsync |
DurableTaskClient.Entities.CleanEntityStorageAsync (bool パラメーターの代わりにオブジェクト CleanEntityStorageRequest 受け取ります) |
オーケストレーション コンテキスト API
| インプロセス中 (2.x) | アイソレートワーカー |
|---|---|
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>() またはパラメーターとして入力を挿入します。 MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input) |
IDurableOrchestrationContext.SetOutput |
削除。 オーケストレーター関数の戻り値を使用します。 |
IDurableOrchestrationContext.CallActivityAsync |
TaskOrchestrationContext.CallActivityAsync |
IDurableOrchestrationContext.CallActivityWithRetryAsync |
TaskOrchestrationContext.CallActivityAsync 再試行の詳細の TaskOptions パラメーター |
IDurableOrchestrationContext.CallSubOrchestratorAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync |
IDurableOrchestrationContext.CallSubOrchestratorWithRetryAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync 再試行の詳細の TaskOptions パラメーター |
IDurableOrchestrationContext.ContinueAsNew |
TaskOrchestrationContext.ContinueAsNew (既定の違いについては 、動作の変更 を参照してください) |
IDurableOrchestrationContext.CallHttpAsync |
TaskOrchestrationContext.CallHttpAsync |
IDurableOrchestrationContext.CreateTimer<T>(DateTime, T, CancellationToken) |
TaskOrchestrationContext.CreateTimer(DateTime, CancellationToken)。 State パラメーターが削除されました。 |
IDurableOrchestrationContext.WaitForExternalEvent(string) (非ジェネリック) |
削除。
WaitForExternalEvent<T>(string, CancellationToken) を使用してください。 |
IDurableOrchestrationContext.WaitForExternalEvent<T>(string, TimeSpan, T) ( defaultValueあり) |
削除。
WaitForExternalEvent<T>(string, TimeSpan, CancellationToken)をタイムアウト時にスローするTaskCanceledExceptionを使用します。 |
IDurableOrchestrationContext.ParentInstanceId |
TaskOrchestrationContext.Parent.InstanceId |
IDurableOrchestrationContext.CreateReplaySafeLogger(ILogger) |
TaskOrchestrationContext.CreateReplaySafeLogger<T>() または TaskOrchestrationContext.CreateReplaySafeLogger(string) |
IDurableOrchestrationContext.CreateEntityProxy<T> |
削除。
Entities.CallEntityAsyncまたはEntities.SignalEntityAsyncを直接使用します。 |
IDurableOrchestrationContext.CallEntityAsync |
TaskOrchestrationContext.Entities.CallEntityAsync |
IDurableOrchestrationContext.SignalEntity |
TaskOrchestrationContext.Entities.SignalEntityAsync |
IDurableOrchestrationContext.LockAsync |
TaskOrchestrationContext.Entities.LockEntitiesAsync |
IDurableOrchestrationContext.IsLocked |
TaskOrchestrationContext.Entities.InCriticalSection() |
RetryOptions |
TaskOptions と TaskRetryOptions |
DurableActivityContext |
同等の値はありません |
DurableActivityContext.GetInput<T>() |
パラメーターとして入力を挿入します。 MyActivity([ActivityTrigger] T input) |
DurableHttpRequest (WebJobs 名前空間) |
DurableHttpRequest (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http 名前空間) |
DurableHttpResponse (WebJobs 名前空間) |
DurableHttpResponse (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http 名前空間) |
エンティティAPI群
| インプロセス中 (2.x) | アイソレートワーカー |
|---|---|
IDurableEntityContext |
TaskEntityContext |
IDurableEntityContext.EntityName |
TaskEntityContext.Id.Name |
IDurableEntityContext.EntityKey |
TaskEntityContext.Id.Key |
IDurableEntityContext.OperationName |
TaskEntityOperation.Name |
IDurableEntityContext.FunctionBindingContext |
削除。 入力パラメーターとして FunctionContext を追加します。 |
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 |
削除。 代わりにメソッドの戻り値を使用してください。 |
IDurableEntityContext.SignalEntity |
TaskEntityContext.SignalEntity。 スケジュールされたシグナルでは、SignalEntityOptions.SignalTime パラメーターオーバーロードの代わりにDateTimeが使用されます。 |
IDurableEntityContext.StartNewOrchestration |
TaskEntityContext.ScheduleNewOrchestration。 インスタンス ID は、文字列パラメーターではなく StartOrchestrationOptions.InstanceId を使用して設定されます。 |
IDurableEntityContext.DispatchAsync |
TaskEntityDispatcher.DispatchAsync。 コンストラクターのパラメーターが削除されました。代わりに標準 DI を使用してください。 |
IDurableEntityContext.BatchSize |
削除済み |
IDurableEntityContext.BatchPosition |
削除済み |
動作の変更
移行したアプリをテストする前に、これらの破壊的動作の変更を確認してください。
シリアル化の既定の変更
既定のシリアライザーが Newtonsoft.Json から System.Text.Json に変更されました。 構成オプションについては、
警告
ContinueAsNew の既定の変更: preserveUnprocessedEvents パラメーターの既定値が false (2.x) から true (分離) に変更されました。 オーケストレーションで ContinueAsNew を使用し、破棄される未処理のイベントに依存している場合は、 preserveUnprocessedEvents: falseを明示的に渡します。
Note
RestartAsync の既定の変更: restartWithNewInstanceId パラメーターの既定値が true (2.x) から false (分離) に変更されました。 コードが RestartAsync を呼び出し、生成される新しいインスタンス ID に依存している場合は、 restartWithNewInstanceId: trueを明示的に渡します。
その他の動作の変更
-
エンティティ プロキシの削除: 分離されたワーカーでは、
CreateEntityProxy<T>および型指定されたSignalEntityAsync<TEntityInterface>(Action<T>)デリゲート オーバーロードは使用できません。 型指定されたプロキシ インターフェイスを使用する代わりに、文字列ベースの操作名を使用してEntities.CallEntityAsyncまたはEntities.SignalEntityAsyncを直接呼び出します。 -
WaitForCompletionOrCreateCheckStatusResponseAsync:
timeoutパラメーターが削除されました。 代わりに、取り消しタイムアウトのCancellationTokenを使用してください。 -
タスク ハブ間の操作が削除されました:
taskHubNameパラメーターとconnectionNameパラメーターを受け入れたインプロセス オーバーロードは、分離された worker では使用できません。 同じタスク ハブ操作のみがサポートされます。 -
ID によるバッチ操作が削除されました:インプロセス
GetStatusAsync(IEnumerable<string>)およびPurgeInstanceHistoryAsync(IEnumerable<string>)オーバーロードは使用できません。GetAllInstancesAsyncフィルターを使用するか、OrchestrationQueryGetInstanceAsync/を個別に呼び出します。 -
移動されたオーケストレーション履歴:
DurableOrchestrationStatus.History(埋め込みJArray) は、状態オブジェクトの一部ではなくなりました。 個別のDurableTaskClient.GetOrchestrationHistoryAsyncAPI を使用します。 -
Entity DispatchAsync コンストラクターのパラメーターが削除されました。エンティティ クラスは、標準の依存関係の挿入によってアクティブ化されます。 エンティティの依存関係を
Program.csに登録します。 -
エンティティ クエリ フィルターの変更:
EntityQuery.EntityNameはEntityQuery.InstanceIdStartsWithに置き換えられ、EntityQuery.IncludeDeletedはEntityQuery.IncludeTransientに置き換えられます。 -
CleanEntityStorageAsync シグネチャの変更: ブール パラメーターではなく、
RemoveEmptyEntitiesプロパティとReleaseOrphanedLocksプロパティを持つCleanEntityStorageRequestオブジェクトを受け取ります。 -
分離ワーカーの新しい API:
DurableTaskClient.GetOrchestrationHistoryAsyncとTaskOrchestrationContext.GetFunctionContext()拡張メソッドには、インプロセスと同等の機能はありません。