You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/azure-functions/durable/durable-functions-storage-providers.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ ms.author: azfuncdf
10
10
11
11
# Durable Functions storage providers
12
12
13
-
Durable Functions is a set of Azure Functions triggers and bindings that are internally powered by the [Durable Task Framework](https://github.com/Azure/durabletask) (DTFx). DTFx supports various backend storage providers, including the Azure Storage provider used by Durable Functions. Starting in Durable Functions **v2.5.0**, users can configure their function apps to use DTFx storage providers other than the Azure Storage provider.
13
+
Durable Functions is a set of Azure Functions triggers and bindings that are internally powered by the [Durable Task Framework](https://github.com/Azure/durabletask) (DTFx). DTFx supports various backend storage providers, including the Azure Storage provider used by Durable Functions. As of Durable Functions **v2.5.0**, users can configure their function apps to use DTFx storage providers other than the Azure Storage provider.
14
14
15
15
> [!NOTE]
16
16
> The default Azure Storage provider for Durable Functions is the easiest to use since it requires no extra configuration. However, there are cost, scalability, and data management tradeoffs that may favor the use of an alternate backend provider.
@@ -22,11 +22,11 @@ Durable Functions supports two types of backend providers: "Bring your own (BYO)
The durable task scheduler is a fuly managed, high performance backend provider for Durable Functions. It was designed and built from scratch with help from Microsoft Research. This new provider aims to provide the best user experience in aspects such as management, observability, performance, and security.
25
+
The durable task scheduler is a fully managed, high performance backend provider for Durable Functions. It was designed and built from scratch with help from Microsoft Research. This new provider aims to provide the best user experience in aspects such as management, observability, performance, and security.
26
26
27
27
The key benefits of the durable task scheduler include:
28
28
29
-
*Significantly lower management and operation overhead compared to BYO backend providers
29
+
*Lower management and operation overhead compared to BYO backend providers
30
30
* First-class observability and management [dashboard](./durable-task-scheduler/durable-task-scheduler-dashboard.md) provided out-of-the-box.
31
31
* Supports the highest throughput of all backends today.
32
32
* Support for authentication using managed identity.
@@ -50,15 +50,15 @@ The key benefits of the Azure Storage provider include:
50
50
The source code for the DTFx components of the Azure Storage storage provider can be found in the [Azure/durabletask](https://github.com/Azure/durabletask/tree/main/src/DurableTask.AzureStorage) GitHub repo.
51
51
52
52
> [!NOTE]
53
-
> Standard general purpose Azure Storage accounts are required when using the Azure Storage provider. All other storage account types are not supported. We highly recommend using legacy v1 general purpose storage accounts because the newer v2 storage accounts can be significantly more expensive for Durable Functions workloads. For more information on Azure Storage account types, see the [Storage account overview](../../storage/common/storage-account-overview.md) documentation.
53
+
> Standard general purpose Azure Storage accounts are required when using the Azure Storage provider. All other storage account types are not supported. We highly recommend using legacy v1 general purpose storage accounts because the newer v2 storage accounts can be more expensive for Durable Functions workloads. For more information on Azure Storage account types, see the [Storage account overview](../../storage/common/storage-account-overview.md) documentation.
54
54
55
55
## <aname="netherite"></a>Netherite
56
56
57
-
The Netherite storage backend was designed and developed by [Microsoft Research](https://www.microsoft.com/research). It uses [Azure Event Hubs](../../event-hubs/event-hubs-about.md) and the [FASTER](https://www.microsoft.com/research/project/faster/) database technology on top of [Azure Page Blobs](../../storage/blobs/storage-blob-pageblob-overview.md). The design of Netherite enables significantly higher-throughput processing of orchestrations and entities compared to other providers. In some benchmark scenarios, throughput was shown to increase by more than an order of magnitude when compared to the default Azure Storage provider.
57
+
The Netherite storage backend was designed and developed by [Microsoft Research](https://www.microsoft.com/research). It uses [Azure Event Hubs](../../event-hubs/event-hubs-about.md) and the [FASTER](https://www.microsoft.com/research/project/faster/) database technology on top of [Azure Page Blobs](../../storage/blobs/storage-blob-pageblob-overview.md). The design of Netherite enables higher-throughput processing of orchestrations and entities compared to other providers. In some benchmark scenarios, throughput was shown to increase by more than an order of magnitude when compared to the default Azure Storage provider.
58
58
59
59
The key benefits of the Netherite storage provider include:
60
60
61
-
*Significantly higher throughput at lower cost compared to other storage providers.
61
+
*Higher throughput at lower cost compared to other storage providers.
62
62
* Supports price-performance optimization, allowing you to scale-up performance as-needed.
63
63
* Supports up to 32 data partitions with Event Hubs Basic and Standard SKUs.
64
64
* More cost-effective than other providers for high-throughput workloads.
Copy file name to clipboardExpand all lines: articles/azure-functions/durable/durable-task-scheduler/develop-with-durable-task-scheduler.md
+14-12Lines changed: 14 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,15 +3,15 @@ title: Develop with the Azure Functions durable task scheduler (preview)
3
3
description: Learn how to develop with the Azure Functions durable task scheduler and task hub resources
4
4
author: lilyjma
5
5
ms.topic: how-to
6
-
ms.date: 03/17/2025
6
+
ms.date: 03/19/2025
7
7
ms.author: jiayma
8
8
ms.reviewer: azfuncdf
9
9
zone_pivot_groups: dts-devexp
10
10
---
11
11
12
12
# Develop with the Azure Functions durable task scheduler (preview)
13
13
14
-
The Azure Functions durable task scheduler is a highly performant, fully-managed backend provider for durable functions with an [out-of-the-box monitoring dashboard](./durable-task-scheduler-dashboard.md). In this article, you'll learn how to:
14
+
The Azure Functions durable task scheduler is a highly performant, fullymanaged backend provider for durable functions with an [out-of-the-box monitoring dashboard](./durable-task-scheduler-dashboard.md). In this article, you learn how to:
15
15
16
16
> [!div class="checklist"]
17
17
> * Create a scheduler and task hub.
@@ -28,7 +28,7 @@ Learn more about durable task scheduler [features](./durable-task-scheduler.md#f
28
28
29
29
## Set up the CLI
30
30
31
-
1.Login to the Azure CLI and make sure you have the latest installed.
31
+
1.Log in to the Azure CLI and make sure you have the latest installed.
32
32
33
33
```azurecli
34
34
az login
@@ -41,7 +41,7 @@ Learn more about durable task scheduler [features](./durable-task-scheduler.md#f
41
41
az extension add --name durabletask
42
42
```
43
43
44
-
1. If you've already installed the durable task scheduler CLI extension, upgrade to the latest version.
44
+
1. If you already installed the durable task scheduler CLI extension, upgrade to the latest version.
45
45
46
46
```azurecli
47
47
az extension add --upgrade --name durabletask
@@ -62,7 +62,7 @@ Learn more about durable task scheduler [features](./durable-task-scheduler.md#f
62
62
docker run -itP mcr.microsoft.com/dts/dts-emulator:v0.0.5
63
63
```
64
64
65
-
The command above exposes a single task hub named `default`. If you need more than one task hub, you can set the environment variable `DTS_TASK_HUB_NAMES` on the container to a comma-delimited list of task hub names like below:
65
+
This command exposes a single task hub named `default`. If you need more than one task hub, you can set the environment variable `DTS_TASK_HUB_NAMES` on the container to a comma-delimited list of task hub names like in the following command:
66
66
67
67
```bash
68
68
docker run -itP -e DTS_TASK_HUB_NAMES=taskhub1,taskhub2,taskhub3 mcr.microsoft.com/dts/dts-emulator:v0.0.5
@@ -194,7 +194,7 @@ You can create a scheduler and a task hub as part of the Function app creation o
194
194
az durabletask scheduler list --subscription <SUBSCRIPTION_ID>
195
195
```
196
196
197
-
1. You can narrow results down to a specific resource group by adding the `--resource-group` flag.
197
+
1. You can narrow down results to a specific resource group by adding the `--resource-group` flag.
198
198
199
199
```azurecli
200
200
az durabletask scheduler list --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP_NAME>
@@ -264,18 +264,18 @@ You can see all the task hubs created in a scheduler on the **Overview** of the
264
264
265
265
## Configure identity-based authentication for app to access durable task scheduler
266
266
267
-
Durable task scheduler **only** supports either *user-assigned* or *system-assigned* managed identity authentication. **User-assigned identities are recommended,** as they aren't tied to the lifecycle of the app and can be reused after the app is de-provisioned.
267
+
Durable task scheduler **only** supports either *user-assigned* or *system-assigned* managed identity authentication. **User-assigned identities are recommended,** as they aren't tied to the lifecycle of the app and can be reused after the app is deprovisioned.
268
268
269
269
The following are the durable task scheduler related roles you can grant to an identity:
270
270
271
271
- **Durable Task Data Contributor**: Role for all data access operations. This role is a superset of all other roles.
272
272
- **Durable Task Worker**: Role used by worker applications to interact with the durable task scheduler. Assign this role if your app is used *only* for processing orchestrations, activities, and entities.
273
-
- **Durable Task Data Reader**: Role to read all durable task scheduler data. Assign this role if you only need listing of orchestrations and entities payloads.
273
+
- **Durable Task Data Reader**: Role to read all durable task scheduler data. Assign this role if you only need a list of orchestrations and entities payloads.
274
274
275
275
> [!NOTE]
276
276
> Most durable functions apps would require the Durable Task Data Contributor role.
277
277
278
-
The sections below demonstrate how to grant permissions to an identity resource and configure your durable functions app to use the identity for access to schedulers and task hubs.
278
+
The following sections demonstrate how to grant permissions to an identity resource and configure your durable functions app to use the identity for access to schedulers and task hubs.
279
279
280
280
### Assign RBAC (role-based access control) to managed identity resource
281
281
@@ -384,7 +384,7 @@ Now that the identity has the required RBAC to access durable task scheduler, yo
384
384
385
385
Add these two environment variables to app setting:
386
386
- `TASKHUB_NAME`: name of task hub
387
-
- `DURABLE_TASK_SCHEDULER_CONNECTION_STRING`: the format of the string is `"Endpoint={scheduler point};Authentication=ManagedIdentity;ClientID={client id}"`, where *endpoint* is the scheduler endpoint and *client id* is the identity's client ID.
387
+
- `DURABLE_TASK_SCHEDULER_CONNECTION_STRING`: the format of the string is `"Endpoint={scheduler point};Authentication=ManagedIdentity;ClientID={client id}"`, where `Endpoint` is the scheduler endpoint and `client id` is the identity's client ID.
388
388
389
389
::: zone pivot="az-cli"
390
390
@@ -395,7 +395,7 @@ Add these two environment variables to app setting:
395
395
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name DTS_NAME --query 'properties.endpoint' --output tsv
396
396
```
397
397
398
-
To get client id of managed identity.
398
+
To get the client ID of managed identity.
399
399
```azurecli
400
400
az identity show --name MANAGED_IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv
401
401
```
@@ -434,7 +434,7 @@ Add these two environment variables to app setting:
434
434
435
435
## Accessing durable task scheduler dashboard
436
436
437
-
First, follow instructions below to gain access to the [durable task scheduler dashboard](./durable-task-scheduler-dashboard.md) by assigning the required role to your *developer identity (email)*. After granting access, go to `https://dashboard.durabletask.io/` and fill out the required information about your scheduler and task hub to see the dashboard.
437
+
Assign the required role to your *developer identity (email)* to gain access to the [durable task scheduler dashboard](./durable-task-scheduler-dashboard.md).
438
438
439
439
::: zone pivot="az-cli"
440
440
@@ -493,6 +493,8 @@ First, follow instructions below to gain access to the [durable task scheduler d
493
493
}
494
494
```
495
495
496
+
1. After granting access, go to `https://dashboard.durabletask.io/` and fill out the required information about your scheduler and task hub to see the dashboard.
Copy file name to clipboardExpand all lines: articles/azure-functions/durable/durable-task-scheduler/durable-task-scheduler-dashboard.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,11 +7,11 @@ ms.date: 03/17/2025
7
7
8
8
# Debug and manage orchestrations using the Azure Functions durable task scheduler dashboard (preview)
9
9
10
-
Observe, manage, and debug your task hub or scheduler's orchestations effectively using the durable task scheduler dashboard. The dashboard is available when you run the [durable task scheduler emulator](./durable-task-scheduler.md#emulator-for-local-development) locally or create a scheduler resource on Azure.
10
+
Observe, manage, and debug your task hub or scheduler's orchestrations effectively using the durable task scheduler dashboard. The dashboard is available when you run the [durable task scheduler emulator](./durable-task-scheduler.md#emulator-for-local-development) locally or create a scheduler resource on Azure.
-**Creating a scheduler resource on Azure** requires that you [assign the *Durable Task Data Contributor* role to your identity](./develop-with-durable-task-scheduler.md#accessing-durable-task-scheduler-dashboard). You can then access the dashboard via either:
13
13
- The task hub's dashboard endpoint URL in the Azure portal
14
-
- Navigate to `https://dashboard.durabletask.io/`and your task hub endpoint to connect to it.
14
+
- Navigate to `https://dashboard.durabletask.io/`combined with your task hub endpoint.
15
15
16
16
## Monitor orchestration progress and execution history
17
17
@@ -25,9 +25,9 @@ View orchestration inputs and outputs:
25
25
26
26
## Detailed view of orchestration execution
27
27
28
-
You can drill into orchestration instances to view execution details and activity progress, which can help in diagnosing problems or gaining visibility into the status of an orchestration.
28
+
You can drill into orchestration instances to view execution details and activity progress. This view helps you diagnose problems or gain visibility into the status of an orchestration.
29
29
30
-
For example, the following shows the *Timeline* view of an orchestration execution. In this "ProcessDocument" orchestration, the "WriteDoc" activity retried three times (unsuccessfully) with five seconds in between retry.
30
+
In the following image, the *Timeline* view of an orchestration execution. In this "ProcessDocument" orchestration, the "WriteDoc" activity retried three times (unsuccessfully) with five seconds in between retry.
31
31
32
32
:::image type="content" source="media/durable-task-scheduler-dashboard/orchestration-timeline.png" alt-text="Screenshot of the dashboard showing the orchestration execution timeline.":::
description: Learn about the characteristics of the Azure Functions durable task scheduler backend.
4
4
ms.topic: conceptual
5
-
ms.date: 03/17/2025
5
+
ms.date: 03/19/2025
6
6
ms.author: azfuncdf
7
7
author: hhunter-ms
8
8
ms.subservice: durable
@@ -32,9 +32,9 @@ The following diagram shows the architecture of the durable task scheduler backe
32
32
33
33
The durable task scheduler runs in Azure as a separate resource from the app. This separation allows the scheduler to scale independently of the app and provides better isolation between the two components. This isolation is important for several reasons:
34
34
35
-
-**Reduced resource consumption:** BYO storage providers can consume a significant amount of CPU and memory resources. This resource consumption is due to the overhead of managing partitions and other complex state store interactions. By using a managed scheduler instead of a BYO storage provider, your app instances can run more efficiently and with less resource contention.
35
+
-**Reduced resource consumption:** BYO storage providers can consume a significant amount of CPU and memory resources. This resource consumption is due to the overhead of managing partitions and other complex state store interactions. Using a managed scheduler instead of a BYO storage provider allows your app instances to run more efficiently and with less resource contention.
36
36
37
-
-**Fault isolation:** Stability or availability issues in the durable task scheduler will not affect the stability or availability of your connected apps. With BYO storage providers, instability in the backend provider (which is a complex component) can create instability in the app logic. By separating the scheduler from the app, you can reduce the risk of cascading failures and improve overall reliability.
37
+
-**Fault isolation:** Stability or availability issues in the durable task scheduler won't affect the stability or availability of your connected apps. With BYO storage providers, instability in the backend provider (which is a complex component) can create instability in the app logic. By separating the scheduler from the app, you can reduce the risk of cascading failures and improve overall reliability.
38
38
39
39
-**Independent scaling:** The scheduler resource can be scaled independently of the app, allowing for better infrastructure resource management and cost optimization. For example, multiple apps can share the same scheduler resource, improving overall resource utilization. This capability is especially useful for organizations with multiple teams or projects that require durable functions.
40
40
@@ -44,7 +44,7 @@ The durable task scheduler runs in Azure as a separate resource from the app. Th
44
44
45
45
Your durable function apps connect to the scheduler resource via a gRPC connection. The endpoint address is in the form `{scheduler-name}.{region}.durabletask.io`. For example, `myscheduler-123.westus2.durabletask.io`. The connection is secured using TLS and the app's identity is used to authenticate the connection.
46
46
47
-
Work items are streamed from the scheduler to the app using a push model, removing the need for polling and improving end-to-end latency. Your apps can process multiple work items in parallel and will send responses back to the scheduler when the corresponding orchestration, activity, or entity task is complete.
47
+
Work items are streamed from the scheduler to the app using a push model, removing the need for polling and improving end-to-end latency. Your apps can process multiple work items in parallel and send responses back to the scheduler when the corresponding orchestration, activity, or entity task is complete.
48
48
49
49
### State management
50
50
@@ -133,7 +133,7 @@ This benchmark showed that the durable task scheduler is roughly **five times fa
133
133
134
134
- **Scheduler quota:** You can currently create up to **five schedulers per region** per subscription.
135
135
136
-
- **Max payload size:** The durable task scheduler has a maximum payload size restrictionsfor the following JSON-serialized data types:
136
+
- **Max payload size:** The durable task scheduler has a maximum payload size restrictionfor the following JSON-serialized data types:
Copy file name to clipboardExpand all lines: articles/azure-functions/durable/durable-task-scheduler/includes/assign-dev-identity-rbac-portal.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,5 +36,6 @@ author: lilyjma
36
36
37
37
1. Click **Review + assign** to finish assigning the role.
38
38
39
+
1. Once the role is assigned, click **Overview** on the left menu of the task hub resource and navigate to the dashboard URL located at the top *Essentials* section.
Copy file name to clipboardExpand all lines: articles/azure-functions/durable/durable-task-scheduler/includes/assign-rbac-portal.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ ms.date: 03/17/2025
27
27
28
28
1. For **Members**, click **+ Select members**.
29
29
30
-
1. In the **Select managed identities** pane, expand the **Managed identity** dropdown and select **User-assigned managed identity**.
30
+
1. In the **Select managed identities** pane, expand the **Managed identity** drop-down and select **User-assigned managed identity**.
31
31
32
32
:::image type="content" source="../media/configure-durable-task-scheduler/members-tab.png" alt-text="Screenshot of selecting the user-assigned managed identity type you're going to use in the portal.":::
0 commit comments