Functionsディレクトリ
はじめに
前述のとおり、CatalystはJava、Node.js、Pythonプログラミング環境で記述されたFunctionをサポートしています。プロジェクトディレクトリ内のfunctionsフォルダには、マイクロサービスまたはアプリケーションのすべてのサーバーサイドFunctionが個別のフォルダに格納されます。
Functionsディレクトリ内の個々のFunctionフォルダには、メインFunctionファイル(.javaクラスファイル、.jsファイル、または.pyファイル)、およびFunctionに必要なすべての依存関係と設定ファイルが含まれています。Functionのフォルダ内に、メインFunctionと密接に連携する追加のセカンダリFunctionを作成することもできます。
ただし、CLIからFunctionフォルダ内にセカンダリFunctionを作成することはできません。外部の開発環境からフォルダにファイルを手動でインポートするか、Catalystコンソールで作成してCLIを使用してディレクトリにプルします。
プロジェクトディレクトリでCLIからFunctionsを初期化すると、選択したプログラミング環境に基づいた必要な依存関係とともに、プロジェクトディレクトリ内に「functions」という名前のフォルダが作成されます。
Java Functionのフォルダは、作成時に以下のコンポーネントでセットアップされます:
- メインの.javaクラスファイル
- catalyst-config.json
- .jarライブラリファイル
Node.js Functionのフォルダは、作成時に以下のコンポーネントでセットアップされます:
- メインFunctionファイル(index.js)
- catalyst-config.json
- ノードモジュールとNode.js Functionの依存関係
Python Functionのフォルダは、作成時に以下のコンポーネントでセットアップされます:
- main.pyファイル
- catalyst-config.json
- 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ファイルには、すべてのFunctionの参照名またはパッケージ名が指定されます。
catalyst-config jsonファイル
catalyst-config.jsonファイルには、デプロイメントや実行の仕様など、Functionの設定が指定されます。
{
"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のヘルプページを参照してください。この値を変更するとエラーが発生します。
executionは、エントリーポイントであるメインFunctionファイル、つまりメインの.java、.js、または.py Functionファイルの名前を指します。
Functionをデプロイする際、catalyst-config.jsonファイルがFunctionフォルダのルートに存在し、正しい設定が含まれていることを確認する必要があります。
次に、Javaライブラリファイル、NodeおよびPython Functionの依存関係について詳しく見ていきましょう:
Javaライブラリフォルダ
libという名前のライブラリフォルダには、Functionの依存JARファイルが含まれています。libフォルダは、CLIからJava環境のFunctionを初期化する際に、Functionディレクトリに自動的に追加されます。
これらのJARファイルはJava SDKパッケージの一部です。ランタイム中、Java Functionは実行に必要なパッケージと機能を含むこれらのライブラリファイルを呼び出します。
ノードモジュールとNode.js Functionの依存関係
Node.js Functionのフォルダには、基本的に以下が含まれます:
- メインFunctionファイル
- catalyst-config.json
- package-lock.json
- package.json
- ノードモジュールフォルダ
メインFunctionファイルとcatalyst-config.jsonファイルについては前述しました。ノードモジュールとNode Functionの依存関係は、Node.js SDKパッケージをインストールする際にシステムにインストールされます。
package.jsonとpackage-lock.jsonファイルは、Functionの設定を含む依存関係ファイルです。package.jsonファイルはFunctionの名前、メインFunctionファイル、バージョン、作者などの情報を指定し、package-lock.jsonはその他の依存関係情報を詳細に指定します。
ノードモジュールフォルダには、モジュールのサブフォルダが含まれています。各モジュールには、Node.js Functionの実行に不可欠な個別のライブラリファイル、ライセンスファイル、設定ファイル、インデックスファイルなどが含まれています。
ノードモジュールの1つであるzcatalyst-sdk-nodeには、srcという名前のフォルダにグループ化されたすべてのCatalystコンポーネントのNode.js SDK定義と、その他の依存関係ファイルが含まれています。
-
コンソールからFunctionを作成した場合、Functionグループには必要な依存関係がすべて含まれません。たとえば、Node.js Functionグループにはフォルダが作成されますが、ノードモジュールは追加されません。そのような場合、CLIを使用してコンソールからプロジェクトディレクトリにFunctionsをプルできます。これにより、必要な構造でそれらのFunctionのディレクトリが作成されます。コンソールで作成したFunctionグループにセカンダリFunctionが含まれている場合、コンソールからプルする際にFunctionのフォルダに含まれます。
-
外部エディターからFunctionを作成してCatalystにインポートする場合、すべての依存関係が含まれ、すべての設定ファイルが指定された形式で作成されていることを確認する必要があります。不一致があると、Function実行時にエラーが発生する可能性があります。
PythonモジュールとFunctionの依存関係
Python Functionのフォルダには、基本的に以下が含まれます:
- main.pyファイル
- catalyst-config.json
- 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を配信またはデプロイしてください。
最終更新日 2026-02-23 18:09:41 +0530 IST
Yes
No
Send your feedback to us

