Object Storage Service (OSS) adalah layanan penyimpanan cloud yang aman, berbiaya rendah, dan sangat andal yang menawarkan kapasitas penyimpanan besar. Anda dapat mengonfigurasi titik pemasangan OSS untuk layanan Function Compute agar fungsi dalam layanan tersebut dapat berinteraksi dengan OSS seolah-olah merupakan sistem file lokal. Hal ini menyederhanakan akses sumber daya dan alur pemrosesan data.
Batasan
Function Compute mendukung hingga 5 titik pemasangan NAS dan 5 titik pemasangan OSS per layanan dalam wilayah yang sama.
Direktori lokal yang Anda tetapkan untuk titik pemasangan NAS dan OSS di lingkungan runtime fungsi tidak boleh saling bertentangan.
Untuk informasi selengkapnya tentang cara mengonfigurasi titik pemasangan NAS, lihat Konfigurasikan Sistem File NAS.
Prasyarat
Object Storage Service (OSS)
Function Compute
Buat layanan. Untuk informasi selengkapnya, lihat Buat Layanan.
Konfigurasikan izin untuk peran layanan. Saat mengaktifkan fitur pemasangan OSS, Anda harus mengonfigurasi peran yang memungkinkan layanan Function Compute mengakses OSS. Untuk informasi selengkapnya, lihat Berikan izin Function Compute untuk mengakses layanan Alibaba Cloud lainnya.
Prosedur
Langkah 1: Konfigurasikan Titik Pemasangan OSS
Di Function Compute, OSS dikonfigurasi pada tingkat layanan. Artinya, setelah Anda mengonfigurasi titik pemasangan OSS untuk suatu layanan, semua fungsi dalam layanan tersebut dapat mengakses file di bucket OSS yang ditentukan.
Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Services, temukan layanan yang diinginkan lalu klik Configure di kolom Actions.
Pada halaman Edit Service, konfigurasikan parameter berikut di bagian Storage Configuration, lalu klik Save.
Item Konfigurasi
Deskripsi
Contoh
Mount OSS
Aktifkan atau nonaktifkan sistem file OSS.
Enable: Aktifkan sistem file OSS.
Disable: Nonaktifkan sistem file OSS.
Enable
OSS Mount Point: Konfigurasikan pengaturan berikut untuk titik pemasangan OSS.
Bucket
Pilih bucket OSS yang sudah ada. Untuk membuat bucket baru, klik Create New OSS Bucket di bawah. Tindakan ini akan membuka Konsol Object Storage Service, tempat Anda dapat membuat bucket secara manual. Untuk detail harga, lihat Ikhtisar Penagihan OSS.
example-bucket
Bucket Subdirectory
Tetapkan subdirektori dalam bucket. Gunakan jalur mutlak. Biarkan kosong atau atur ke / untuk memasang direktori root bucket.
/files
OSS Endpoint
Setelah Anda memilih bucket, endpoint default untuk bucket tersebut akan muncul. Anda dapat memilih Custom Endpoint untuk mengubahnya. Untuk daftar endpoint berdasarkan wilayah, lihat Wilayah dan Endpoint.
CatatanJika Anda memilih Bucket yang berada di wilayah yang sama dengan layanan Function Compute, kami menyarankan Anda menggunakan endpoint jaringan internal OSS.
Jika bucket berada di wilayah berbeda, gunakan endpoint jaringan publik. Hal ini akan dikenai biaya lalu lintas outbound melalui Internet.
Default address
Local Directory in Function
Tetapkan direktori lokal di lingkungan runtime fungsi. Jalur tersebut harus merupakan subdirektori dari /home, /mnt, atau /data.
CatatanAnda tidak perlu membuat direktori ini secara manual. Direktori tersebut siap digunakan setelah Anda menetapkannya.
/mnt/oss
Local Directory Permissions in Function
Tetapkan izin read-only atau read-write untuk direktori yang dipasang di lingkungan runtime fungsi.
Read-write
CatatanPemasangan OSS bergantung pada konfigurasi jaringan layanan Anda. Jika layanan Anda hanya mengizinkan akses dari VPC (Allow Function Invocation Only from Specified VPC diatur ke Yes dan Allow Function to Access the Internet diatur ke No) dan Anda menggunakan endpoint jaringan publik, pastikan fungsi Anda dapat mengakses Internet melalui VPC yang ditentukan. Untuk informasi selengkapnya, lihat Konfigurasikan Alamat IP Publik Statis.
Langkah 2: Buat Fungsi dan Akses File di Direktori OSS yang Dipasang
Setelah Anda mengonfigurasi titik pemasangan OSS, Anda dapat mengakses file di direktori yang dipasang seolah-olah file tersebut merupakan file lokal.
Pada halaman Create Function, konfigurasikan pengaturan berikut. Biarkan pengaturan lainnya pada nilai default, lalu klik Create.
Metode Pembuatan: Create with Built-in Runtimes.
Basic Settings: Masukkan Function Name. Untuk Handler Type, pilih Event Handler.
Function Code: Untuk Runtime, pilih Python 3.10. Untuk Code Upload Method, pilih Sample Code.
Pada halaman detail fungsi, klik tab Function Code. Di editor kode, masukkan kode Anda lalu klik Deploy Code.
Contoh ini menggunakan Python. Berikut adalah contoh kodenya.
import os def handler(event, context): # Direktori yang dipasang mount_path = '/mnt/oss' # Daftar file di direktori yang dipasang files = os.listdir(mount_path) print("Files in OSS mount:", files) # Baca file di direktori yang dipasang file_path = os.path.join(mount_path, 'example.txt') if os.path.exists(file_path): with open(file_path, 'r') as file: content = file.read() print("Content of example.txt:", content) else: print("example.txt does not exist.") # Tulis file ke direktori yang dipasang write_path = os.path.join(mount_path, 'output.txt') with open(write_path, 'w') as file: file.write("Hello, OSS mount!") print("Wrote to output.txt in OSS mount.") return "Function execution completed."CatatanDalam kode, ganti
example.txtdengan nama file aktual di direktori OSS yang dipasang Anda.Setelah kode dideploy, klik Test Function di tab Function Code.
Setelah fungsi dieksekusi, Anda dapat melihat hasilnya di bawah tab Function Code. Di tab Logs, Anda dapat melihat konten
example.txtdari direktori OSS yang dipasang. Di Konsol OSS, Anda dapat melihat kontenoutput.txtyang ditulis ke direktori yang dipasang.
FAQ
Pemasangan OSS gagal. Pesan error-nya adalah bucket not found.
Verifikasi bahwa endpoint OSS dan nama bucket sudah benar.
Pemasangan OSS gagal. Pesan error-nya adalah host resolv error atau deadline exceeded.
Verifikasi bahwa endpoint sudah benar.
Pesan
host resolv errormenunjukkan kegagalan resolusi nama domain untuk endpoint tersebut.Error
deadline exceededterjadi jika Anda menggunakan endpoint jaringan internal dari wilayah berbeda. Endpoint jaringan internal tidak dapat digunakan lintas wilayah.
Pemasangan OSS gagal. Pesan error-nya adalah invalid credentials.
Pastikan peran RAM yang ditetapkan ke layanan Anda memiliki izin untuk mengakses OSS. Izin yang diperlukan adalah sebagai berikut. Untuk informasi selengkapnya, lihat Berikan Izin Function Compute untuk Mengakses Layanan Alibaba Cloud Lainnya.
Read-only: mencakup aksi
oss:ListObjectsdanoss:GetObject.Read/Write: mencakup aksi
oss:ListObjects,oss:GetObject,oss:PutObject,oss:DeleteObject,oss:ListParts, danoss:AbortMultipartUpload.
oss:ListObjects adalah aksi tingkat bucket. Oleh karena itu, saat memberikan akses ke bucket tertentu, kebijakan Anda harus mencakup ARN sumber daya tingkat bucket, seperti acs:oss:*:*:bucketName. Untuk informasi selengkapnya, lihat Deskripsi Sumber Daya OSS.
Saat membaca file yang dipasang, pesan error-nya adalah Input/output error.
Verifikasi kelas penyimpanan bucket OSS Anda. File di bucket yang menggunakan kelas penyimpanan Archive atau Cold Archive dalam keadaan beku. Anda harus memulihkan file-file tersebut sebelum dapat mengaksesnya. Kami menyarankan Anda menggunakan kelas penyimpanan Standard untuk bucket OSS Anda.
Bagaimana cara melihat file di direktori lokal yang telah dikonfigurasi?
Pada halaman detail fungsi, klik tab Instances. Temukan instans yang berstatus Running. Klik Connect di kolom Actions untuk instans tersebut.

