Saat menggunakan Function Compute, Anda mungkin perlu mengakses kumpulan data yang sama di antara aplikasi dan fungsi yang berbeda. Sebagai contoh, dalam aplikasi pembelajaran mesin, model yang telah dilatih perlu dibagikan oleh beberapa fungsi inferensi. Anda dapat mengonfigurasi sistem file NAS (Network Attached Storage) untuk menyimpan dan berbagi data tersebut. Ini membantu menyederhanakan manajemen data dan mengatasi keterbatasan ruang disk lokal. Setelah dikonfigurasi, fungsi dapat membaca dan menulis data ke sistem file NAS seperti halnya dengan sistem file lokal.
Sebelum memulai
Function Compute
Buat sebuah fungsi dan konfigurasikan akses VPC untuk fungsi tersebut. Untuk informasi lebih lanjut, lihat Buat Fungsi dan Konfigurasikan Pengaturan Jaringan.
CatatanAnda hanya dapat mengonfigurasi sistem file NAS di private virtual private clouds (VPC). Oleh karena itu, pastikan fungsi memiliki akses VPC dan pengaturan jaringan VPC dikonfigurasi dengan benar jika ingin memasang NAS.
NAS
Buat sistem file NAS dan tambahkan titik pemasangan untuk sistem file tersebut. Untuk informasi lebih lanjut, lihat Buat Sistem File dan Buat Titik Pemasangan.
Batasan
Anda dapat mengonfigurasi maksimal lima titik pemasangan NAS dan lima titik pemasangan Object Storage Service (OSS) untuk sebuah fungsi di Function Compute di suatu wilayah.
Untuk fungsi yang sama, direktori lokal dalam waktu proses fungsi dari titik pemasangan NAS tidak boleh sama dengan titik pemasangan OSS.
Konfigurasikan sistem file NAS
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang ingin Anda kelola.
Pada halaman detail fungsi, klik tab Configurations. Di panel navigasi sebelah kiri, klik Storage. Di bagian NAS, klik Modify. Di panel NAS, konfigurasikan parameter berikut dan klik Deploy.
Anda dapat memilih Konfigurasi Otomatis atau Konfigurasi Kustom sebagai mode konfigurasi untuk mengonfigurasi sistem file NAS.
Konfigurasi Otomatis
Sistem secara otomatis membuat sistem file NAS tujuan umum bernama
Alibaba-Fc-V3-Component-Generated, serta VPC, vSwitch, dan grup keamanan dengan nama yang sama.Pada saat berikutnya Anda memilih Automatic Configuration, sistem mendeteksi bahwa sistem file NAS yang disebutkan sudah ada di wilayah tersebut. Dalam kasus ini, sistem akan menggunakan kembali sistem file dan konfigurasi VPC terkait tanpa membuat ulang sistem file tersebut. Untuk informasi lebih lanjut tentang penagihan VPC dan NAS, lihat Penagihan dan Penagihan Sistem File NAS Tujuan Umum.

Konfigurasi Kustom
Jika Anda memilih opsi ini, Anda perlu secara manual memilih sistem file NAS, dan mengonfigurasi pengaturan terkait, seperti pengguna, grup pengguna, dan titik pemasangan NAS.
Tabel berikut menjelaskan parameter utama:
Parameter
Deskripsi
Contoh
File Storage NAS
Pilih sistem file NAS yang ada.
Untuk membuat sistem file NAS baru, klik Create NAS File System di bawah parameter untuk masuk ke Konsol NAS.
PentingHanya sistem file NAS berbasis Network File System (NFS) yang didukung. Sistem file NAS berbasis Server Message Block (SMB) tidak didukung.
01d394****
User dan User Group
Masukkan ID pengguna dan ID grup pengguna kustom. Jika Anda tidak menentukan nilai, ID root sistem digunakan. Secara spesifik,
UID=0danGID=0. Untuk informasi lebih lanjut, lihat Pengguna dan Grup Pengguna NAS.1
Remote Directory
Tentukan direktori jarak jauh. Direktori jarak jauh dari sistem file NAS tujuan umum harus dimulai dengan /.
Direktori jarak jauh dari sistem file NAS ekstrem harus dimulai dengan /share.
Jika direktori jarak jauh yang Anda tentukan tidak ada di sistem file NAS jarak jauh, Function Compute secara otomatis membuat direktori tersebut untuk Anda. Pemilik direktori adalah pengguna dan grup pengguna yang Anda konfigurasikan sebelumnya, dan tingkat izinnya adalah
777.Untuk informasi lebih lanjut, lihat Direktori Jarak Jauh.
/
Local Function Directory
Kami merekomendasikan Anda menggunakan subdirektori dari /home, /mnt, /tmp, atau /data.
CatatanJangan gunakan direktori sistem Linux dan UNIX umum dan subdirektorinya, seperti /bin, /opt, /var, atau /dev. Jika tidak, pemasangan mungkin gagal.
Untuk informasi lebih lanjut, lihat Direktori Lokal.
/mnt/nas
CatatanJika Anda ingin fungsi yang berbeda berbagi sumber daya file NAS, Anda harus menggunakan pengguna dan grup pengguna yang sama saat mengonfigurasi pemasangan NAS untuk fungsi-fungsi tersebut.
Izin pada file yang diunggah ke NAS sama dengan izin pada file lokal.
Verifikasi apakah sistem file NAS telah dipasang
Siapkan kode fungsi untuk mengakses NAS
Setelah mengonfigurasi sistem file NAS, Anda dapat mengakses sistem file tersebut menggunakan jalur tertentu di kode fungsi Anda.
Pada halaman detail fungsi, klik tab Code, tulis kode di editor kode, lalu klik Deploy.
Potongan kode berikut memberikan contoh menulis data ke dan membaca data dari sistem file NAS menggunakan kode fungsi acara Python.
#!/usr/bin/env python # -*- coding: utf-8 -*- import random import subprocess import string import os def handler(event, context): # laporkan penggunaan ruang disk sistem file dan periksa titik pemasangan NAS 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) # Tulis data ke sistem file NAS. content = "NAS here I come" os.mkdir(new_dir) fw = open(new_dir + file_name, "w+") fw.write(content) fw.close() # Menampilkan struktur folder di NAS 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)) # Baca data dari sistem file NAS. 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))
Verifikasi pemasangan
Setelah kode diterapkan, klik Test Function pada tab Code.
Setelah kode dieksekusi, Anda dapat melihat hasil eksekusi di bagian bawah tab Code. Log keluaran menunjukkan bahwa fungsi telah berhasil menulis data ke dan membaca data dari sistem file NAS.

