Object Storage Service (OSS) adalah layanan penyimpanan cloud yang masif, aman, hemat biaya, dan sangat andal. Anda dapat memasang bucket OSS ke Function Compute, sehingga fungsi Anda dapat berinteraksi dengan OSS seolah-olah merupakan sistem file lokal. Hal ini menyederhanakan akses sumber daya dan alur kerja pemrosesan data.
Batasan
Fungsi Function Compute mendukung hingga lima titik pemasangan NAS dan lima titik pemasangan OSS dalam wilayah yang sama.
Direktori lokal untuk titik pemasangan NAS dan OSS harus unik dalam lingkungan runtime fungsi tersebut.
Untuk informasi lebih lanjut tentang konfigurasi titik pemasangan NAS, lihat Konfigurasi sistem file NAS.
Prasyarat
Object Storage Service (OSS)
Function Compute
Fitur pemasangan OSS memerlukan peran RAM yang memberikan izin kepada fungsi Anda untuk mengakses OSS. Untuk detailnya, lihat Berikan izin fungsi untuk mengakses layanan cloud lain menggunakan peran fungsi.
Prosedur
Langkah 1: Konfigurasi titik pemasangan OSS
Masuk ke Konsol Function Compute. Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik nama fungsi target.
Pada halaman detail fungsi, klik tab Configuration. Klik Advanced Settings di sebelah kanan Modify. Di panel Advanced Settings, temukan bagian Storage, aktifkan sakelar untuk Mount OSS, konfigurasi parameter, lalu klik Deploy.
Parameter
Deskripsi
Contoh
OSS Mount Target: Konfigurasikan titik pemasangan OSS.
Bucket
Pilih bucket yang sudah ada. Untuk membuat bucket baru, klik Create OSS Bucket untuk membuka OSS console. Untuk informasi mengenai biaya yang terkait dengan OSS, lihat OSS billing overview.
example-bucket
Bucket Subdirectory
Tentukan subdirektori dalam bucket. Ini harus berupa jalur mutlak. Jika Anda biarkan kosong atau atur ke /, direktori root bucket akan dipasang.
/files
OSS Endpoint
Saat Anda memilih bucket, sistem secara otomatis memilih titik akhirnya. Anda dapat memilih Custom Endpoint untuk mengubah alamat titik akhir. Untuk daftar titik akhir OSS berdasarkan wilayah, lihat Regions and endpoints.
CatatanJika bucket dan fungsi Function Compute Anda berada di wilayah yang sama, gunakan titik akhir internal.
Jika bucket berada di wilayah yang berbeda, gunakan titik akhir publik. Hal ini akan dikenai biaya transfer data outbound.
Default Endpoint
Local directory of a function
Tentukan direktori lokal dalam lingkungan runtime fungsi. Direktori tersebut harus merupakan subdirektori dari /home, /mnt, atau /data.
/mnt/oss
Permissions on the local directory of the function
Pilih izin untuk direktori lokal. Anda dapat memilih Read-only atau Read and Write.
Read/write
CatatanFitur pemasangan OSS bergantung pada konfigurasi jaringan fungsi. Jika fungsi Anda dikonfigurasi hanya untuk mengakses VPC dan Allow Default NIC to Access Internet diatur ke No, fungsi tersebut harus dapat mengakses internet melalui VPC yang ditentukan untuk menggunakan endpoint OSS publik. Untuk detailnya, lihat Konfigurasi alamat IP publik statis.
Langkah 2: Akses file di direktori yang dipasang
Setelah Anda mengonfigurasi titik pemasangan OSS, Anda dapat mengakses file di direktori yang dipasang seolah-olah file tersebut bersifat lokal.
Pada halaman detail fungsi, klik tab Code. Tulis kode Anda di editor, lalu klik Deploy.
Kode berikut memberikan contoh.
import os def handler(event, context): # Mount directory mount_path = '/mnt/oss' # List files in the mount directory files = os.listdir(mount_path) print("Files in OSS mount:", files) # Read a specific file from the mount directory 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.") # Write a file to the mount directory 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 yang ada di direktori OSS yang dipasang.Setelah kode dideploy, klik Code pada tab Test Function.
Setelah eksekusi selesai, Anda dapat melihat hasilnya di bagian bawah tab Code. Tab Log Output menampilkan konten file
example.txtyang dibaca dari direktori OSS. Anda juga dapat membuka Konsol OSS untuk memverifikasi bahwa fileoutput.txttelah ditulis ke direktori yang dipasang.
FAQ
Kesalahan pemasangan OSS: bucket not found
Verifikasi bahwa endpoint akses OSS dan nama bucket sudah benar.
Kesalahan pemasangan OSS: host resolv error atau deadline exceeded
Verifikasi bahwa alamat endpoint sudah benar.
host resolv errorterjadi jika alamat endpoint tidak dapat diselesaikan.Titik akhir internal tidak dapat digunakan lintas wilayah. Menggunakan titik akhir internal untuk fungsi di wilayah berbeda menyebabkan timeout koneksi, sehingga muncul kesalahan
deadline exceeded.
Kesalahan pemasangan: invalid credentials
Verifikasi bahwa peran RAM yang dikonfigurasi untuk fungsi Anda memiliki izin yang diperlukan untuk mengakses OSS. Untuk detailnya, lihat Berikan izin fungsi untuk mengakses layanan cloud lain menggunakan peran fungsi. Izin yang diperlukan adalah sebagai berikut:
Read-only: Memerlukan izin
oss:ListObjectsdanoss:GetObject.Read and Write: Memerlukan izin
oss:ListObjects,oss:GetObject,oss:PutObject,oss:DeleteObject,oss:ListParts, danoss:AbortMultipartUpload.
Aksi oss:ListObjects dilakukan di tingkat bucket. Oleh karena itu, saat memberikan akses ke bucket tertentu, kebijakan izin harus mencakup ARN sumber daya di tingkat bucket, seperti acs:oss:*:*:bucketName. Untuk informasi lebih lanjut, lihat OSS Resource.
Input/output error saat membaca file yang dipasang.
Periksa kelas penyimpanan bucket OSS Anda. Jika kelas penyimpanannya Archive atau Cold Archive, objek dalam bucket berada dalam status beku dan harus dipulihkan terlebih dahulu sebelum dapat diakses. Atur kelas penyimpanan bucket OSS Anda ke Standard.
Cara melihat file di direktori lokal
Pada halaman detail fungsi, klik tab Instance. Dalam daftar instance yang berstatus Running, pilih instance dan klik Connect to Instance di kolom Actions.
Setelah terhubung ke instance, Anda dapat menjalankan perintah untuk melihat informasi file di direktori lokal yang dikonfigurasi. Contohnya:

