Object Storage Service (OSS) adalah layanan penyimpanan cloud yang aman, hemat biaya, dan sangat andal. OSS memungkinkan Anda menyimpan sejumlah besar data di cloud. Anda dapat memasang bucket OSS ke layanan Function Compute, sehingga fungsi dalam layanan tersebut dapat mengakses bucket OSS seperti mengakses sistem file lokal. Hal ini menyederhanakan akses sumber daya dan pemrosesan data.
Batasan
Anda dapat mengonfigurasi maksimal lima target pemasangan File Storage NAS (NAS) dan lima target pemasangan OSS untuk layanan di Function Compute di suatu wilayah.
Direktori lokal dalam waktu proses fungsi dari target pemasangan NAS tidak boleh sama dengan direktori lokal dalam waktu proses fungsi dari target pemasangan OSS.
Untuk informasi lebih lanjut tentang cara mengonfigurasi target pemasangan NAS, lihat Konfigurasikan Sistem File NAS.
Sebelum Anda mulai
OSS
Function Compute
Buat layanan. Untuk informasi lebih lanjut, lihat Buat Layanan.
Konfigurasikan izin untuk peran layanan. Saat mengaktifkan fitur pemasangan OSS, Anda perlu mengonfigurasi peran dengan izin pada OSS untuk layanan di Function Compute. Untuk informasi lebih lanjut, lihat Berikan Izin Function Compute untuk Mengakses Layanan Alibaba Cloud Lainnya.
Prosedur
Langkah 1: Konfigurasikan pemasangan OSS
Setelah target pemasangan OSS dikonfigurasi untuk layanan di Function Compute, 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 dan klik Configure di kolom Actions.
Di bagian Storage Configuration pada halaman Modifikasi Layanan, konfigurasikan parameter berikut dan klik Save.
Parameter
Deskripsi
Contoh
Mount OSS
Tentukan apakah akan mengaktifkan pemasangan OSS. Nilai valid:
Enable
Disable
Aktifkan
OSS Mount Target: Konfigurasikan target pemasangan OSS.
Bucket
Pilih bucket yang ada. Untuk membuat bucket OSS, klik Create OSS Bucket di bagian bawah halaman untuk pergi ke Konsol OSS. Untuk informasi lebih lanjut tentang penagihan OSS, lihat Penagihan.
example-bucket
Bucket Subdirectory
Tentukan jalur absolut sebagai subdirektori di bucket. Jika Anda membiarkan parameter ini kosong atau menyetel parameter ini ke /, direktori root bucket dipasang.
/files
OSS Endpoint
Tentukan titik akhir. Secara default, titik akhir bucket digunakan. Anda dapat memilih Custom Endpoint untuk menentukan titik akhir kustom. Untuk informasi lebih lanjut tentang titik akhir OSS di berbagai wilayah, lihat Wilayah dan titik akhir.
CatatanJika Anda memilih bucket yang berada di wilayah yang sama dengan layanan di Function Compute, kami sarankan Anda menggunakan titik akhir OSS internal.
Jika Anda memilih bucket yang berada di wilayah berbeda, Anda harus menggunakan titik akhir publik. Dalam hal ini, Anda akan dikenakan biaya untuk data yang ditransfer melalui Internet.
Titik Akhir Default
Local Function Directory
Tentukan direktori lokal fungsi. Direktori tersebut harus merupakan subdirektori dari /home, /mnt, atau /data.
CatatanAnda tidak perlu secara manual membuat direktori lokal fungsi. Anda dapat langsung menggunakan direktori yang ada.
/mnt/oss
Permissions on Local Function Directory
Tentukan izin pada direktori setelah bucket dipasang ke direktori lokal fungsi. Anda dapat memilih Read-only atau Read and Write.
Baca dan Tulis
CatatanFitur pemasangan OSS bergantung pada pengaturan jaringan layanan. Jika Anda menyetel Access to VPC ke Yes dan Access to Internet ke No, Anda harus menggunakan titik akhir OSS publik agar fungsi dapat mengakses Internet melalui VPC yang ditentukan. Untuk informasi lebih lanjut, lihat Konfigurasikan Alamat IP Publik Statis.
Langkah 2: Buat fungsi dan tulis kode untuk mengakses direktori OSS yang dipasang
Setelah memasang bucket OSS, Anda dapat melakukan langkah-langkah berikut untuk mengakses file di direktori OSS yang dipasang seperti mengakses file lokal:
Di halaman Create Function, konfigurasikan parameter berikut. Pertahankan nilai default untuk parameter lainnya dan klik Create.
Metode pembuatan fungsi: Use Built-in Runtime.
Basic Settings: Konfigurasikan Function Name dan atur Handler Type ke Event Handler.
Code: Atur Runtime ke Python 3.10 dan Code Upload Method ke Use Sample Code.
Di halaman detail fungsi, klik tab Code, tulis kode di editor kode, lalu klik Deploy.
Contoh kode berikut memberikan contoh cara menulis kode fungsi dalam Python:
import os def handler(event, context): # Direktori terpasang. mount_path = '/mnt/oss' # Daftar file di direktori terpasang. files = os.listdir(mount_path) print("File di OSS mount:", files) # Baca file di direktori terpasang. 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("Isi dari example.txt:", content) else: print("example.txt tidak ada.") # Tulis file ke direktori terpasang. write_path = os.path.join(mount_path, 'output.txt') with open(write_path, 'w') as file: file.write("Halo, OSS mount!") print("Menulis ke output.txt di OSS mount.") return "Eksekusi fungsi selesai."CatatanGanti
example.txtdengan nama file yang ada di direktori terpasang.Setelah kode diterapkan, klik Test Function di tab Code.
Setelah eksekusi selesai, Anda dapat melihat hasil eksekusi di bagian bawah tab Code. Di tab Log Output, Anda dapat melihat isi file yang dibaca (dalam contoh ini,
example.txt) di direktori. Anda juga dapat melihat isi file yang ditulis (dalam contoh ini,output.txt) di direktori.
FAQ
Apa yang harus saya lakukan jika pemasangan OSS gagal dan kesalahan bucket not found dilaporkan?
Periksa apakah titik akhir OSS dan nama bucket sudah benar.
Apa yang harus saya lakukan jika pemasangan OSS gagal dan kesalahan host resolv error atau deadline exceeded dilaporkan?
Periksa apakah titik akhir telah dikonfigurasi dengan benar.
host resolv errordilaporkan jika nama domain di titik akhir gagal diselesaikan.Titik akhir internal tidak dapat digunakan lintas wilayah. Jika Anda menggunakan titik akhir internal di wilayah lain, kesalahan timeout koneksi terjadi dan kesalahan
deadline exceededdilaporkan.
Apa yang harus saya lakukan jika pemasangan OSS gagal dan kesalahan invalid credentials dilaporkan?
Periksa apakah peran RAM yang Anda konfigurasikan untuk layanan memiliki izin pada OSS. Item berikut menjelaskan izin tersebut. Untuk informasi lebih lanjut, lihat Berikan Izin Function Compute untuk Mengakses Layanan Alibaba Cloud Lainnya.
Read-only:
oss:ListObjectsdanoss:GetObject.Read and write:
oss:ListObjects,oss:GetObject,oss:PutObject,oss:DeleteObject,oss:ListParts, danoss:AbortMultipartUpload.
oss:ListObjects adalah tindakan tingkat bucket. Jika Anda mengaktifkan akses ke bucket tertentu, kebijakan tersebut harus mencakup indikasi sumber daya tingkat bucket, seperti acs:oss:*:*:bucketName. Untuk informasi lebih lanjut, lihat Elemen Sumber Daya dalam Kebijakan RAM untuk OSS.
Apa yang harus saya lakukan jika Input/output error dilaporkan saat saya membaca file di direktori terpasang?
Periksa kelas penyimpanan bucket OSS yang Anda konfigurasikan. Jika kelas penyimpanannya adalah Arsip atau Penyimpanan Arsip Dingin, semua objek yang disimpan di bucket tersebut dibekukan dan hanya dapat diakses setelah dibuka kembali. Kami sarankan Anda menyetel kelas penyimpanan bucket OSS ke Standar.
Bagaimana cara melihat file di direktori lokal fungsi saya?
Di halaman detail fungsi, klik Instances untuk melihat instans yang berada dalam status Running. Temukan instans yang diinginkan dan klik Log On di kolom Actions.

