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-task-scheduler/durable-task-scheduler-large-payloads.md
+89Lines changed: 89 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,9 @@ description: Learn how to use large payload support in Durable Functions and the
4
4
ms.topic: conceptual
5
5
ms.date: 03/14/2026
6
6
ms.author: torosent
7
+
ms.service: azure-functions
7
8
ms.subservice: durable-task-scheduler
9
+
ms.devlang: csharp
8
10
zone_pivot_groups: azure-durable-approach
9
11
---
10
12
@@ -39,6 +41,8 @@ When you enable large payload support, the runtime follows the same high level f
39
41
1. It sends a blob reference through Durable Task Scheduler instead of the full payload.
40
42
1. The runtime automatically resolves the reference before your orchestrator or activity code reads the value.
41
43
44
+
The current .NET samples use deterministic, low-compressibility 1.5 MiB payloads. That keeps the stored blob size representative, even though the runtime writes blobs with gzip content encoding.
45
+
42
46
Large payload support changes how payloads move through the runtime. It doesn't change the recommendation to keep durable state as small as practical.
43
47
44
48
## Choose the right pattern
@@ -168,6 +172,10 @@ For an end-to-end .NET example, see the [Durable Task SDK large payload sample](
168
172
169
173
Large payload support with Durable Task Scheduler is available only for the .NET Durable Task SDK.
170
174
175
+
# [PowerShell](#tab/powershell)
176
+
177
+
Large payload support with Durable Task Scheduler is available only for the .NET Durable Task SDK.
178
+
171
179
# [Python](#tab/python)
172
180
173
181
Large payload support with Durable Task Scheduler is available only for the .NET Durable Task SDK.
@@ -180,6 +188,85 @@ Large payload support with Durable Task Scheduler is available only for the .NET
180
188
181
189
::: zone-end
182
190
191
+
## Environment variable configuration
192
+
193
+
::: zone pivot="durable-functions"
194
+
195
+
Use these local settings or app settings with the current Durable Functions samples.
|`PAYLOAD_STORAGE_MANAGED_IDENTITY_CLIENT_ID`| Optional user-assigned managed identity client ID for storage access | unset |
245
+
|`AZURE_CLIENT_ID`| Alternate way to select a user-assigned managed identity | unset |
246
+
|`ASPNETCORE_URLS`| Listen URLs for the sample's HTTP host | framework default |
247
+
248
+
If `PAYLOAD_STORAGE_CONNECTION_STRING` isn't set and `PAYLOAD_STORAGE_ACCOUNT_URI` is provided, the sample uses `DefaultAzureCredential`. If you need a specific user-assigned identity, set `PAYLOAD_STORAGE_MANAGED_IDENTITY_CLIENT_ID` or `AZURE_CLIENT_ID`.
249
+
250
+
# [JavaScript](#tab/javascript)
251
+
252
+
This sample is shown for .NET, Java, and Python.
253
+
254
+
# [PowerShell](#tab/powershell)
255
+
256
+
This sample is shown for .NET, Java, and Python.
257
+
258
+
# [Python](#tab/python)
259
+
260
+
This sample is shown for .NET, Java, and Python.
261
+
262
+
# [Java](#tab/java)
263
+
264
+
This sample is shown for .NET, Java, and Python.
265
+
266
+
---
267
+
268
+
::: zone-end
269
+
183
270
## Azure permissions
184
271
185
272
When you use Azure resources instead of local emulators, the app identity needs access to Durable Task Scheduler and Blob Storage:
@@ -210,6 +297,8 @@ The sample apps also validate the round trip:
210
297
- The Durable Functions samples return a small summary object that confirms the input and output sizes.
211
298
- The .NET Durable Task SDK sample prints whether the run creates new payload blobs.
212
299
300
+
Because the runtime stores externalized payloads with gzip content encoding, Azure reports the compressed on-disk blob size. With the current low-compressibility sample payloads, those blob sizes should stay reasonably close to the logical payload size.
0 commit comments