Terapkan fungsi PHP dengan dependensi pihak ketiga ke Function Compute dengan mengemas kode Anda dan direktori vendor ke dalam file ZIP. Panduan ini menggunakan Nette\Utils sebagai contoh dependensi dan mencakup dua metode penerapan: Composer melalui Konsol Function Compute dan Serverless Devs.
Persiapkan kode Anda
Siapkan direktori kode lokal yang berisi penanganan fungsi sebelum menerapkan.
Buat direktori bernama
mycodeuntuk kode fungsi Anda.Linux dan macOS: Jalankan
mkdir -p /tmp/mycode.Windows: Buat folder bernama
mycode.
Di direktori
mycode, buat fileindex.phpdengan konten berikut:<?php require_once __DIR__ . '/vendor/autoload.php'; use Nette\Utils\Arrays; function handler($event, $context) { return Arrays::contains([1, 2, 3], 1); }
Metode 1: Gunakan Composer
Instal dependensi secara lokal dengan Composer, kemas kode ke dalam file ZIP, lalu unggah melalui Konsol Function Compute.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menginstal PHP dan Composer serta memiliki izin untuk menjalankan perintah Composer. Lihat Composer untuk petunjuk instalasi.
(Opsional) Membuat fungsi PHP di Konsol Function Compute. Lihat Buat fungsi event.
Instal dependensi dan terapkan
Di direktori
mycode, buat filecomposer.json:{ "require": { "nette/utils": "v3.2.5" } }Di direktori
mycode, jalankancomposer installuntuk menginstal dependensi. Setelah perintah selesai, Composer membuat filecomposer.lockdan direktorivendordi dalammycode. Dependensi yang diunduh disimpan di direktorivendor.Kemas semua file di dalam direktori
mycodeke dalam file ZIP.Linux dan macOS: Masuk ke direktori
mycodedan jalankan:zip code.zip -r ./*Catatan: Pastikan Anda memiliki izin baca dan tulis pada direktori tersebut.
Windows: Buka direktori
mycode, pilih semua file, klik kanan, lalu kompres menjadi file ZIP.
Catatan: Pastikan file
index.phpberada di direktori root paket.Di Konsol Function Compute, buka fungsi yang ingin Anda perbarui. Di pojok kanan atas halaman detail fungsi, klik Upload Code dan pilih file ZIP tersebut. Atau, unggah file ZIP saat membuat fungsi. Lihat Buat fungsi event.
Di tab Code pada halaman detail fungsi, klik Test Function untuk memverifikasi penerapan.
Metode 2: Gunakan Serverless Devs
Gunakan Serverless Devs dengan Docker untuk membangun dan menerapkan fungsi Anda tanpa perlu mengelola file ZIP secara manual.
Prasyarat
Sebelum memulai, pastikan Anda telah menyelesaikan langkah-langkah berikut:
Instal dependensi dan terapkan
Di direktori
mycode, buat files.yamldengan konten berikut:edition: 3.0.0 name: fcDeployApp access: "default" vars: # Variabel global. region: "cn-hangzhou" resources: hello_world: component: fc3 # Nama komponen. props: region: ${vars.region} # Untuk informasi tentang cara menggunakan variabel, kunjungi https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC. functionName: "testphp" description: 'this is a test' runtime: "php7.2" code: ./ handler: index.handler memorySize: 128 timeout: 30Di direktori
mycode, buat filecomposer.json:{ "require": { "nette/utils": "^3.0" } }Jalankan perintah berikut untuk menginstal dependensi di dalam kontainer Docker yang sesuai dengan lingkungan runtime Function Compute:
sudo s build --use-dockerSetelah perintah selesai, Serverless Devs menginstal dependensi dan kode ke dalam direktori
./vendor.Jalankan perintah berikut untuk menerapkan fungsi:
sudo s deploySetelah perintah selesai, fungsi Anda diterapkan ke Function Compute.
Langkah selanjutnya
Untuk mengelola dependensi tanpa harus mengemasnya dalam setiap penerapan, gunakan layer Function Compute. Lihat Buat layer kustom.