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/tutorial-durable-text-analysis-azure-files.md
+45-9Lines changed: 45 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: "Tutorial: Durable text analysis with a mounted Azure Files share in Azur
3
3
description: Learn how to deploy a Python Azure Functions app that uses Durable Functions to orchestrate parallel text file analysis by using a mounted Azure Files share on a Flex Consumption plan.
4
4
ms.service: azure-functions
5
5
ms.topic: tutorial
6
-
ms.date: 03/11/2026
6
+
ms.date: 03/24/2026
7
7
ms.custom:
8
8
- devx-track-azurecli
9
9
- devx-track-azdevcli
@@ -18,7 +18,7 @@ In this tutorial, you deploy a Python Azure Functions app that uses [Durable Fun
18
18
In this tutorial, you:
19
19
20
20
> [!div class="checklist"]
21
-
> *Deploy a Durable Functions app in a Flex Consumption plan with a mounted Azure Files share by using Azure Developer CLI
21
+
> *Use Azure Developer CLI to deploy a Durable Functions app in a Flex Consumption plan with a mounted Azure Files share
22
22
> * Trigger an orchestration to process sample text files in parallel
23
23
> * Verify the aggregated analysis results
24
24
@@ -34,17 +34,17 @@ The CLI examples in this tutorial use Bash syntax and have been tested in [Azure
34
34
35
35
## Initialize the sample project
36
36
37
-
The sample code for this tutorial is in the [Azure Functions Flex Consumption with Azure Files OS Mount Samples](https://github.com/Azure-Samples/Azure-Functions-Flex-Consumption-with-Azure-Files-OS-Mount-Samples) GitHub repository. The `durable-text-analysis` folder contains the function app code, a Bicep template that provisions the required Azure resources, and a post-deployment script that uploads sample text files.
37
+
You can find the sample code for this tutorial in the [Azure Functions Flex Consumption with Azure Files OS Mount Samples](https://github.com/Azure-Samples/Azure-Functions-Flex-Consumption-with-Azure-Files-OS-Mount-Samples) GitHub repository. The `durable-text-analysis` folder contains the function app code, a Bicep template that provisions the required Azure resources, and a post-deployment script that uploads sample text files.
38
38
39
-
1. Open a terminal and navigate to the directory where you want to clone the repository.
39
+
1. Open a terminal and go to the directory where you want to clone the repository.
cd Azure-Functions-Flex-Consumption-with-Azure-Files-OS-Mount-Samples/durable-text-analysis
@@ -56,11 +56,47 @@ The sample code for this tutorial is in the [Azure Functions Flex Consumption wi
56
56
azd init
57
57
```
58
58
59
-
## Deploy with Azure Developer CLI
59
+
## Review the code
60
+
61
+
The three key pieces that make this sample work are the infrastructure that creates the mount, the script that uploads sample files, and the functioncode that orchestrates the analysis.
The `mounts.bicep` module configures an Azure Files SMB mount on the functionapp. The `mountPath` value determines the local path where files appear at runtime. You pass the storage account access key as a parameter, and the platform resolves it at runtime through a Key Vault reference:
Because Azure Files SMB mounts don't yet support managed identity authentication, you need a storage account key. As a best practice, store this key in Azure Key Vault and use a [Key Vault reference](/azure/app-service/app-service-key-vault-references) in an app setting. The mount configuration references that app setting by using `@AppSettingRef()`, so the key never appears in your Bicep templates. The `keyvault.bicep` module creates the vault, stores the key, and grants RBAC roles:
After `azd up` deploys the infrastructure and code, a post-deployment script creates sample text files, uploads them to the Azure Files share, and runs a health check:
The HTTP starter in `function_app.py` starts a Durable Functions orchestration. The orchestrator in `orchestrator.py` lists all `.txt` files on the mount, fans out to analyze each file in parallel, and aggregates the results:
This sample is an [Azure Developer CLI (azd)](/azure/developer/azure-developer-cli/overview) template. A single `azd up`command provisions infrastructure, deploys the functioncode, and uploads sample text files to the Azure Files share.
62
98
63
-
1. Sign in to Azure. The post-deployment script uses Azure CLI commands, so you need to authenticate with both tools:
99
+
1. Sign in to Azure. The post-deployment script uses Azure CLI commands, so you need to authenticate by using both tools:
64
100
65
101
```bash
66
102
azd auth login
@@ -81,7 +117,7 @@ This sample is an [Azure Developer CLI (azd)](/azure/developer/azure-developer-c
81
117
- Runs a health check
82
118
83
119
> [!NOTE]
84
-
> Because Azure Files SMB mounts don't yet support managed identity authentication, a storage account key is required. As a best practice, the deployment stores this key in [Azure Key Vault](/azure/key-vault/general/overview) and uses a [Key Vault reference](/azure/app-service/app-service-key-vault-references) so the key is never exposed in app settings. This approach provides centralized secret management, auditing, and support for key rotation.
120
+
> Because Azure Files SMB mounts don't yet support managed identity authentication, you need a storage account key. As a best practice, the deployment stores this key in [Azure Key Vault](/azure/key-vault/general/overview) and uses a [Key Vault reference](/azure/app-service/app-service-key-vault-references) so the key is never exposed in app settings. This approach provides centralized secret management, auditing, and support for key rotation.
85
121
86
122
The deployment takes a few minutes. When it completes, you see a summary of the created resources.
87
123
@@ -168,7 +204,7 @@ This sample is an [Azure Developer CLI (azd)](/azure/developer/azure-developer-c
168
204
```
169
205
170
206
> [!TIP]
171
-
> Your function app accessed all three files in parallel through the storage mount. The app didn't need any per-request network calls. The functionread them directly from the mounted share by using standard file I/O. This approach demonstrates the power of storage mounts combined with Durable Functions.
207
+
> Your function app accesses all three files in parallel through the storage mount. The app doesn't need any per-request network calls. The functionreads them directly from the mounted share by using standard file I/O. This approach demonstrates the power of storage mounts combined with Durable Functions.
Copy file name to clipboardExpand all lines: articles/azure-functions/tutorial-ffmpeg-processing-azure-files.md
+16-14Lines changed: 16 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
title: "Tutorial: Process images by using FFmpeg on a mounted Azure Files share in Azure Functions"
3
3
description: Learn how to deploy a Python Azure Functions app that uses an ffmpeg binary hosted on a mounted Azure Files share to process images on a Flex Consumption plan.
4
4
ms.topic: tutorial
5
-
ms.date: 03/11/2026
5
+
ms.date: 03/24/2026
6
6
ms.custom:
7
7
- devx-track-azurecli
8
8
- devx-track-azdevcli
@@ -25,25 +25,25 @@ In this tutorial, you:
25
25
26
26
## Prerequisites
27
27
28
-
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn)
28
+
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn).
29
29
-[Azure Developer CLI (azd)](/azure/developer/azure-developer-cli/install-azd) version 1.9.0 or later
30
30
-[Git](https://git-scm.com/)
31
31
32
-
The CLI examples in this tutorial use Bash syntax and have been tested in [Azure Cloud Shell](/azure/cloud-shell/overview) (Bash) and Linux/macOS terminals.
32
+
The CLI examples in this tutorial use Bash syntax and are tested in [Azure Cloud Shell](/azure/cloud-shell/overview) (Bash) and Linux/macOS terminals.
33
33
34
34
## Initialize the sample project
35
35
36
36
The sample code for this tutorial is in the [Azure Functions Flex Consumption with Azure Files OS Mount Samples](https://github.com/Azure-Samples/Azure-Functions-Flex-Consumption-with-Azure-Files-OS-Mount-Samples) GitHub repository. The `ffmpeg-image-processing` folder contains the function app code, a Bicep template that provisions the required Azure resources, and a post-deployment script that uploads the ffmpeg binary.
37
37
38
-
1. Open a terminal and navigate to the directory where you want to clone the repository.
38
+
1. Open a terminal and go to the directory where you want to clone the repository.
cd Azure-Functions-Flex-Consumption-with-Azure-Files-OS-Mount-Samples/ffmpeg-image-processing
@@ -59,37 +59,39 @@ The sample code for this tutorial is in the [Azure Functions Flex Consumption wi
59
59
60
60
The three key pieces that make OS mount–based processing work are the infrastructure that creates the mount, the script that uploads the binary, and the functioncode that calls it.
The `mounts.bicep` module configures an Azure Files SMB mount on the functionapp. The `mountPath` value determines the local path where files appear at runtime. The storage account access key is passed inas a parameter that the platform resolves at runtime via a Key Vault reference:
64
+
The `mounts.bicep` module configures an Azure Files SMB mount on the functionapp. The `mountPath` value determines the local path where files appear at runtime. You pass the storage account access key as a parameter, and the platform resolves it at runtime through a Key Vault reference:
Because Azure Files SMB mounts don't yet support managed identity authentication, a storage account key is required. As a best practice, the deployment stores this key in Azure Key Vault and uses a [Key Vault reference](/azure/app-service/app-service-key-vault-references) in an app setting. The mount configuration references that app setting with `@AppSettingRef()`, so the key is never exposed in your Bicep templates. The `keyvault.bicep` module creates the vault, stores the key, and grants RBAC roles:
68
+
Because Azure Files SMB mounts don't yet support managed identity authentication, you need a storage account key. As a best practice, store this key in Azure Key Vault and use a [Key Vault reference](/azure/app-service/app-service-key-vault-references) in an app setting. The mount configuration references that app setting by using `@AppSettingRef()`, so the key never appears in your Bicep templates. The `keyvault.bicep` module creates the vault, stores the key, and grants RBAC roles:
After `azd up` deploys the infrastructure and code, a post-deployment script downloads the FFmpeg static binary and uploads it to the Azure Files share. It also creates the Event Grid subscription and runs a health check:
The function reads the mount path from an environment variable (`FFMPEG_PATH`) that's setin the Bicep template. It calls `process_with_ffmpeg`, which runs the binary as a subprocess against the input image bytes:
84
+
The function reads the mount path from an environment variable (`FFMPEG_PATH`) set in the Bicep template. It calls `process_with_ffmpeg`, which runs the binary as a subprocess against the input image bytes:
This sample is an [Azure Developer CLI (azd)](/azure/developer/azure-developer-cli/overview) template. A single `azd up` command provisions infrastructure, deploys the function code, uploads the ffmpeg binary to Azure Files, and creates the EventGrid subscription for blob triggers.
91
93
92
-
1. Sign in to Azure. The post-deployment script uses Azure CLI commands, so you need to authenticate with both tools:
94
+
1. Sign in to Azure. The post-deployment script uses Azure CLI commands, so you need to authenticate by using both tools:
0 commit comments