Object Storage Service (OSS) terintegrasi dengan Function Compute, memungkinkan Anda membangun berbagai aplikasi dan fungsi. Topik ini menjelaskan cara menggunakan Function Compute untuk mengemas beberapa objek OSS ke dalam satu file ZIP guna diunduh ke lokal.
Prasyarat
-
Function Compute telah diaktifkan.
Anda dapat mengaktifkan Function Compute di halaman detail produk Function Compute.
-
Anda harus memberikan izin kepada Function Compute untuk mengakses OSS.
Untuk informasi lebih lanjut, lihat Berikan izin Function Compute untuk mengakses layanan Alibaba Cloud lainnya.
-
Bucket dan fungsi aplikasi harus berada di wilayah yang sama.
-
Anda harus mengunggah beberapa objek ke direktori tertentu dalam bucket. Tutorial ini menggunakan direktori
dir/di bucketexamplebucketdi wilayah Tiongkok (Hangzhou) sebagai contoh. Untuk informasi lebih lanjut, lihat Unggahan sederhana. -
Anda harus membuat peran RAM untuk layanan Function Compute dan mencatat ARN-nya. Untuk informasi lebih lanjut, lihat Buat peran RAM untuk akun Alibaba Cloud tepercaya.
Cara kerja
Mengunduh banyak objek dari OSS sekaligus—terutama jika jumlahnya banyak dan ukurannya kecil—bisa lambat dan merepotkan. Dengan menggunakan Function Compute, Anda dapat mengemas objek-objek tersebut di OSS terlebih dahulu, mengunduh paket terkompresi ke komputer lokal, lalu mengekstraknya. Metode ini memungkinkan pengunduhan massal yang lebih cepat. Alur kerja penggunaan Function Compute untuk mengemas dan mengunduh objek OSS ditunjukkan pada gambar berikut.
-
Pengguna memanggil fungsi dan menentukan bucket serta objek yang akan dikompresi.
-
Function Compute mengunduh objek yang ditentukan dari OSS dan menghasilkan paket ZIP dengan nama acak.
-
Function Compute mengunggah paket ZIP ke OSS.
-
Function Compute mengembalikan URL unduhan paket ZIP kepada pengguna.
-
Pengguna mengunduh file dari OSS menggunakan URL unduhan permanen yang dikembalikan.
Catatan penggunaan
-
Ruang disk di lingkungan runtime fungsi terbatas. Oleh karena itu, fungsi melakukan streaming data baik saat mengunduh maupun mengunggah agar hanya menyimpan sedikit data di memori.
-
Untuk mempercepat proses, Function Compute mengunggah file ZIP ke OSS secara bersamaan saat file tersebut sedang dibuat.
-
Saat mengunggah file ZIP ke OSS, fungsi menggunakan fitur unggah multi-bagian (multipart upload) OSS untuk mengunggah bagian-bagian secara konkuren melalui beberapa thread.
-
Waktu pemrosesan maksimum untuk mengompresi file menggunakan Function Compute adalah 24 jam. (Data uji: 57 objek dengan ukuran total 1,06 GB diproses dalam 63 detik).
Prosedur
Contoh ini menjelaskan cara menggunakan Function Compute untuk mengemas dan mengunduh beberapa objek dari direktori dir/ di bucket examplebucket di wilayah Tiongkok (Hangzhou) ke komputer lokal.
-
Lakukan penerapan aplikasi dan peroleh nama domain publiknya.
Penerapan satu klik dengan ROS
Gunakan Resource Orchestration Service (ROS) untuk menerapkan aplikasi Function Compute dalam satu klik.
-
Pada tab Configure Parameters, pertahankan pengaturan default untuk semua parameter lalu klik Next: Check and Confirm.
-
Pada tab Check and Confirm, klik Create.
Status pada tab Stack Information menampilkan Creating.
-
Ketika Status stack berubah menjadi Create_Success, klik tab Outputs untuk menemukan nama domain publik.
Penerapan satu klik dengan Serverless Application Center
-
Terapkan templat aplikasi start-zip-oss dari Serverless Application Center.
Pada halaman Create Application, templat aplikasi adalah
start-zip-oss, dan jenis penerapan adalah Directly Deploy. Konfigurasikan parameter utama berikut:-
Nama Aplikasi:
start-zip-oss-obvr -
Nama Peran: AliyunFCServerlessDevsRole. Kebijakan yang dilampirkan mencakup AliyunOSSReadOnlyAccess dan AliyunFCFullAccess.
-
Status Layanan: Function Compute dan Object Storage Service (OSS) keduanya telah diaktifkan.
-
Pengaturan Lanjutan: Pilih wilayah Tiongkok (Hangzhou). Atur nama layanan menjadi
zip-oss, nama fungsi menjadizip-oss-func, dan ARN peran RAM menjadi AliyunFcDefaultRole (kebijakan terlampir: AliyunOSSFullAccess dan AliyunFCDefaultRolePolicy).
Setelah konfigurasi selesai, klik Create and Deploy Default Environment.
-
-
Peroleh nama domain publik.
-
Klik tab Result.
-
Pada bidang triggers, peroleh nama domain publik (urlInternet).
fc zip oss service. service: role: acs:ram::1379186349xxx:role/aliyunfcdefaultrole internetAccess: true name: zip-oss description: zip oss sample function: handler: main.main_handler initializationTimeout: 3 memorySize: 3072 instanceType: e1 name: zip-oss-func runtime: python2.7 description: This is default function description by fc-deploy component timeout: 1800 instanceConcurrency: 1 region: cn-hangzhou triggers: - urlInternet: https://zip-oss-func-zip-oss-ayouyexxx.cn-hangzhou.fcapp.run name: http-test type: http config: methods: - GET - POST - PUT authType: anonymous
-
Manual dengan CLI Serverless Devs
-
Instal Serverless Devs.
npm install -g @serverless-devs/sVerifikasi instalasi.
s -vOutput berikut menunjukkan instalasi berhasil:
@serverless-devs/s: 2.1.1, s-home: /root/.s, linux-x64, node-v14.19.3 -
Konfigurasikan Serverless Devs.
s config add --AccessKeyID LTAI******** --AccessKeySecret KZo1******** --access fc-accessTabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
--AccessKeyID
ID AccessKey untuk mengakses Function Compute.
--AccessKeySecret
Secret AccessKey untuk mengakses Function Compute.
--access
Alias kustom untuk kredensial.
-
Terapkan templat aplikasi start-zip-oss.
-
Inisialisasi proyek.
-
Tentukan nilai untuk item konfigurasi berdasarkan contoh berikut.
-
Masuk ke direktori proyek.
-
Lakukan penerapan proyek.
-
Catat
system_urldari output.
s init start-zip-oss -d start-zip-ossParameter
Contoh
Wilayah tempat aplikasi berada
cn-hangzhou
Layanan Function Compute tempat aplikasi berada
start-zip-oss
Nama fungsi aplikasi
zip-oss-func
ARN peran RAM yang dikonfigurasi untuk layanan Function Compute tempat aplikasi berada
acs:ram::137918634953****:role/test-role
cd start-zip-osss deploy -yfc-zip-oss-service: region: cn-hangzhou service: name: start-zip-oss function: name: zip-oss-func runtime: python2.7 handler: main.main_handler memorySize: 3072 timeout: 1800 url: system_url: https://zip-oss-func-start-zip-oss-ayouye****.cn-hangzhou.fcapp.run triggers: - type: http name: http-test -
-
Di server atau Instance ECS Anda, jalankan perintah berikut untuk membuat file
event.json. Di dalam file tersebut, tentukan nama bucket dan direktori yang berisi objek yang akan diunduh.cat <<EOF > event.json { "bucket": "examplebucket", "source-dir": "dir/" } EOFCatatanParameter
source-dirharus berupa direktori di dalam bucket; direktori root tidak didukung. -
Perintah berikut merupakan contoh permintaan.
curl -v -L -o oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run-
oss.zip: Jalur lokal tempat paket ZIP yang diunduh disimpan.CatatanJika alat dekompresi bawaan Windows gagal, gunakan alat pihak ketiga seperti 7-Zip atau WinRAR.
-
https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run:system_urlyang dikembalikan saat Anda menerapkan proyek.
Untuk memanggil fungsi HTTP ini dengan autentikasi alih-alih secara anonim, gunakan salah satu SDK berikut:
-
FAQ
Menambahkan Watermark
URL unduhan berbatas waktu
Referensi
-
Untuk informasi lebih lanjut tentang fitur dan penagihan Function Compute, lihat Apa itu Function Compute? dan Ikhtisar penagihan.
-
Untuk templat dan aplikasi contoh yang menunjukkan integrasi Function Compute dan OSS, lihat Kode contoh.
-
Untuk contoh lain penggunaan Function Compute dengan OSS, lihat Gunakan Function Compute untuk secara otomatis mengekstrak file ZIP di OSS.