(Opsional) Setelah Anda menulis dan membaca data, Anda dapat masuk ke instance untuk melihat file di direktori lokal fungsi dan memeriksa apakah file NAS yang diquery konsisten dengan log keluaran fungsi.
Pada halaman detail fungsi, klik tab Instances dan klik Connect di kolom Actions.
Jika tidak ada instance yang sedang berjalan, Anda dapat klik Test Function pada tab Code untuk menjalankan fungsi lagi dan mengaktifkan instance.

Setelah Anda masuk ke instance, Anda dapat menjalankan perintah berikut untuk melihat file di direktori lokal fungsi: Gambar berikut menunjukkan contohnya.

Konsep
Pengguna dan grup pengguna NAS
Nilai valid untuk ID pengguna dan ID grup pengguna adalah [0, 65534]. Jika Anda tidak menentukan nilai untuk ID pengguna atau ID grup pengguna, nilainya default menjadi 0, yang menunjukkan ID pengguna root dan ID grup pengguna root, masing-masing. Anda perlu menentukan pemilik dan izin grup yang sesuai pada file untuk memastikan bahwa izin baca dan tulis file konsisten. Sebagai contoh, jika Anda ingin fungsi yang berbeda berbagi sumber daya file NAS, Anda perlu menggunakan pengguna dan grup pengguna yang sama saat mengonfigurasi pemasangan NAS untuk fungsi-fungsi tersebut.
Direktori jarak jauh dan direktori lokal
Titik akhir setiap titik pemasangan NAS terdiri dari remote directory dan local directory. Proses pemasangan sistem file NAS pada dasarnya menciptakan pemetaan dari direktori lokal instance Function Compute ke direktori jarak jauh sistem file NAS.
Remote directory
Direktori jarak jauh adalah direktori di sistem file NAS jarak jauh. Direktori jarak jauh terdiri dari titik pemasangan dan direktori absolut. Anda dapat menambahkan titik pemasangan di Konsol NAS. Anda dapat merakit titik pemasangan dan direktori absolut menjadi direktori jarak jauh. Sebagai contoh, jika titik pemasangan sistem file NAS adalah xxxx-nas.aliyuncs.com, dan direktori absolut yang ingin Anda akses adalah /workspace/document, maka direktori jarak jauh lengkap yang sesuai adalah xxxx-nas.aliyuncs.com:/workspace/document.
Anda dapat masuk ke Konsol NAS. Di daftar sistem file, klik sistem file yang diinginkan, lalu klik Mount Target untuk mendapatkan titik pemasangan.

Local directory
Direktori lokal dalam waktu proses fungsi mengacu pada titik pemasangan sistem file lokal. Kami merekomendasikan Anda menggunakan subdirektori dari /home, /mnt, /tmp, atau /data. Anda tidak dapat menggunakan direktori sistem Linux atau UNIX umum atau subdirektorinya, seperti /bin, /opt, /var, atau /dev, untuk memasang sistem file NAS.
Informasi lebih lanjut
Function Compute mendukung jenis penyimpanan berikut: NAS, Object Storage Service (OSS), hard disk sementara, dan layer. Untuk informasi lebih lanjut tentang skenario dan perbedaan antara jenis penyimpanan ini, lihat Pilihan Penyimpanan Fungsi.
Jika Anda perlu menyimpan sejumlah besar data tidak terstruktur seperti gambar, video, dan dokumen, kami merekomendasikan Anda memasang sistem file OSS. Untuk informasi lebih lanjut, lihat Konfigurasikan Sistem File OSS.
Anda juga dapat menggunakan Serverless Devs untuk memasang sistem NAS ke fungsi. Untuk informasi lebih lanjut, lihat Perintah Umum Serverless Devs.