Azure Storage Mount est une fonctionnalité qui permet de rattacher un partage de fichiers local (file share) à une Logic App Standard.
Cette lien permet d’utiliser les opérations « File System » et de connecter une Logic App Standard à un système de fichier via le protocole SMB.
Attention il y a actuellement deux limitations avec ce connecteur :
Pour déployer cette connection il faut créer un storage mount en plus de la connection FileSystem dans la Logic App.
On peut voir la connection FileSystem dans le panneau de connections :
On peut voir le storage mount dans le panneau de configuration :
Voici un exemple de template ARM décrivant la configuration d’un storage mount :
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "logicAppName": { "type": "string", "defaultValue": "my-logicapp-standard" }, "endpoint": { "type": "string", "defaultValue": "full-endpoint-name.example " }, "shareName": { "type": "string", "defaultValue": "rootfolder" }, "accountName": { "type": "string", "defaultValue": "ADM\\user1" } }, "variables": { "backslash": "\\" }, "resources": [ { "type": "Microsoft.Web/sites/config", "name": "[concat(parameters('logicAppName'),'/azureStorageAccounts')]", "apiVersion": "2021-01-15", "location": "France Central", "properties": { "FileSystem-Example": { "type": "FileShare", "accountName": "[parameters('accountName')]", "endpoint": "[parameters('endpoint')]", "shareName": "[parameters('shareName')]", "accessKey": "@AppSettingRef(FileSystem_Example_password)", "mountPath": "[concat(variables('backslash'),'mounts',variables('backslash'),'FileSystem-Example)]", "protocol": "Smb" } } } ] }
Dans cette exemple on stocke le mot de passe dans les App Settings de la Logic App Standard. Il est possible de le référencer directement depuis un Azure Key Vault, afin d’assurer un stockage sécurisé de ce secret.
Voici l’extrait de configuration ARM correspondant à la connexion FileSystem, à ajouter dans le fichier connections.json.
{ "serviceProviderConnections": { "FileSystem-Example": { "displayName": "example-network-folder", "parameterValues": { "mountPath": "C:\\mounts\\FileSystem-Example" }, "serviceProvider": { "id": "/serviceProviders/FileSystem" } } } }
Vous pouvez référencer une variable des App Settings pour définir dynamiquement le mount path. Par exemple : @appsetting(‘FileSystem_Example_mountPath’)
Une fois le déploiement effectué, il est possible de vérifier que les ressources ont bien été créées dans le portail Azure, en consultant les différentes sections de la Logic App Standard présentées précédemment.
Il est également possible de tester la connexion vers le file share directement depuis la console Kudu associée à la Logic App Standard. Cela permet d’ouvrir une session console (CMD ou PowerShell) et de parcourir le répertoire. On trouve la console Kudu via le menu Développement avancé de la Logic App Standard. Voici un exemple des commandes qu’il faut utiliser afin d’aller explorer le partage de fichier local via la console :