如何在Custom Runtime中引用層中的依賴
Custom Runtime是自定義運行環(huán)境,內(nèi)置了多種語言版本,比如Python、Node.js、Java和PHP等,這些語言的層打包的方法和原生Runtime是一致的。但是在Custom Runtime中,您需要將層依賴所在目錄添加到運行時語言的依賴包搜索路徑中。本文介紹Custom Runtime內(nèi)各語言引用層中依賴的方法。
示例說明
本文添加層所在目錄的示例,如/opt/python僅為推薦的目錄,如果您是按照創(chuàng)建自定義層頁面步驟構(gòu)建的層ZIP包,則層會默認部署到該目錄下。否則,請先確認您構(gòu)建層ZIP包的目錄結(jié)構(gòu),然后將/opt/python替換為實際的目錄。
例如,您的層ZIP包內(nèi)的目錄名為my-layer-code,那么層會部署到/opt/my-layer-code目錄下。您需要在函數(shù)配置中設置環(huán)境變量時,或者代碼中增加依賴庫搜索路徑時使用/opt/my-layer-code路徑。
在Custom Runtime-Python語言中引用層中的依賴
方式一:在函數(shù)配置中設置
PYTHONPATH
環(huán)境變量,添加層所在的目錄。示例如下。
PYTHONPATH=/opt/python
方式二:在您項目的入口文件里添加以下語句,需要在導入層的依賴庫前執(zhí)行。
import sys sys.path.append('/opt/python') # import {PackageFromLayer}
具體操作步驟,請參見示例python-demo-with-lib-in-layer。
在Custom Runtime-Node.js語言中引用層中的依賴
在函數(shù)配置中設置NODE_PATH
環(huán)境變量,添加層所在的目錄。具體操作步驟,請參見示例nodejs-demo-with-lib-in-layer。
NODE_PATH=/opt/nodejs/node_modules
在Custom Runtime-Java語言中引用層中的依賴
方式一:在啟動命令中設置
-classpath
參數(shù),添加層所在/opt/java/lib/*目錄。java -Dserver.port=9000 -classpath /code/:/opt/java/lib/* com.example.demo.DemoApplication
方式二:在函數(shù)配置中設置
CLASSPATH
環(huán)境變量,添加層依賴所在目錄。CLASSPATH=/code/:/opt/java/lib/*
使用CLASSPATH
環(huán)境變量時,不支持使用參數(shù)-jar
指定JAR包的方式運行程序。例如,java -classpath ${CLASSPATH} -jar yourJarExe.jar
示例中,使用-jar
參數(shù)時,Java JVM會使用JAR包內(nèi)的MANIFEST.MF,所有環(huán)境變量和命令行指定的搜索路徑都會被忽略,因此指定的CLASSPATH
不會生效。
在Custom Runtime-PHP語言中引用層中的依賴
在您項目的入口文件里添加以下語句,需要在導入層的依賴庫前執(zhí)行。
<?php
$path = '/opt/php';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);