Kemas kode Python beserta dependensi pihak ketiganya dan terapkan ke Function Compute. Panduan ini menggunakan library emoji sebagai contoh.
Pilih metode penerapan
| Metode | Paling cocok untuk |
|---|---|
| pip + unggah melalui konsol | Paket Python murni tanpa ekstensi native (C/C++) |
| Serverless Devs | Paket yang memiliki ekstensi biner native, atau saat Anda menginginkan alur kerja CLI yang dapat diulang |
Function Compute berjalan di Linux. Jika suatu paket menginstal file biner native (ekstensi C/C++ yang dikompilasi), menginstalnya di Windows atau macOS lalu mengunggah file ZIP tersebut akan menyebabkan error saat eksekusi. Disarankan menggunakan WebIDE atau Serverless Devs untuk menginstal library dependensi. Untuk informasi lebih lanjut, lihat Gunakan WebIDE untuk mengemas dependensi pihak ketiga suatu fungsi dan Terapkan dengan Serverless Devs.
Siapkan proyek contoh
Sebelum memilih metode penerapan, buat file proyek yang digunakan sepanjang panduan ini.
Buat direktori kerja bernama
mycode.Linux atau macOS: Jalankan
mkdir -p /tmp/mycodeWindows: Buat folder bernama
mycode
Di direktori
mycode, buat fileindex.pydengan konten berikut:from emoji import emojize def handler(event, context): return emojize(":thumbs_up:")
Terapkan dengan pip dan konsol
Prasyarat
Sebelum memulai, pastikan Anda telah:
Python 3 dan pip3 telah terinstal di komputer Anda.
Membuat fungsi Python di Konsol Function Compute. Untuk detailnya, lihat Buat fungsi
Instal dependensi dan kemas kode
Di direktori
mycode, instal paketemojike direktori saat ini:pip3 install emoji -t ./Buat file ZIP dari isi direktori
mycode.Untuk Linux atau macOS
Masuk ke direktori
mycodedan jalankan:zip code.zip -r ./*CatatanPastikan Anda memiliki izin baca dan tulis pada direktori tersebut.
Windows: Buka folder
mycode, pilih semua file, klik kanan, lalu kompres menjadi file ZIP.
Unggah paket kode
Di Konsol Function Compute, buka halaman detail fungsi dan klik Upload Code di pojok kanan atas. Pilih file ZIP yang dibuat pada langkah sebelumnya.
Terapkan dengan Serverless Devs
Serverless Devs membangun dependensi di dalam kontainer Docker berbasis Linux, sehingga menjadi pilihan tepat ketika paket Anda mencakup ekstensi biner native atau saat Anda menginginkan proses build yang dapat diulang.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Konfigurasi dan terapkan
Masuk ke direktori
mycode:cd /tmp/mycodeBuat file
s.yamldengan konten berikut:edition: 1.0.0 # Versi spesifikasi YAML, mengikuti semantic versioning name: fcDeployApp # Nama proyek access: "default" # Alias kunci services: fc-deploy-test: # Nama layanan component: fc # Nama komponen props: # Properti komponen region: cn-shanghai service: name: fctest description: 'test' internetAccess: true function: name: emoji description: this is a emoji runtime: python3 codeUri: ./ handler: index.handler memorySize: 128 timeout: 6Buat file
requirements.txtdengan konten berikut:emoji==2.0.0Bangun proyek di dalam kontainer Docker untuk menghasilkan artefak yang kompatibel dengan Linux:
s build --use-dockerSetelah proses build selesai, dependensi akan diinstal di
.s/build/artifacts/{serviceName}/{functionName}/di dalam direktorimycode.Terapkan fungsi ke Function Compute:
s deploy
Langkah selanjutnya
Layer merupakan alternatif untuk menggabungkan dependensi dalam setiap paket kode. Tambahkan library yang umum digunakan sebagai layer agar beberapa fungsi dapat membaginya tanpa duplikasi.