Skip to content

Commit 6f474ff

Browse files
committed
Align large payload doc with updated samples
1 parent 97dfd29 commit 6f474ff

1 file changed

Lines changed: 89 additions & 0 deletions

File tree

articles/azure-functions/durable/durable-task-scheduler/durable-task-scheduler-large-payloads.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ description: Learn how to use large payload support in Durable Functions and the
44
ms.topic: conceptual
55
ms.date: 03/14/2026
66
ms.author: torosent
7+
ms.service: azure-functions
78
ms.subservice: durable-task-scheduler
9+
ms.devlang: csharp
810
zone_pivot_groups: azure-durable-approach
911
---
1012

@@ -39,6 +41,8 @@ When you enable large payload support, the runtime follows the same high level f
3941
1. It sends a blob reference through Durable Task Scheduler instead of the full payload.
4042
1. The runtime automatically resolves the reference before your orchestrator or activity code reads the value.
4143

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+
4246
Large payload support changes how payloads move through the runtime. It doesn't change the recommendation to keep durable state as small as practical.
4347

4448
## Choose the right pattern
@@ -168,6 +172,10 @@ For an end-to-end .NET example, see the [Durable Task SDK large payload sample](
168172

169173
Large payload support with Durable Task Scheduler is available only for the .NET Durable Task SDK.
170174

175+
# [PowerShell](#tab/powershell)
176+
177+
Large payload support with Durable Task Scheduler is available only for the .NET Durable Task SDK.
178+
171179
# [Python](#tab/python)
172180

173181
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
180188

181189
::: zone-end
182190

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.
196+
197+
# [C#](#tab/csharp)
198+
199+
| Setting | Description | Sample default |
200+
| --- | --- | --- |
201+
| `FUNCTIONS_WORKER_RUNTIME` | Azure Functions isolated worker runtime | `dotnet-isolated` |
202+
| `AzureWebJobsStorage` | Storage for Functions host state and payload blobs | `UseDevelopmentStorage=true` locally |
203+
| `DTS_CONNECTION_STRING` | Durable Task Scheduler connection string | `Endpoint=http://localhost:8080;Authentication=None` |
204+
| `TASKHUB_NAME` | Target task hub | `default` |
205+
| `PAYLOAD_SIZE_BYTES` | Payload size used by the starter or generated by each activity | `1572864` |
206+
| `ACTIVITY_COUNT` | Number of parallel activities in the fan-out/fan-in sample only | `3` |
207+
208+
The `ACTIVITY_COUNT` setting is used only by the `LargePayloadFanOutFanIn` sample. The `LargePayload` round-trip sample doesn't read it.
209+
210+
# [JavaScript](#tab/javascript)
211+
212+
Large payload support with Durable Task Scheduler is available only for .NET isolated C# Durable Functions apps.
213+
214+
# [Python](#tab/python)
215+
216+
Large payload support with Durable Task Scheduler is available only for .NET isolated C# Durable Functions apps.
217+
218+
# [PowerShell](#tab/powershell)
219+
220+
Large payload support with Durable Task Scheduler is available only for .NET isolated C# Durable Functions apps.
221+
222+
# [Java](#tab/java)
223+
224+
Large payload support with Durable Task Scheduler is available only for .NET isolated C# Durable Functions apps.
225+
226+
---
227+
228+
::: zone-end
229+
230+
::: zone pivot="durable-task-sdks"
231+
232+
Use these environment variables with the current .NET Durable Task SDK sample.
233+
234+
# [C#](#tab/csharp)
235+
236+
| Variable | Description | Sample default |
237+
| --- | --- | --- |
238+
| `DURABLE_TASK_SCHEDULER_CONNECTION_STRING` | Durable Task Scheduler connection string | `Endpoint=http://localhost:8080;TaskHub=default;Authentication=None` |
239+
| `PAYLOAD_STORAGE_CONNECTION_STRING` | Blob storage connection string for externalized payloads | `UseDevelopmentStorage=true` |
240+
| `PAYLOAD_STORAGE_ACCOUNT_URI` | Blob account URI for identity-based payload storage access | unset |
241+
| `PAYLOAD_CONTAINER_NAME` | Blob container for externalized payloads | `durabletask-payloads` |
242+
| `PAYLOAD_SIZE_BYTES` | Default payload size used by the run endpoint | `1572864` |
243+
| `EXTERNALIZE_THRESHOLD_BYTES` | Blob offload threshold | `900000` |
244+
| `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+
183270
## Azure permissions
184271

185272
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:
210297
- The Durable Functions samples return a small summary object that confirms the input and output sizes.
211298
- The .NET Durable Task SDK sample prints whether the run creates new payload blobs.
212299

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.
301+
213302
## Next steps
214303

215304
> [!div class="nextstepaction"]

0 commit comments

Comments
 (0)