--- title: "Functionのシェル起動" url: https://docs.catalyst.zoho.com/ja/cli/v1/working-with-functions/functions-shell/ description: "Catalyst CLIを使用すると、プロジェクトの初期化後でもFunctionコンポーネントのセットアップ、プロジェクトへの複数のFunctionの追加、メモリの設定、Node shellでのFunctionのテスト、およびFunctionの削除が可能です。" last_updated: 2026-08-17T12:16:04Z service: All Services type: general --- # Functionのシェル起動 ### はじめに functions shellは、Node shellコンソールの機能とCatalyst CLIの効率性を組み合わせて、Functionのテストとデバッグを行う機能を提供します。 Catalyst CLI functions shellを使用すると、プロジェクト内のJava、Node.js、またはPythonプラットフォームの以下の[Functionタイプ](https://docs.catalyst.zoho.com/ja/serverless/help/functions/basic-io/)をテストおよびデバッグできます:**Basic I/O**、**Cron**、**Event**、および**Integration** Function。 > **注意:** node shellを使用してAdvanced I/O Functionをテストすることはできません。ただし、[`catalyst serve`](https://docs.catalyst.zoho.com/ja/cli/v1/serve-resources/introduction/)コマンドを使用して、Advanced I/O Function、Basic I/O Function、およびクライアントをローカルホストからサーブしてパフォーマンスをテストできます。 Functionの実行出力はJSON形式でCLIに取得・表示されます。Basic I/O Functionの場合はCLIに文字列出力が生成され、その他のFunctionタイプの場合は適切なレスポンスが取得されます。 JavaまたはNode.jsスタックのBasic I/O Functionをテストする際は、Functionのエンドポイントにデバッガをアタッチしてローカルサーバーを介してコードをテストしたり、シェルでHTTPモードを有効にしたりすることもできます。Python Functionではこの機能はサポートされていませんが、Python Functionを独立してデバッグすることは可能です。 Catalyst CLIはfunctions shellのその他のオプションも提供しており、このセクションの後半で説明します。 ### Functions Shellコマンドの実行 Functionをテストするためのシェルを起動するには、Functionのプロジェクトディレクトリに移動し、以下のコマンドを実行します: ```sh catalyst functions:shell ``` これによりCLIでシェルが開きます。Advanced I/O Function以外のプロジェクト内の任意のFunctionをテストし、Basic I/O Functionの場合は入力を渡して実行し、その他のnode shell操作を実行できます。 ![Functions Shell](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_shell.webp) シェルでBasic I/O Functionに入力を渡す方法は2つあります: * Function変数に値を渡してFunctionを実行する。 * CLIで変数を宣言し、Function変数に代入して、宣言した変数を介して入力値を渡す。その後、宣言した変数をそのFunctionにバインドして実行できます。 #### 直接入力を渡す例 _EMI_というシンプルなFunctionをテストしましょう。このFunctionでは、_principal_という変数に入力値を渡すことができます。このFunctionは、いくつかの事前定義された定数値に基づいて、配送サービスのEMI金額を計算します。 シェルで以下のステートメントを入力して、入力変数の値を渡し_EMI_ Functionを実行します: ```sh EMI({"principal":"10000"}) ``` これにより_EMI_ Functionが呼び出され、入力がその変数に渡されます。Functionの実行が完了すると、サーバーからJSONレスポンスとして出力が取得されます。CLIは、サーバーから送信されたHTTPステータスコードとともにFunctionの出力を表示します。 ![Functions Shell](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_functions_shell_pass_value.webp) #### 変数を宣言してバインドする例 CLIで変数を宣言し、Function内の変数に代入することもできます。これにより、宣言した変数をFunctionの変数の代わりに使用して、入力値を簡単に渡すことができます。 変数'P'を宣言し、_EMI_ Functionの_principal_変数に代入して入力値を渡しましょう。シェルで以下のコマンドを実行します: ```sh var P={"principal":"3000"} ``` これにより_P_が_principal_に代入され、Pに入力値3000が渡されます。コンソールでPの値を出力して、変数が代入されているか確認できます。 これはNode.jsの`console.log()` functionを以下の方法で使用して行えます: ```sh console.log(P) ``` 変数が代入され値が正常に渡された場合、シェルは渡された_principal_の値を出力します。 ![Functions Shell](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_functions_shell_variable_declaration.webp) 宣言した変数をFunctionにバインドして、以下のように実行できます: ```sh EMI(P) ``` これによりFunctionが呼び出され、_P_を介してその変数に入力が渡されます。Functionの実行が完了すると、CLIはサーバーから送信されたHTTPステータスコードとともに出力を表示します。 ![Functions Shell](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_functions_shell_variable_bind.webp) ランタイムエラーが発生した場合、CLIはサーバーから適切なHTTPレスポンスコードを返します。 #### シェルの終了 ローカル環境に応じてターミナルコマンドを終了するか、以下のコマンドを実行してfunctions shellを終了できます: ```sh .exit ``` Functionのテストが十分に完了したら、ローカル環境からリモートコンソールにFunctionを[デプロイ](https://docs.catalyst.zoho.com/ja/cli/v1/deploy-resources/introduction/)できます。 ### Functions Shellオプション functions shellの起動コマンドで使用できるオプションは4つあります。 #### \--http \[port\] `-\\-http`オプションは、Basic I/O FunctionをHTTPモードで呼び出します。CLIはローカルホストを介してFunctionをサーブし、ローカルエンドポイントへのアクセスを提供します。サーバーはFunctionがローカルでホストされているポートをリッスンし、CLIはそのポートでのアクティビティのライブログを表示します。その後、CLIはfunctions shellを開き、Functionをテストできます。 > **注意:** `-\\-http`オプションはBasic I/O Functionにのみ適用されます。Cron、Event、およびIntegration Functionのエンドポイントには直接アクセスできないためです。 このオプションは、Basic I/O Function、Advanced I/O Function、およびクライアントコンポーネントをローカルでサーブする[ `catalyst serve` ](https://docs.catalyst.zoho.com/ja/cli/v1/serve-resources/introduction/)コマンドの機能と同様です。 プロジェクトディレクトリから以下のコマンドを実行して、HTTPモードでfunction shellを起動し、プロジェクト内のすべてのBasic I/O Functionをテストできます: ```sh catalyst functions:shell --http ``` これにより、プロジェクトのFunctionディレクトリ内のすべてのBasic I/O Functionが**デフォルトポート8080**でローカルにホストされます。CLIはすべてのFunctionのエンドポイントURLを表示します。シェル操作の実行中はいつでも、ブラウザでURLを開いてこれらのFunctionにアクセスできます。 ![Functions Shell- HTTP Port](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_functions_shell_http.webp) 前のセクションで説明したようにシェルを使用してFunctionのテストと実行を行い、URLにアクセスしてHTTPモードで表示できます。 必要に応じて、このコマンドの実行時にデフォルトポート8080をオーバーライドして別のポートでサーバーを起動することもできます。`-\\-http`オプションでポート番号を指定して行います。 たとえば、ポート7000を使用したい場合は、プロジェクトディレクトリから以下のコマンドを実行します: ```sh catalyst serve --http 7000 ``` #### \--debug \[port\] Catalystでは、ライブlocalhostサーバーにリモートデバッガをアタッチして、JavaおよびNode.js Functionをローカルでテストできます。 > **注意:** `catalyst functions:shell --debug`コマンドはPython Functionではサポートされていません。Python Functionのデバッグ手順については、[こちらのセクション](https://docs.catalyst.zoho.com/ja/cli/v1/working-with-functions/functions-shell/#debugging-python-functions)をご参照ください。 `-\\-debug`オプションを使用してfunctions shellを起動すると、Catalystはデフォルトまたはカスタムポートでトランスポート`dt\_socket`をリッスンし、Functionの呼び出し後にデバッガからの接続が確立されるのを待ちます。接続が確立されると、アタッチされたデバッガがFunctionの実行をデバッグし、コード内のエラーや問題を特定します。 プロジェクトディレクトリから以下のコマンドを実行して、functions shellを起動しデバッガへの接続を開始できます: ```sh catalyst functions:shell --debug ``` これにより、以前と同じ方法でfunctions shellが開きます。シェルでFunctionを呼び出すと、Catalystがデバッガへの接続を確立します。Catalyst CLIはデフォルトでデバッガに**ポート8000**を割り当てます。 ![Functions Shell- Debug](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_functions_shell_debug.webp) デバッガがアタッチされると、CLIはそのことを示すメッセージを表示します。その後、CatalystはデバッグモードでFunctionを実行し、サーバーレスポンスを表示します。 必要に応じて、デフォルトポート8000をオーバーライドして別のポートでデバッガを起動できます。`-\\-debug`オプションでポート番号を指定して行います。 たとえば、ポート7000を使用したい場合は、プロジェクトディレクトリから以下のコマンドを実行します: ```sh catalyst serve --debug 7000 ``` #### \--ignore-scripts このオプションを使用すると、特定のFunctionの[ `catalyst.json` ](https://docs.catalyst.zoho.com/ja/cli/v1/project-directory-structure/catalyst-json/)ファイルに記述された[ライフサイクル前後のスクリプト](https://docs.catalyst.zoho.com/ja/cli/v1/scripts/introduction/)を無視するようCatalystに指示できます。 functions shellの`-\\-http`オプションを使用してBasic I/O Functionのエンドポイントをホストしてアクセスできるため、ホスト時に`preserve`および`postserve`スクリプトが自動的に実行されます。`preserve`スクリプトはFunctionがサーブされる前に実行され、`postserve`スクリプトはローカルサーブを終了した後に実行されます(利用可能な場合)。 `-\\-ignore-scripts`オプションを使用して、Functionがサーブされる際にこれらのライフサイクル前後のスクリプトを無視するようCatalystに指示できます。 たとえば、プロジェクトの`catalyst.json`ファイルに、Functionの以下の`preserve`および`postserve`スクリプトを含めるように設定しましょう。 ![Functions Shell- Ignore Scripts](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_functions_ignore_scripts_code.webp) `\--ignore-scripts`オプションを使用せずにfunctions shellを起動すると、以下に示すように、シェルが開く前とシェルを終了した後にそれぞれスクリプトが実行されます。 ![Functions Shell- Ignore Scripts](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_functions_ignore_scripts_without.webp) `preserve`および`postserve`スクリプトを無視するには、プロジェクトディレクトリから以下のコマンドを実行してfunctions shellを起動します: ```sh catalyst functions:shell --ignore-scripts ``` これによりスクリプトが無視され、標準的な方法でシェルが実行されます。 ![Functions Shell- Ignore Scripts](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_functions_ignore_scripts.webp) #### \--no-watch Catalyst CLIはデフォルトでfunctions shellにライブウォッチモードを有効にしています。このモードは、シェルが開かれた後にFunctionファイルまたはFunctionディレクトリで行われた変更を能動的に監視します。Functionファイルまたはディレクトリで変更がコミットされたことを検出すると、functions shellのホットリロードを有効にして更新をライブで反映します。そのため、変更を保存した直後に、コードの再コンパイルや再サーブを行うことなく、ライブシェルでFunctionの更新バージョンにアクセスできます。 以下のように`-\\-no-watch`オプションを使用してfunctions shellを起動することで、このデフォルトのウォッチモードを無効にできます: ```sh catalyst functions:shell --no-watch ``` シェルで起動した後にFunctionファイルに変更を加えても、シェルで開いているコンパイル済みFunctionには更新が反映されません。変更後にFunctionを再呼び出しするか、シェルを終了して再度開くことで、Functionの更新バージョンを操作できます。 たとえば、Node.js Basic I/O Functionのデフォルトサンプルコードを含むFunctionを考えましょう。functions shellで呼び出すと「Hello from index.js」というメッセージが出力されます。 ![Functions Shell- No Watch](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_serve_no_watch_1.webp) 以下のようにFunctionのコードを変更しても、Functionがまだシェルで開いている間はCLIにライブで更新が反映されません。 ![Functions Shell- No Watch](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_serve_no_watch_2.webp) 更新されたコードの出力を取得するには、Functionを再度呼び出す必要があります。 ![Functions Shell- No Watch](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_serve_no_watch_3.webp) ただし、`-\\-no-watch`オプションを使用せずにデフォルトのウォッチモードを有効にしたままfunctions shellを起動すると、シェルはコードの変更をライブで検出し、以下に示すようにFunctionのホットリロードを自動的に実行します。 ![Functions Shell- No Watch](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_serve_no_watch_4.webp) ### Python Functionのデバッグ Python Functionをデバッグするには、Catalystは現在CLIでのデバッグをサポートしていないため、Python IDEを独立して使用する必要があります。Visual Studio CodeやPyCharmなど、お好みのIDEでローカルデバッガをアタッチできます。デバッガはFunctionがローカルでホストされているポートをリッスンし、IDEはそのポートでのアクティビティのライブログを表示します。 VS Codeを使用してPython Functionをデバッグする手順は以下の通りです: 1. IDEからローカルサーバーでホストされている特定のPython Functionをデバッグするには、ローカルサーバーとIDEの間の接続を確立するデバッガパッケージが必要です。この場合、debugpy Pythonパッケージを使用します。 VS CodeでCatalystプロジェクトディレクトリを開きます。`main.py`ファイルに、以下のコード行を追加します。 ```python import debugpy debugpy.listen(<<"Enter port number here">>) debugpy.wait_for_client() ``` > **注意:** VS Codeデバッグ設定のアタッチ用デフォルトポートは5678です。これはPython Functionがサーブされるポートです。必要に応じて、以下のオプションを使用してserveコマンドの実行時にデフォルトポートをオーバーライドして変更できます: ```sh catalyst serve --http <Port number> ``` 2. Functionディレクトリに移動し、`debugpy`パッケージをインストールするために、IDEターミナルで以下のコマンドを実行します: ```sh python -m pip install --upgrade debugpy ``` 3. Catalystプロジェクトのルートディレクトリに`launch.json`ファイルがまだ存在しない場合は作成します。`launch.json`ファイルの作成手順については、[こちらのヘルプページ](https://code.visualstudio.com/docs/python/debugging#_initialize-configurations)をご参照ください。ファイルに以下のコードを追加して保存します。 ```json { "version": "0.2.0", "configurations": [ { "name": "Python: Remote Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": <> }, "pathMappings": [ { "localRoot": "${workspaceFolder}", "remoteRoot": "${workspaceFolder}/.build/" } ], "justMyCode": true } ] } ``` 4. VS Codeで「実行とデバッグ」ビューに切り替え、デバッガを開始します。IDEターミナルでCLI serveコマンドを実行して、Functionの実行詳細を確認できます。 > **注意:** コマンドの実行時に、設定ファイルに記載されたものと同じポート番号を指定するようにしてください。 ![](https://catalyst-docs-development.zohostratus.in/images/cli/working-with-functions/catalyst_cli_vscode_debug.webp) VS CodeでのPython Functionのローカルスクリプトデバッグのより詳細な手順については、[こちらのヘルプページ](https://code.visualstudio.com/docs/python/debugging#_debugging-by-attaching-over-a-network-connection)をご参照ください。 > **注意:** **Visual Studio Code IDE**ユーザーの場合、**Catalyst Tools**拡張機能をインストールして、CLIの代わりにIDEを使用してCLI操作を実行できます。Visual Studio Code IDEを使用してCatalyst Functionを実行およびデバッグする手順は[こちら](https://docs.catalyst.zoho.com/ja/catalyst-extensions/vs-code-extension/implementation/#run-or-debug-a-function)をご覧ください。