Dalam runtime native, Function Compute secara otomatis menambahkan direktori layer ke jalur pencarian dependensi. Di custom runtime, meskipun beberapa bahasa dan versi didukung—termasuk Python, Node.js, Java, dan PHP—Anda harus menambahkan direktori layer ke jalur pencarian secara manual, baik melalui variabel lingkungan dalam konfigurasi fungsi maupun melalui kode di file entri.
Topik ini mencakup Python, Node.js, Java, dan PHP.
Direktori layer default
Saat Anda membuat file ZIP layer mengikuti struktur yang dijelaskan dalam Create a custom layer, Function Compute men-deploy konten layer ke direktori default berikut:
| Bahasa | Direktori default | Variabel lingkungan |
|---|---|---|
| Python | /opt/python | PYTHONPATH |
| Node.js | /opt/nodejs/node_modules | NODE_PATH |
| Java | /opt/java/lib/* | CLASSPATH |
| PHP | /opt/php | — |
Jika direktori tingkat atas dalam file ZIP Anda menggunakan nama kustom, layer tersebut akan dideploy ke /opt/<nama-direktori-anda>. Sebagai contoh, jika direktori tingkat atas adalah my-layer-code, layer tersebut akan dideploy ke /opt/my-layer-code. Gantilah jalur default pada contoh di bawah ini dengan direktori aktual Anda.
Python
Pilih salah satu metode berikut.
Metode 1: Atur variabel lingkungan (disarankan)
Dalam konfigurasi fungsi, atur variabel lingkungan PYTHONPATH:
PYTHONPATH=/opt/pythonMetode 2: Tambahkan jalur dalam kode
Tambahkan baris berikut ke file entri Anda sebelum melakukan import apa pun dari layer:
import sys
sys.path.append('/opt/python')
# import {PackageFromLayer}Untuk contoh lengkap yang berfungsi, lihat python-demo-with-lib-in-layer.
Node.js
Dalam konfigurasi fungsi, atur variabel lingkungan NODE_PATH:
NODE_PATH=/opt/nodejs/node_modulesUntuk contoh lengkap yang berfungsi, lihat nodejs-demo-with-lib-in-layer.
Java
Pilih salah satu metode berikut.
Metode 1: Gunakan parameter -classpath dalam perintah startup (disarankan)
Tambahkan /opt/java/lib/* ke parameter -classpath:
java -Dserver.port=9000 -classpath /code/:/opt/java/lib/* com.example.demo.DemoApplicationMetode 2: Atur variabel lingkungan
Dalam konfigurasi fungsi, atur variabel lingkungan CLASSPATH:
CLASSPATH=/code/:/opt/java/lib/*Saat menggunakan variabel lingkungan CLASSPATH, jangan gunakan flag -jar. Ketika -jar ditentukan, Java Virtual Machine (JVM) membaca classpath dari MANIFEST.MF di dalam file JAR dan mengabaikan semua variabel lingkungan serta pengaturan classpath dari command line—sehingga CLASSPATH tidak berpengaruh. Sebagai contoh, java -classpath ${CLASSPATH} -jar yourJarExe.jar tidak berfungsi seperti yang diharapkan.
PHP
Tambahkan baris berikut ke file entri Anda sebelum melakukan import apa pun dari layer:
<?php
$path = '/opt/php';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);