Setelah Anda terhubung ke instans, Anda dapat menjalankan perintah untuk melihat file di direktori lokal fungsi. Gambar berikut menunjukkan contoh keluaran perintah.

Apa yang harus saya lakukan jika kesalahan Transport endpoint is not connected dilaporkan saat saya mengakses target pemasangan di instans fungsi.
Kesalahan ini dapat terjadi jika fitur pemasangan OSS tidak tersedia karena memori tidak mencukupi, yang mungkin disebabkan oleh spesifikasi memori rendah atau penggunaan memori yang besar. Kami menyarankan Anda meningkatkan spesifikasi memori fungsi sesuai dengan kebutuhan bisnis Anda. Atur kapasitas memori ke nilai lebih besar dari atau sama dengan 512 MB saat menggunakan target pemasangan OSS.
Apakah data yang ditulis ke direktori lokal fungsi disimpan secara permanen?
Tidak, ketika instans fungsi dihapus, data yang ditulis oleh instans tersebut di direktori juga dihapus. Jika Anda ingin data disimpan secara permanen, kami sarankan Anda memasang sistem file, seperti sistem file NAS atau bucket OSS. Untuk informasi lebih lanjut, lihat Konfigurasikan Sistem File NAS dan Konfigurasikan Sistem File OSS.
Bagaimana cara menggunakan kebijakan izin untuk mengizinkan hanya akses baca saja ke bucket tertentu?
Bagaimana cara menggunakan kebijakan izin untuk mengizinkan akses baca dan tulis ke bucket tertentu?
Bagaimana cara menggunakan kebijakan izin untuk mengizinkan hanya akses baca saja ke subdirektori bucket tertentu?
Bagaimana cara menggunakan kebijakan izin untuk mengizinkan akses baca dan tulis ke subdirektori bucket tertentu?
Apa yang harus saya lakukan jika saya tidak dapat melihat data yang saya tulis dari target pemasangan OSS di OSS?
Saat Anda menulis file dari target pemasangan OSS, sistem hanya mengunggah konten ke OSS saat Anda memanggil operasi Flush atau menutup file.
Apa yang harus saya lakukan jika operasi seperti kompresi, dekompresi, dan transmisi file di target pemasangan OSS lambat?
OSS tidak mendukung API sistem file. Setelah Anda memasang bucket OSS sebagai direktori, Function Compute membungkus API OSS untuk mengimplementasikan API sistem file. Misalnya, OSS tidak mendukung penulisan acak. Jika Anda perlu menggunakan API sistem file untuk mengubah file yang ada pada target pemasangan OSS, Function Compute mengunduh file sumber dari OSS, menulis ulang file tersebut, lalu mengunggahnya kembali ke OSS.
Ketika fitur API sistem file sesuai dengan fitur API OSS, seperti fitur pembacaan dan penulisan file berurutan, kinerja operasi umum biasanya lebih baik. Namun, untuk operasi yang memerlukan penggabungan dan pembungkusan API OSS, seperti operasi baca dan tulis acak pada file selama kompresi dan dekompresi, beberapa interaksi dengan OSS mungkin diperlukan. Oleh karena itu, kinerjanya sedikit lebih rendah dibandingkan dengan sistem file lokal.
Apakah operasi disinkronkan di antara instans fungsi pada target OSS yang sama?
Tidak. Instans fungsi berdiri sendiri satu sama lain. Konten target pemasangan OSS yang diakses oleh instans berbeda mungkin berbeda. Misalnya, ketika Instans A membuat file F di target pemasangan OSS, Instans B mungkin tidak dapat mengakses file tersebut segera.