--- title: "Functionsディレクトリ" url: https://docs.catalyst.zoho.com/ja/cli/v1/project-directory-structure/functions-directory/ description: "プロジェクトディレクトリ構造は、CLIからCatalystプロジェクトを初期化した際に作成されるデフォルトのディレクトリ構造を指します。" last_updated: 2026-08-17T12:16:04Z service: All Services type: general --- # Functionsディレクトリ ### はじめに 前述のとおり、Catalystは**Java**、**Node.js**、**Python**プログラミング環境で記述されたFunctionをサポートしています。プロジェクトディレクトリ内の`functions`フォルダには、マイクロサービスまたはアプリケーションのすべてのサーバーサイドFunctionが個別のフォルダに格納されます。 Functionsディレクトリ内の個々のFunctionフォルダには、メインFunctionファイル(`.java`クラスファイル、`.js`ファイル、または`.py`ファイル)、およびFunctionに必要なすべての依存関係と設定ファイルが含まれています。Functionのフォルダ内に、メインFunctionと密接に連携する追加のセカンダリFunctionを作成することもできます。 ただし、CLIからFunctionフォルダ内にセカンダリFunctionを作成することはできません。外部の開発環境からフォルダにファイルを手動でインポートするか、[Catalystコンソールで作成](https://docs.catalyst.zoho.com/ja/serverless/help/functions/implementation/)してCLIを使用してディレクトリに[プル](https://docs.catalyst.zoho.com/ja/cli/v1/pull-resources/introduction/)します。 > **注意:** CLIを使用してFunctionsディレクトリにJava、Node.js、またはPythonスタックの任意の数のFunctionを追加したり、CLIを使用していつでもFunctionsコンポーネントをセットアップしたりできます。詳しくは、[Functionsの操作ヘルプページ](https://docs.catalyst.zoho.com/ja/cli/v1/working-with-functions/introduction/)を参照してください。 プロジェクトディレクトリでCLIから[Functionsを初期化](https://docs.catalyst.zoho.com/ja/cli/v1/initialize-resources/initialize-functions/)すると、選択したプログラミング環境に基づいた必要な依存関係とともに、プロジェクトディレクトリ内に「functions」という名前のフォルダが作成されます。 **Java** Functionのフォルダは、作成時に以下のコンポーネントでセットアップされます: 1. メインの`.java`クラスファイル 2. `catalyst-config.json` 3. `.jar`ライブラリファイル **Node.js** Functionのフォルダは、作成時に以下のコンポーネントでセットアップされます: 1. メインFunctionファイル(`index.js`) 2. `catalyst-config.json` 3. ノードモジュールとNode.js Functionの依存関係 **Python** Functionのフォルダは、作成時に以下のコンポーネントでセットアップされます: 1. main.pyファイル 2. `catalyst-config.json` 3. `requirements.txt `ファイル まず、Java、Node.js、Pythonプログラミング環境で共通のメインFunctionファイルと`catalyst-config.json`ファイルについて説明します。 ### メインFunctionファイル メインFunctionファイルは、Functionの初期化時に選択した言語に応じて、`.java`、`.js`、または`.py`タイプのファイルです。メインFunctionファイルは、Java、Node.js、Pythonのサンプルコード構造で作成されます。 Java Functionの場合、CLIからの初期化時にメインFunctionのクラス名とFunctionグループの参照名を入力する必要があります。Functionフォルダの名前は、Functionの参照名と同じになります。 Node.jsおよびPython Functionの場合、Functionのパッケージ名を入力する必要があります。また、エントリーポイントファイルまたはメインFunctionファイルの名前も入力する必要があり、デフォルトではそれぞれindex.jsとmain.pyという名前になります。 [`catalyst.json`](https://docs.catalyst.zoho.com/ja/cli/v1/project-directory-structure/catalyst-json/)ファイルには、すべてのFunctionの参照名またはパッケージ名が指定されます。 ### catalyst-config jsonファイル `catalyst-config.json`ファイルには、デプロイメントや実行の仕様など、Functionの設定が指定されます。 ```json { "deployment":{ "name": "fn", "stack": "node16", "type": "advancedio", "env_variables": {} }, "execution": { "main": "index.js" } } ``` `deployment`情報には以下のパラメータが含まれます: * `name`:初期化時に指定したFunctionグループの参照名です。 Functionの参照名を変更した場合、_catalyst-config.json_の変更を更新し、同じ名前でFunctionフォルダの名前も変更してください。`catalyst.json`にも変更を反映する必要があります。 * `stack`:Java、Node.js、またはPython Functionであるか、およびバージョン情報を示します。この値を変更するとエラーが発生します。 * `type`:Functionのタイプを示します。Functionタイプの詳細については、[Functionsのヘルプページ](https://docs.catalyst.zoho.com/ja/serverless/help/functions/introduction/)を参照してください。この値を変更するとエラーが発生します。 `execution`は、エントリーポイントであるメインFunctionファイル、つまりメインの`.java`、`.js`、または`.py` Functionファイルの名前を指します。 Functionをデプロイする際、`catalyst-config.json`ファイルがFunctionフォルダのルートに存在し、正しい設定が含まれていることを確認する必要があります。 次に、Javaライブラリファイル、NodeおよびPython Functionの依存関係について詳しく見ていきましょう: ### Javaライブラリフォルダ `lib`という名前のライブラリフォルダには、Functionの依存JARファイルが含まれています。libフォルダは、CLIからJava環境のFunctionを初期化する際に、Functionディレクトリに自動的に追加されます。 ![Project Directory Structure- Java Function Directory](https://catalyst-docs-development.zohostratus.in/images/cli/project-directory-structure/catalyst_proj_dir_func_dir_java.webp) これらのJARファイルは[Java SDK](https://docs.catalyst.zoho.com/ja/sdk/java/v1/overview/)パッケージの一部です。ランタイム中、Java Functionは実行に必要なパッケージと機能を含むこれらのライブラリファイルを呼び出します。 ### ノードモジュールとNode.js Functionの依存関係 Node.js Functionのフォルダには、基本的に以下が含まれます: 1. メインFunctionファイル 2. `catalyst-config.json` 3. `package-lock.json` 4. `package.json` 5. ノードモジュールフォルダ メインFunctionファイルと`catalyst-config.json`ファイルについては前述しました。ノードモジュールとNode Functionの依存関係は、[Node.js SDK](https://docs.catalyst.zoho.com/ja/sdk/nodejs/v2/overview/)パッケージをインストールする際にシステムにインストールされます。 ![Project Dir Structure- Node.js Directory](https://catalyst-docs-development.zohostratus.in/images/cli/project-directory-structure/catalyst_proj_dir_func_dir_node_2.webp) `package.json`と`package-lock.json`ファイルは、Functionの設定を含む依存関係ファイルです。`package.json`ファイルはFunctionの名前、メインFunctionファイル、バージョン、作者などの情報を指定し、`package-lock.json`はその他の依存関係情報を詳細に指定します。 > **注意:** Functionの名前を変更した場合、これらの設定ファイルに変更を更新する必要があります。 ノードモジュールフォルダには、モジュールのサブフォルダが含まれています。各モジュールには、Node.js Functionの実行に不可欠な個別のライブラリファイル、ライセンスファイル、設定ファイル、インデックスファイルなどが含まれています。 ノードモジュールの1つである`zcatalyst-sdk-node`には、`src`という名前のフォルダにグループ化されたすべてのCatalystコンポーネントのNode.js SDK定義と、その他の依存関係ファイルが含まれています。 > **注意:** * コンソールからFunctionを作成した場合、Functionグループには必要な依存関係がすべて含まれません。たとえば、Node.js Functionグループにはフォルダが作成されますが、ノードモジュールは追加されません。そのような場合、CLIを使用してコンソールからプロジェクトディレクトリに[Functionsをプル](https://docs.catalyst.zoho.com/ja/cli/v1/pull-resources/pull-all-resources/#pull-functions)できます。これにより、必要な構造でそれらのFunctionのディレクトリが作成されます。コンソールで作成したFunctionグループにセカンダリFunctionが含まれている場合、コンソールからプルする際にFunctionのフォルダに含まれます。 * 外部エディターからFunctionを作成してCatalystにインポートする場合、すべての依存関係が含まれ、すべての設定ファイルが指定された形式で作成されていることを確認する必要があります。不一致があると、Function実行時にエラーが発生する可能性があります。 ### PythonモジュールとFunctionの依存関係 Python Functionのフォルダには、基本的に以下が含まれます: 1. main.pyファイル 2. `catalyst-config.json` 3. `requirements.txt `ファイル メインFunctionファイルとcatalyst-config.jsonファイルについては、前のセクションですでに説明しました。 #### requirements.txtファイル この`requirements.txt`ファイルには、Python Functionの実装に必要なインストール済み依存関係のリストが含まれています。CLIからPython Functionを作成した場合、デフォルトでCatalystのPython SDKパッケージ(`zcatalyst-sdk`)のエントリが含まれます。Functionに外部の依存関係やライブラリをインストールする場合、requirements.txtファイルにキーバリューペアの形式で依存関係の名前と値を手動で設定して保存する必要があります。 また、`requirements.txt`ファイルで適切なバージョン値を設定して保存するだけで、Python SDKパッケージや外部依存関係のバージョンをアップグレードすることもできます。更新された設定を反映するには、CLIからPython Functionを配信またはデプロイしてください。