No Function Compute, várias aplicações ou funções podem precisar compartilhar o acesso ao mesmo conjunto de dados. Por exemplo, em uma aplicação de machine learning, um modelo treinado precisa ser compartilhado entre várias funções de inferência. Configure um sistema de arquivos NAS para sua função armazenar esses dados. Isso permite o compartilhamento de arquivos, simplifica o gerenciamento de dados e supera as limitações de espaço em disco local. Após configurar um sistema de arquivos NAS para uma função, sua função do Function Compute poderá ler e gravar arquivos no NAS como se estivessem em um sistema de arquivos local.
Pré-requisitos
-
Function Compute
Uma função foi criada e configurada para acessar uma VPC. Para mais informações, consulte {{XREF_0}} e {{XREF_1}}.
NotaOs pontos de montagem do NAS só podem ser adicionados dentro de uma VPC privada. Portanto, você deve definir as configurações de rede da função para acessar a VPC específica onde o sistema de arquivos NAS reside.
-
File Storage NAS
Um sistema de arquivos NAS foi criado e um ponto de montagem foi adicionado. Para mais informações, consulte {{XREF_2}} e {{XREF_3}}.
Limites
No Function Compute, uma única função suporta até cinco pontos de montagem NAS e cinco pontos de montagem do Object Storage Service (OSS) na mesma região.
Os diretórios locais para os pontos de montagem NAS e OSS não devem entrar em conflito.
Configurar um sistema de arquivos NAS
Faça login no console do Function Compute. No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione uma região. Na página Functions, clique na função desejada.
-
Na página de detalhes da função, selecione a aba Configuration e clique em Modify ao lado de Advanced Settings. No painel Advanced Settings, vá para a seção Storage, ative Mount NAS file system , defina as configurações necessárias e clique em Deploy.
É possível configurar o sistema de arquivos NAS usando Automatic Configuration ou Custom Configuration.
Auto config
O sistema cria automaticamente um sistema de arquivos NAS de uso geral chamado
Alibaba-Fc-V3-Component-Generated, juntamente com uma VPC, vSwitch e grupo de segurança com o mesmo nome.Ao usar a Automatic Configuration novamente na mesma região, o sistema reutiliza o sistema de arquivos NAS e as configurações de VPC existentes, em vez de criar novos. Para mais informações sobre preços, consulte {{XREF_4}} e {{XREF_5}}.
Custom config
Selecione manualmente um sistema de arquivos NAS e configure seus parâmetros, como usuário, grupo de usuários e ponto de montagem.
A tabela a seguir descreve os principais parâmetros.
Parâmetro
Descrição
Exemplo
NAS
Selecione um sistema de arquivos NAS existente.
Para criar um sistema de arquivos NAS, clique em Create NAS File System e crie um no console do File Storage.
ImportanteApenas sistemas de arquivos NAS que usam o protocolo NFS são suportados. Sistemas de arquivos NAS que usam o protocolo SMB não são suportados.
01d394****
User, User Group
Especifique um ID de usuário e um ID de grupo de usuários personalizados. Se não especificados, a configuração padrão será o usuário root:
UID=0eGID=0. Para mais informações, consulte {{XREF_6}}.1
Remote Directory
-
Para um sistema de arquivos NAS de uso geral, este diretório deve começar com /.
-
Para um sistema de arquivos NAS extremo, este diretório deve começar com /share.
Se o diretório especificado não existir no NAS remoto, o Function Compute o criará automaticamente. O novo diretório pertencerá ao usuário e grupo de usuários que você especificou e terá permissões
777.Para mais informações, consulte {{XREF_7}}.
/
Local directory of a function
Recomendamos usar um subdiretório de /home , /mnt, /tmp ou /data.
NotaNão use diretórios comuns de sistema Linux e Unix ou seus subdiretórios, como /bin, /opt, /var ou /dev. Caso contrário, a montagem pode falhar.
Para mais informações, consulte {{XREF_8}}.
/mnt/nas
NotaPara compartilhar recursos NAS entre várias funções, configure cada função com o mesmo usuário e grupo de usuários.
Os arquivos gravados no NAS terão as mesmas permissões dos arquivos criados localmente dentro da função.
-
Verificar a montagem
Preparar o código da função para acessar o NAS
Após configurar o sistema de arquivos NAS, acesse-o em seu código usando o caminho do diretório local especificado para a montagem.
-
Na página de detalhes da função, clique na aba Code. Escreva seu código no editor de código e clique em Deploy.
Este tópico usa uma função orientada a eventos Python como exemplo. O código grava conteúdo e lê conteúdo do sistema de arquivos NAS.
#!/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))
Verificar o resultado
-
Após a implantação do código, clique em Test Function na aba Code.
Após a conclusão da execução, visualize os resultados na parte inferior da aba Code. Na aba Log Output, é possível ver que a função gravou e leu com sucesso o arquivo no NAS.
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 -
(Opcional) Após a execução da função, faça login na instância para visualizar os arquivos no diretório local da função e confirmar se correspondem à saída do log.
-
Na página de detalhes da função, clique na aba Instance. Na coluna Actions da instância desejada, clique em Connect to Instance.
Se nenhuma instância estiver em execução, clique em Test Function na aba Code para executar a função novamente e criar uma instância.
-
Após fazer login na instância, execute comandos para visualizar os arquivos no diretório local da função configurado.
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#
-
Conceitos relacionados
Usuários e grupos de usuários do NAS
Os valores de UserID e GroupID podem variar de 0 a 65534. Se você não especificar esses valores, ambos assumirão o valor padrão 0, que corresponde ao ID de usuário root e ao ID de grupo root, respectivamente. Defina o proprietário do arquivo e as permissões de grupo correspondentes conforme necessário para garantir acesso consistente de leitura e gravação. Por exemplo, se desejar que diferentes funções compartilhem recursos de arquivos NAS, use o mesmo usuário e grupo de usuários ao configurar o sistema de arquivos NAS para essas funções.
Diretório remoto e diretório local da função
A montagem de um sistema de arquivos NAS mapeia um Local directory of a function no ambiente da função para um Remote Directory no sistema de arquivos NAS.
-
Remote Directory
O diretório remoto é um caminho de diretório no sistema de arquivos NAS, como /workspace/document. Este caminho é combinado com um ponto de montagem, por exemplo xxxx-nas.aliyuncs.com, para formar o endereço completo para montagem. A origem completa da montagem seria xxxx-nas.aliyuncs.com:/workspace/document.
Para encontrar o ponto de montagem, faça login no console do NAS, clique no seu sistema de arquivos e, em seguida, clique em Mount Usage.
-
Local directory of a function
O diretório local no ambiente de execução da função serve como ponto de montagem no sistema de arquivos local. Recomendamos usar um subdiretório de /home, /mnt, /tmp ou /data. Não use diretórios comuns de sistema Linux e Unix ou seus subdiretórios para montar um sistema de arquivos NAS. Exemplos incluem /bin, /opt, /var e /dev.
Documentos relacionados
O Function Compute suporta vários tipos de armazenamento, incluindo File Storage NAS, Object Storage Service (OSS), disco temporário e camadas. Para entender os casos de uso e as diferenças entre esses tipos de armazenamento, consulte {{XREF_10}}.
Para armazenar grandes quantidades de dados não estruturados, como imagens, vídeos e documentos, recomendamos o uso do Object Storage Service (OSS). Para mais informações, consulte {{XREF_11}}.
Também é possível usar o Serverless Devs para montar um sistema de arquivos NAS em uma função. Para mais informações, consulte {{XREF_12}}.