Kesalahan mengakses titik pemasangan: Transport endpoint is not connected
Kesalahan ini terjadi ketika fitur pemasangan OSS gagal karena memori tidak mencukupi, yang mungkin disebabkan oleh spesifikasi memori rendah atau penggunaan memori tinggi. Tingkatkan spesifikasi memori fungsi Anda sesuai kebutuhan bisnis. Disarankan minimal 512 MB saat menggunakan titik pemasangan OSS.
Persistensi data di direktori fungsi
Data yang ditulis ke direktori fungsi akan dihapus saat instance fungsi dihapus. Untuk memastikan persistensi data, Anda dapat memasang sistem file NAS atau bucket OSS. Untuk detailnya, lihat Konfigurasi sistem file NAS dan Konfigurasi pemasangan OSS.
Akses read-only untuk bucket
Akses read/write untuk bucket
Akses read-only untuk subdirektori
Akses read/write untuk subdirektori
File tampak kosong selama operasi penulisan
Saat Anda menulis ke file melalui titik pemasangan OSS, sistem biasanya mengunggah konten ke OSS hanya setelah Anda secara eksplisit memanggil metode flush() atau menutup file.
Kinerja lambat untuk kompresi atau transfer file
OSS tidak mendukung API sistem file secara native. Saat Anda memasang bucket OSS sebagai direktori, Function Compute meniru perilaku API sistem file dengan menggabungkan dan membungkus API OSS. Misalnya, karena OSS tidak mendukung penulisan acak, memodifikasi file yang sudah ada pada titik pemasangan OSS mengharuskan Function Compute untuk mengunduh seluruh file sumber dari OSS, memodifikasinya, lalu mengunggahnya kembali.
Kinerja umumnya baik untuk operasi di mana API sistem file berkorespondensi langsung dengan fungsi API OSS, seperti pembacaan dan penulisan file secara berurutan. Namun, operasi yang memerlukan penggabungan beberapa API OSS, seperti operasi baca/tulis acak yang digunakan dalam kompresi atau dekompresi file, melibatkan banyak interaksi dengan OSS dan karenanya lebih lambat dibandingkan pada sistem file lokal.
Sinkronisasi antar instance fungsi
Tidak. Instance fungsi saling independen, sehingga akses ke titik pemasangan OSS tidak disinkronkan di antara mereka. Misalnya, jika instance A membuat file di titik pemasangan, instance B mungkin tidak langsung melihat file tersebut.