全部產品
Search
文件中心

Function Compute:如何在自訂運行時中引用層中的依賴

更新時間:Dec 21, 2024

自訂運行時內建了多種語言版本,比如Python、Node.js、Java和PHP等,這些語言的層打包的方法和原生運行時是一致的。但是在自訂運行時中,您需要將層依賴所在目錄添加到運行時語言的依賴包搜尋路徑中。本文介紹自訂運行時內各語言引用層中依賴的方法。

樣本說明

本文添加層所在目錄的樣本,如/opt/python僅為推薦的目錄,如果您是按照建立自訂層頁面步驟構建的層ZIP包,則層會預設部署到該目錄下。否則,請先確認您構建層ZIP包的目錄結構,然後將/opt/python替換為實際的目錄。

例如,您的層ZIP包內的目錄名為my-layer-code,那麼層會部署到/opt/my-layer-code目錄下。您需要在函數配置中設定環境變數時,或者代碼中增加依賴庫搜尋路徑時使用/opt/my-layer-code路徑。

在自訂運行時Python語言中引用層中的依賴

  • 方式一:在函數配置中設定PYTHONPATH環境變數,添加層所在的目錄。

    樣本如下。

    PYTHONPATH=/opt/python
  • 方式二:在您專案的入口檔案裡添加以下語句,需要在匯入層的依賴庫前執行。

    import sys
    sys.path.append('/opt/python')
    # import {PackageFromLayer}

具體操作步驟,請參見樣本python-demo-with-lib-in-layer

在自訂運行時Node.js語言中引用層中的依賴

在函數配置中設定NODE_PATH環境變數,添加層所在的目錄。具體操作步驟,請參見樣本nodejs-demo-with-lib-in-layer

NODE_PATH=/opt/nodejs/node_modules

在自訂運行時Java語言中引用層中的依賴

  • 方式一:在啟動命令中設定-classpath參數,添加層所在/opt/java/lib/*目錄。

    java -Dserver.port=9000 -classpath /code/:/opt/java/lib/* com.example.demo.DemoApplication
  • 方式二:在函數配置中設定CLASSPATH環境變數,添加層依賴所在目錄。

    CLASSPATH=/code/:/opt/java/lib/*
重要

使用CLASSPATH環境變數時,不支援使用參數-jar指定JAR包的方式運行程式。例如,java -classpath ${CLASSPATH} -jar yourJarExe.jar樣本中,使用-jar參數時,Java JVM會使用JAR包內的MANIFEST.MF,所有環境變數和命令列指定的搜尋路徑都會被忽略,因此指定的CLASSPATH不會生效。

在自訂運行時PHP語言中引用層中的依賴

在您專案的入口檔案裡添加以下語句,需要在匯入層的依賴庫前執行。

<?php
$path = '/opt/php';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);