File Storage NAS s'intègre parfaitement à Function Compute. Configurez un système de fichiers NAS pour une fonction afin d'accéder aux fichiers NAS comme s'ils se trouvaient sur un système de fichiers local. Cette approche offre un stockage persistant, supprime les limites d'espace disque local et permet à différentes instances de fonction de partager des données de fichier. Cette rubrique explique comment configurer un système de fichiers NAS pour une fonction.
Prérequis
Un système de fichiers NAS est créé. Pour plus d'informations, consultez la rubrique Créer un système de fichiers.
Une fonction est créée. Pour plus d'informations, consultez la rubrique Créer une fonction web.
Les paramètres réseau sont configurés pour la fonction. Pour plus d'informations, consultez la rubrique Configurer les paramètres réseau.
Limites
Une fonction Function Compute prend en charge un maximum de cinq points de montage NAS dans une seule région.
Les répertoires locaux spécifiés pour les points de montage NAS dans l'environnement d'exécution de la fonction ne doivent pas entrer en conflit.
Configurer un système de fichiers NAS
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez .
Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.
-
Sur la page des détails de la fonction, sélectionnez l'onglet Configuration et cliquez sur Modify à côté de Advanced Settings. Dans le panneau Advanced Settings, accédez à la section Storage, activez Mount NAS file system , configurez les paramètres requis, puis cliquez sur Deploy.
Vous pouvez configurer le système de fichiers NAS en utilisant soit Automatic Configuration, soit Custom Configuration.
Auto config
Le système crée automatiquement un système de fichiers NAS généraliste nommé
Alibaba-Fc-V3-Component-Generated, ainsi qu'un VPC, un vSwitch et un groupe de sécurité portant le même nom.Lorsque vous utilisez à nouveau Automatic Configuration dans la même région, le système réutilise les configurations existantes du système de fichiers NAS et du VPC au lieu d'en créer de nouvelles. Pour plus d'informations sur la tarification, consultez les rubriques Facturation VPC et Facturation du NAS généraliste.
Custom config
Sélectionnez manuellement un système de fichiers NAS et configurez ses paramètres, tels que l'utilisateur, le groupe d'utilisateurs et le point de montage.
Le tableau suivant décrit les principaux paramètres.
Paramètre
Description
Exemple
NAS
Sélectionnez un système de fichiers NAS existant.
Pour créer un système de fichiers NAS, cliquez sur Create NAS File System et créez-en un dans la console File Storage.
ImportantSeuls les systèmes de fichiers NAS utilisant le protocole NFS sont pris en charge. Les systèmes de fichiers NAS utilisant le protocole SMB ne sont pas pris en charge.
01d394****
User, User Group
Spécifiez un ID utilisateur et un ID de groupe d'utilisateurs personnalisés. Si non spécifiés, la configuration utilise par défaut l'utilisateur root :
UID=0etGID=0. Pour plus d'informations, consultez la rubrique Utilisateurs et groupes d'utilisateurs NAS.1
Remote Directory
-
Pour un système de fichiers NAS généraliste, ce répertoire doit commencer par /.
-
Pour un système de fichiers NAS Extreme, ce répertoire doit commencer par /share.
Si le répertoire spécifié n'existe pas sur le NAS distant, Function Compute le crée automatiquement. Le nouveau répertoire appartiendra à l'utilisateur et au groupe d'utilisateurs que vous avez spécifiés et disposera des autorisations
777.Pour plus d'informations, consultez la rubrique Répertoire distant.
/
Local directory of a function
Nous vous recommandons d'utiliser un sous-répertoire de /home , /mnt, /tmp ou /data.
RemarqueN'utilisez pas de répertoires système Linux et Unix courants ni leurs sous-répertoires, tels que /bin, /opt, /var ou /dev. Sinon, le montage peut échouer.
Pour plus d'informations, consultez la rubrique Répertoire local de la fonction.
/mnt/nas
RemarquePour partager des ressources NAS entre plusieurs fonctions, configurez chaque fonction avec le même utilisateur et le même groupe d'utilisateurs.
Les fichiers écrits sur le NAS auront les mêmes autorisations que les fichiers créés localement au sein de la fonction.
-
Vérifier le montage
Préparer le code de la fonction pour accéder au NAS
Après avoir configuré le système de fichiers NAS, vous pouvez y accéder dans votre code en utilisant le chemin du répertoire local que vous avez spécifié pour le montage.
-
Sur la page des détails de la fonction, cliquez sur l'onglet Code. Saisissez votre code dans l'éditeur, puis cliquez sur Deploy.
Cette rubrique utilise une fonction pilotée par les événements Python comme exemple. Le code écrit du contenu dans le système de fichiers NAS et lit le contenu depuis celui-ci.
#!/usr/bin/env python # -*- coding: utf-8 -*- import random import subprocess import string import os def handler(event, context): # report file system disk space usage and check NAS mount target out, err=subprocess.Popen(['df', '-h'], stdout=subprocess.PIPE).communicate() print('disk: ' + str(out)) lines = [ l.decode() for l in out.splitlines() if str(l).find(':') != -1 ] nas_dirs = [ x.split()[-1] for x in lines ] print('uid : ' + str(os.geteuid())) print('gid : ' + str(os.getgid())) for nas_dir in nas_dirs: sub_dir = randomString(16) file_name = randomString(6)+'.txt' new_dir = nas_dir + '/' + sub_dir + '/' print('test file: ' + new_dir + file_name) # Write to a NAS file. content = "NAS here I come" os.mkdir(new_dir) fw = open(new_dir + file_name, "w+") fw.write(content) fw.close() # Display the directory tree on the NAS mount for home, dirs, files in os.walk(nas_dir): level = home.replace(nas_dir, '').count(os.sep) indent = ' ' * 2 * (level) print('{}{}/'.format(indent, os.path.basename(home))) subindent = ' ' * 2 * (level + 1) for f in files: print('{}{}'.format(subindent, f)) # Read from a NAS file. f = open(new_dir + file_name, "r") print(f.readline()) f.close() return 'success' def randomString(n): return ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(n))
Vérifier le résultat
-
Une fois le code déployé, cliquez sur Test Function dans l'onglet Code.
Une fois l'exécution terminée, vous pouvez consulter les résultats en bas de l'onglet Code. Dans l'onglet Log Output, vous pouvez constater que la fonction a réussi à écrire dans le fichier NAS et à le lire.
C9JFL0.txt DCFIC887M7R74WYH/ 5CXI5H.txt H0630SH2QHPL9MHZ/ EUV7ZA.txt H4UNM032L2TDLPPQ/ YXDBPM.txt HYMF79FH11AYW66D/ LU3WNG.txt Z3QNEH0MY0K3VM6G/ 9D3FM2.txt fc-1/ modelscope-60c13a-model-download-func/ NAS here I come FC Invoke End RequestId: 1-66878b18-16cd285c-27f5980efe23 -
(Facultatif) Après l'exécution de la fonction, connectez-vous à l'instance pour afficher les fichiers dans le répertoire local de la fonction et confirmer qu'ils correspondent à la sortie du journal.
-
Sur la page des détails de la fonction, cliquez sur l'onglet Instance. Dans la colonne Actions de l'instance cible, cliquez sur Connect to Instance.
Si aucune instance n'est en cours d'exécution, cliquez sur Test Function dans l'onglet Code pour exécuter à nouveau la fonction et créer une instance.
-
Une fois connecté à l'instance, exécutez des commandes pour afficher les fichiers dans le répertoire local de la fonction configuré.
root@c-668b4cff-xxx:/code# cd /mnt/nas root@c-668b4cff-xxx:/mnt/nas# ls 0Q0V5ZYWMW7SLUYV BVT5FA0OV9ZLIZMU DCFIC887M7R74WYH F8I2CGH79QQGPZKC HO63OSH2QHPL9MHZ H4UNM032L2TDLPPQ HYMF79FH11AYW66D KEDRGMD67X64A6FD Z3QNEH0MY0K3VM6G fc-1 modelscope-60c13a-model-download-func root@c-668b4cff-xxx:/mnt/nas# cd ../ root@c-668b4cff-xxx:/mnt# cd nas/Z3QNEH0MY0K3VM6G root@c-668b4cff-xxx:/mnt/nas/Z3QNEH0MY0K3VM6G# ls 9D3FM2.txt root@c-668b4cff-xxx:/mnt/nas/Z3QNEH0MY0K3VM6G#
-
Concepts connexes
Utilisateurs et groupes d'utilisateurs NAS
Les valeurs UserID et GroupID peuvent aller de 0 à 65534. Si vous ne spécifiez pas ces valeurs, elles prennent toutes deux la valeur par défaut 0, qui correspond respectivement à l'ID utilisateur root et à l'ID de groupe root. Définissez le propriétaire du fichier et les autorisations de groupe correspondantes selon vos besoins pour garantir un accès en lecture et en écriture cohérent. Par exemple, si vous souhaitez que différentes fonctions partagent des ressources de fichiers NAS, vous devez utiliser le même utilisateur et le même groupe d'utilisateurs lors de la configuration du système de fichiers NAS pour ces fonctions.
Répertoire distant et répertoire local de la fonction
Le montage d'un système de fichiers NAS mappe un Local directory of a function dans l'environnement de la fonction à un Remote Directory dans le système de fichiers NAS.
-
Remote Directory
Le répertoire distant est un chemin de répertoire sur le système de fichiers NAS, tel que /workspace/document. Ce chemin est combiné avec un point de montage, par exemple xxxx-nas.aliyuncs.com, pour former l'adresse complète de montage. La source de montage complète ressemblerait à xxxx-nas.aliyuncs.com:/workspace/document.
Pour trouver le point de montage, connectez-vous à la console NAS, cliquez sur votre système de fichiers, puis cliquez sur Mount Usage.
-
Local directory of a function
Le répertoire local dans l'environnement d'exécution de la fonction sert de point de montage sur le système de fichiers local. Nous vous recommandons d'utiliser un sous-répertoire de /home, /mnt, /tmp ou /data. N'utilisez pas de répertoires système Linux et Unix courants ni leurs sous-répertoires pour monter un système de fichiers NAS. Voici quelques exemples : /bin, /opt, /var et /dev.
Références
Pour plus d'informations sur les scénarios d'utilisation de NAS avec Function Compute et les différences entre les types de stockage, consultez la rubrique Sélectionner un type de stockage de fonction.