All Products
Search
Document Center

Function Compute:Mendekompresi file di OSS secara otomatis dengan Function Compute

Last Updated:Mar 25, 2026

Tutorial ini menjelaskan cara menerapkan fungsi menggunakan Serverless Devs atau Konsol Function Compute. Mengunggah file ZIP yang sesuai dengan aturan tertentu ke Object Storage Service (OSS) akan memicu fungsi untuk mendekompresi file tersebut secara otomatis.

Catatan penggunaan

  • Gunakan encoding UTF-8 atau GB 2312 untuk nama file dan folder Anda. Jika tidak, nama file atau folder hasil dekompresi mungkin menjadi rusak (garbled) atau proses dekompresi dapat terganggu.

  • Saat mengunggah file terkompresi ke bucket, jangan memilih tipe penyimpanan arsip atau cold archive storage. Jika dipilih, fungsi tidak akan terpicu.

  • Gunakan alat baris perintah ZIP standar untuk membuat file terkompresi guna mencegah kegagalan dekompresi.

  • Setiap file dalam arsip terkompresi tidak boleh melebihi 1 GB. Jika melebihi, dekompresi mungkin gagal.

  • Batas waktu untuk mendekompresi satu arsip adalah 2 jam. Tugas yang melebihi batas ini akan gagal.

  • Batas waktu eksekusi default untuk fungsi adalah 2 jam. Anda dapat menyesuaikan timeout ini sesuai kebutuhan bisnis Anda.

Cara kerja

image

Otomatisasi dekompresi dengan Konsol Function Compute

Prasyarat

Prosedur

  1. Masuk ke Konsol Function Compute. Pada panel navigasi di sebelah kiri, klik Applications.

  2. Pada halaman Applications, klik Create Application.

  3. Pada halaman Create Application, pilih metode untuk membuat aplikasi.

    Tutorial ini menunjukkan opsi Use a Template to Create an Application.

  4. Di bagian templat, pilih tab Hot Templates. Temukan kartu start-unzip-oss, arahkan kursor ke atasnya, lalu klik Create Now.

  5. Pada halaman Create Application, konfigurasikan parameter berikut, lalu klik Create and Deploy Default Environment.

    Tabel berikut menjelaskan parameter utama. Anda dapat menggunakan nilai default untuk parameter lainnya.

    Parameter

    Deskripsi

    Konfigurasi dasar

    Deployment Type

    Pilih Directly Deploy.

    Role Name

    Nilai default adalah AliyunFCServerlessDevsRole. Jika izin saat ini tidak mencukupi, klik Add Policy, pilih kebijakan di kotak dialog, lalu klik Add.

    Pengaturan lanjutan

    Region

    Pilih wilayah tempat Anda ingin menerapkan aplikasi.

    Service name

    Tentukan nama layanan untuk aplikasi.

    Function name

    Tentukan nama fungsi untuk aplikasi.

    RAM role ARN

    Pilih peran yang digunakan OSS untuk memicu fungsi. Pastikan peran tersebut memiliki kebijakan izin AliyunOSSFullAccess dan AliyunFCDefaultRolePolicy yang dilampirkan.

    OSS bucket name

    Pilih bucket yang sudah ada.

    Prefix

    Tetapkan awalan file. Nilai default adalah src. Pemicu berbeda dalam bucket yang sama tidak boleh memiliki awalan file yang sama.

    Decompress destination directory

    Tentukan direktori tujuan untuk file hasil dekompresi. Nilai default adalah dst.

    Catatan

    Untuk mencegah loop pemicu, pastikan direktori ini berbeda dari Prefix.

    Keep file name as directory

    Menentukan apakah akan membuat subdirektori yang dinamai sesuai file terkompresi. Nilai yang valid:

    • true: Mempertahankan nama file terkompresi sebagai direktori dalam jalur tujuan. Misalnya, jika decompress destination directory adalah target dan nama file terkompresi adalah source.zip, maka jalur file setelah dekompresi adalah target/source/....

    • false: Mengekstrak file langsung ke direktori target. Dalam contoh sebelumnya, jalur file setelah ekstraksi adalah target/....

    Trigger RAM role ARN

    Nilai default adalah AliyunOSSEventNotificationRole. OSS menggunakan peran ini untuk mengirim notifikasi event guna memanggil fungsi.

  6. Uji aplikasi.

    Mengunggah file .zip ke jalur yang diawali dengan Prefix yang ditentukan akan memicu fungsi aplikasi, yang secara otomatis mendekompresi file tersebut dan menyimpan hasilnya ke Decompress destination directory yang ditentukan.

    Sebagai contoh, jika Anda menetapkan prefix ke source dan decompress destination directory ke target, maka saat Anda mengunggah file .zip ke source atau source1, fungsi akan terpicu dan file tersebut secara otomatis didekompresi serta disimpan ke target.

(Direkomendasikan) Otomatisasi dekompresi dengan Serverless Devs

Prasyarat

Prosedur

  1. Jalankan perintah berikut untuk mengkloning proyek contoh:

    git clone git@github.com:awesome-fc/decompress-oss.git
  2. Jalankan perintah berikut untuk masuk ke direktori proyek:

    cd decompress-oss
  3. Edit konfigurasi dalam file s.yaml dan simpan file tersebut.

    • Dalam file tersebut, ubah nilai parameter bucketName dari your-bucket menjadi nama bucket yang telah Anda buat.

    • Opsional: Ubah parameter untuk awalan pemicu OSS Prefix, akhiran Suffix, dan direktori penyimpanan file hasil dekompresi PROCESSED_DIR sesuai kebutuhan.

    Catatan

    Dalam contoh ini, awalan pemicu OSS secara default adalah src/, tetapi Anda juga dapat mengaturnya menjadi src. Direktori tujuan untuk file hasil dekompresi secara default adalah dst/.

  4. Jalankan perintah berikut untuk menerapkan proyek:

    sudo s fc-decompress-oss-invoke-fc-EnhancedInstance deploy -y

    Contoh output:

     Checking Service, Function, Triggers (18.63s)
     Creating Service, Function, Triggers (13.44s)
    
    There is auto config in the service: enhancedInstance-decompress
    
    Tips for next step
    ======================
    * Display information of the deployed resource: s info
    * Display metrics: s metrics
    * Display logs: s logs
    * Invoke remote function: s invoke
    * Remove Service: s remove service
    * Remove Function: s remove function
    * Remove Trigger: s remove trigger
    * Remove CustomDomain: s remove domain
    
    
    fc-decompress-oss-invoke-fc-EnhancedInstance:
      region:   cn-hangzhou
      service:
        name: enhancedInstance-decompress
      function:
        name:       oss-invoke-fc
        runtime:    python3
        handler:    index.handler
        memorySize: 4096
        timeout:    7200
      triggers:
        -
          type: oss
          name: zip-t
        -
          type: oss
          name: gz-t
        -
          type: oss
          name: tar-t
  5. Unggah file terkompresi, seperti file .zip, .tar, atau .gz, ke direktori yang ditentukan dalam bucket untuk memicu fungsi dekompresi.

    Dalam contoh ini, direktori default adalah src/, dan file hasil ekstraksi secara otomatis dibuat di dst/.

Referensi