すべてのプロダクト
Search
ドキュメントセンター

:カスタムランタイムでレイヤーから依存関係を参照する方法

最終更新日:Apr 02, 2026

ネイティブランタイムでは、Function Compute が自動的にレイヤーディレクトリを依存関係の検索パスに追加します。一方、カスタムランタイムでは Python、Node.js、Java、PHP など複数の言語およびバージョンがサポートされていますが、関数構成内の環境変数またはエントリファイル内のコードを通じて、手動でレイヤーディレクトリを検索パスに追加する必要があります。

このトピックでは、Python、Node.js、Java、PHP を取り上げます。

デフォルトのレイヤーディレクトリ

カスタムレイヤーの作成で説明されている構造に従ってレイヤーの ZIP ファイルをビルドすると、Function Compute はレイヤーの内容を以下のデフォルトディレクトリに展開します。

言語デフォルトディレクトリ環境変数
Python/opt/pythonPYTHONPATH
Node.js/opt/nodejs/node_modulesNODE_PATH
Java/opt/java/lib/*CLASSPATH
PHP/opt/php

ZIP ファイルの最上位ディレクトリにカスタム名を使用した場合、レイヤーは /opt/<your-directory-name> に展開されます。たとえば、最上位ディレクトリが my-layer-code の場合、レイヤーは /opt/my-layer-code に展開されます。以下の例で示すデフォルトパスは、実際のディレクトリに置き換えてください。

Python

以下のいずれかの方法を選択してください。

方法 1:環境変数を設定する(推奨)

関数構成で、PYTHONPATH 環境変数を設定します。

PYTHONPATH=/opt/python

方法 2:コード内でパスを追加する

レイヤーからのインポートより前に、エントリファイルに以下の行を追加します。

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

動作する完全なサンプルについては、「python-demo-with-lib-in-layer」をご参照ください。

Node.js

関数構成で、NODE_PATH 環境変数を設定します。

NODE_PATH=/opt/nodejs/node_modules

動作する完全なサンプルについては、「nodejs-demo-with-lib-in-layer」をご参照ください。

Java

以下のいずれかの方法を選択してください。

方法 1:起動コマンドで -classpath を指定する(推奨)

-classpath パラメーターに /opt/java/lib/* を追加します。

java -Dserver.port=9000 -classpath /code/:/opt/java/lib/* com.example.demo.DemoApplication

方法 2:環境変数を設定する

関数構成で、CLASSPATH 環境変数を設定します。

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

CLASSPATH 環境変数を使用する場合、-jar フラグは使用しないでください。-jar を指定すると、Java 仮想マシン (JVM) は JAR ファイル内の MANIFEST.MF からクラスパスを読み取り、すべての環境変数およびコマンドラインでのクラスパス設定を無視します。そのため、CLASSPATH は効果がありません。たとえば、java -classpath ${CLASSPATH} -jar yourJarExe.jar は期待通りに動作しません。

PHP

レイヤーからのインポートより前に、エントリファイルに以下の行を追加します。

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