全部产品
Search
文档中心

Function Compute:Gunakan Fungsi Komputasi untuk Mendekompresi Otomatis File di OSS

更新时间:Jul 02, 2025

Anda dapat menerapkan fungsi dengan menggunakan Serverless Devs dan Konsol Fungsi Komputasi dan menggunakan fungsi tersebut untuk mendekompresi otomatis file ZIP yang memenuhi aturan dekompresi setelah file diunggah ke Object Storage Service (OSS).

Catatan Penggunaan

  • Disarankan untuk mengkodekan nama file atau folder dalam UTF-8 atau GB 2312. Jika tidak, nama file atau folder yang didekompresi mungkin rusak, atau proses dekompresi bisa gagal.

  • Saat mengunggah file terkompresi ke Bucket OSS, jangan pilih penyimpanan arsip atau arsip dingin. Jika tidak, fungsi mungkin tidak dapat dieksekusi dengan benar.

  • Disarankan menggunakan utilitas baris perintah zip standar untuk mengompres file guna mencegah kegagalan dekompresi.

  • Ukuran file terkompresi yang ingin Anda unggah ke Bucket OSS harus kurang dari atau sama dengan 1 GB. Jika tidak, file mungkin gagal didekompresi.

  • Waktu untuk mendekompresi file ZIP tidak boleh lebih dari dua jam. Jika file ZIP gagal didekompresi dalam waktu ini, tugas akan dihentikan.

  • Secara default, periode timeout fungsi untuk mendekompresi objek OSS adalah dua jam. Anda dapat menyesuaikan periode timeout sesuai kebutuhan bisnis Anda.

Prosedur

Gunakan Konsol Fungsi Komputasi

Prasyarat

Prosedur

  1. Masuk ke Konsol Fungsi Komputasi. Di panel navigasi kiri, klik Applications.

  2. Di halaman Applications, klik Create Application.

  3. Di halaman Buat Aplikasi, pilih metode pembuatan aplikasi.

    Dalam topik ini, Use a Template to Create an Application dipilih.

  4. Klik tab Template Populer. Pada tab tersebut, gerakkan pointer ke kartu yang digunakan untuk membuat aplikasi untuk mendekompresi otomatis file yang diunggah, seperti start-unzip-oss, dan klik Create Now.

  5. Di halaman Create Application, konfigurasikan parameter dan klik Create and Deploy Default Environment.

    Tabel berikut menjelaskan parameter yang memerlukan pengaturan manual. Pertahankan nilai default untuk parameter lainnya.

    Parameter

    Deskripsi

    Konfigurasi Dasar

    Deployment Type

    Pilih Directly Deploy.

    Role Name

    AliyunFCServerlessDevsRole dipilih secara default. Jika kebijakan yang ada tidak memenuhi persyaratan Anda, klik Add Policy. Dalam kotak dialog yang muncul, pilih kebijakan yang ingin ditambahkan dan klik Add.

    Pengaturan Lanjutan

    Region

    Pilih wilayah tempat Anda ingin menyebarkan aplikasi.

    Service name

    Tetapkan nama layanan tempat aplikasi yang akan dibuat termasuk.

    Function name

    Tetapkan nama fungsi tempat aplikasi yang akan dibuat termasuk.

    RAM's ARN

    Pilih peran yang digunakan untuk memicu fungsi. Pastikan bahwa kebijakan AliyunOSSFullAccess dan AliyunFCDefaultRolePolicy dilampirkan pada peran tersebut.

    OSS bucket name

    Pilih bucket yang sudah ada.

    Prefix

    Tentukan awalan yang terkandung dalam nama file yang diunggah untuk didekompresi. Nilai default adalah src. Jangan tetapkan awalan yang sama untuk dua pemicu di bucket yang sama.

    Decompress destination directory

    Tetapkan direktori tempat file yang didekompresi disimpan. Nilai default adalah dst.

    Catatan

    Untuk mencegah pemicuan loop, atur direktori ini ke nilai yang berbeda dari nilai Prefix.

    Whether to use the compressed file name as the path directory

    Tentukan apakah akan menggunakan nama file terkompresi sebagai nama direktori tempat file yang didekompresi disimpan. Perhatikan item berikut:

    • true: menggunakan nama file terkompresi sebagai nama direktori. Sebagai contoh, Decompress destination directory diatur ke target dan nama file terkompresi adalah source.zip, maka jalur file yang didekompresi adalah target/source/....

    • false: tidak menggunakan nama file terkompresi sebagai nama direktori. Dalam contoh sebelumnya, jalur file yang didekompresi adalah target/....

    Trigger RAM role ARN

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

  6. Uji aplikasi.

    Unggah file ZIP ke direktori yang sesuai dengan Prefix yang ditentukan. Fungsi terkait dipicu untuk mendekompresi file ke direktori yang ditentukan oleh parameter Decompress destination directory.

    Sebagai contoh, jika Anda mengatur Prefix ke source, mengatur Decompression Destination Directory ke target, ketika Anda mengunggah file ZIP ke source atau source1, fungsi dipicu untuk mendekompresi file ke target.

(Disarankan) Gunakan Serverless Devs

Prasyarat

Prosedur

  1. Jalankan perintah berikut untuk mengunduh proyek demo:

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

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

    • Ubah nilai parameter bucketName dari your-bucket menjadi nama bucket yang Anda buat.

    • (Opsional) Modifikasi nilai parameter Prefix, Suffix, dan PROCESSED_DIR untuk pemicu OSS.

    Catatan

    Dalam contoh ini, src/ adalah awalan pemicu OSS. Anda dapat mengatur parameter Awalan ke src. Secara default, file yang didekompresi disimpan di dst/.

  4. Jalankan perintah berikut untuk menyebarkan proyek:

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

    Contoh keluaran:

     Memeriksa Layanan, Fungsi, Pemicu (18.63s)
     Membuat Layanan, Fungsi, Pemicu (13.44s)
    
    Ada konfigurasi otomatis dalam layanan: enhancedInstance-decompress
    
    Tips untuk langkah selanjutnya
    ======================
    * Tampilkan informasi sumber daya yang diterapkan: s info
    * Tampilkan metrik: s metrics
    * Tampilkan log: s logs
    * Panggil fungsi jarak jauh: s invoke
    * Hapus Layanan: s remove service
    * Hapus Fungsi: s remove function
    * Hapus Pemicu: s remove trigge
    * Hapus Domain Kustom: 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 dengan ekstensi .zip, .tar, atau .gz ke direktori yang ditentukan di bucket dan picu fungsi untuk mendekompresi file tersebut.

    Dalam contoh ini, direktori default adalah src/. File yang didekompresi secara otomatis dihasilkan di direktori yang ditentukan dst/.

Referensi