Setelah terhubung ke instans, Anda dapat menjalankan perintah untuk menampilkan daftar file di direktori lokal yang telah dikonfigurasi. Contoh:

Instans fungsi menampilkan Transport endpoint is not connected saat mengakses titik pemasangan.
Error ini dapat terjadi jika instans fungsi memiliki memori rendah atau penggunaan memori tinggi. Hal ini dapat menyebabkan fitur pemasangan OSS gagal karena error kehabisan memori (OOM). Untuk mengatasi masalah ini, tingkatkan ukuran memori fungsi. Kami menyarankan Anda mengatur ukuran memori minimal 512 MB saat menggunakan titik pemasangan OSS.
Apakah file yang ditulis ke direktori fungsi disimpan secara permanen?
Tidak. Saat instans fungsi dihapus, file yang ditulis ke direktori fungsi akan dihapus. Untuk menyimpan data secara permanen, Anda harus mengonfigurasi titik pemasangan. Baik titik pemasangan NAS maupun OSS mendukung penyimpanan persisten. Untuk informasi selengkapnya, lihat Konfigurasikan Sistem File NAS dan Konfigurasikan Sistem File OSS.
Bagaimana cara mengizinkan akses read-only ke bucket tertentu menggunakan kebijakan izin?
Bagaimana cara mengizinkan akses read-write ke bucket tertentu menggunakan kebijakan izin?
Bagaimana cara mengizinkan akses read-only ke subdirektori tertentu dalam bucket menggunakan kebijakan izin?
Bagaimana cara mengizinkan akses read-write ke subdirektori tertentu dalam bucket menggunakan kebijakan izin?
Saat menulis file melalui titik pemasangan OSS, file tampak kosong di Konsol OSS.
Secara default, konten yang ditulis hanya diunggah ke OSS ketika file secara eksplisit di-flush atau ditutup.
Operasi seperti kompresi, dekompresi, atau transfer file di titik pemasangan OSS merespons dengan lambat.
OSS tidak mendukung API sistem file. Setelah Anda memasang bucket OSS sebagai direktori, Function Compute membungkus API OSS untuk mensimulasikan API sistem file. Misalnya, OSS tidak mendukung operasi penulisan acak. Jika Anda menggunakan API sistem file untuk mengubah file yang sudah ada di titik pemasangan OSS, Function Compute mengunduh seluruh file sumber dari OSS, mengubahnya, lalu mengunggahnya kembali ke OSS.
Operasi yang langsung dipetakan ke API OSS, seperti pembacaan dan penulisan berurutan, berkinerja baik. Namun, operasi yang memerlukan beberapa panggilan API OSS, seperti kompresi atau dekompresi, sering kali melibatkan pembacaan acak dan memerlukan lebih banyak permintaan bolak-balik ke OSS. Akibatnya, operasi tersebut lebih lambat dibandingkan pada sistem file lokal.
Apakah instans fungsi yang berbeda mengoordinasikan atau menyinkronkan akses ke titik pemasangan OSS yang sama?
Instans fungsi beroperasi secara independen. Akibatnya, konten pada titik pemasangan OSS mungkin tidak konsisten di antara instans. Misalnya, jika Anda menggunakan instans fungsi A untuk membuat file F di titik pemasangan OSS, Anda mungkin tidak dapat mengambil file tersebut secara real-time dari instans fungsi B.