--- title: "高度なI/Oファンクション" url: https://docs.catalyst.zoho.com/ja/serverless/help/functions/advanced-io/ description: "Catalyst Functionsは、アプリケーションの高度なビジネスロジックを含む、クラウドベースのカスタムビルドされたサーバーレスコーディング構造です" last_updated: 2026-08-17T12:16:04Z service: Serverless type: general --- # Advanced I/O Functions ### はじめに Advanced I/O Functionsは、すべてのCatalystコンポーネントに対してネイティブHTTPリクエストとレスポンスを処理します。単一のAdvanced I/O Functionで任意の数のAPIを使用でき、Functionに大規模なデータストリームを渡すことができます。これらのFunctionsにより、サーバーとクライアント間のアプリケーションの複雑なルーティングメカニズムを構築できます。これらのFunctionsを使用して、サーバーサイドのツールを迅速かつ効率的に構築・保守できます。 Advanced I/O Functionsは、さまざまなアクションを実行し、異なるユースケースを解決するための柔軟性も提供します。例えば、画像ファイルやその他の添付ファイルなどの大量のデータのストリーミングまたは解析、ビューのレンダリング、ファイルの埋め込み、またはAdvanced I/O Functionsを使用したファイルのダウンロードが可能です。 Basic I/O Functionタイプは、基本的な入出力操作のみを実行しパラメータを通じてデータを渡すため、ルーティングやデータのチャネリングには適していません。そのため、このような目的にはAdvanced I/O Functionsを使用できます。Advanced I/O FunctionではJSONやHTMLレスポンスなど、あらゆる形式のレスポンスを取得することもできます。 CatalystはAdvanced I/O Functionsで[Express Node.jsフレームワーク](https://expressjs.com/)もサポートしています。Expressは、ルーティング、レンダリング、HTTPの機能を堅牢かつ簡単に処理するためのミドルウェアの設定を可能にする人気のあるNode.jsフレームワークです。Functionsにこのフレームワークをインポートして、そのパッケージにアクセスできます。 Advanced I/O Functionのエンドポイントは、[Function URL](https://docs.catalyst.zoho.com/ja/serverless/help/functions/advanced-io/#function-url)を通じて直接アクセスできます。Function URLはFunctionの作成時に生成され、Functionに直接アクセスしてさまざまな条件でテストすることができます。 [CatalystコンソールからAdvanced I/O Functionを作成](https://docs.catalyst.zoho.com/ja/serverless/help/functions/implementation/#create-a-function)し、そこでコーディングするか、[CLIを使用](https://docs.catalyst.zoho.com/ja/serverless/help/functions/introduction/#steps-to-work-with-functions-from-a-local-environment)してFunctionを初期化し、テスト後にコンソールにデプロイできます。CLIでは、ローカルホストでのFunction提供を通じてAdvanced I/O Functionsをテストすることもできます。 [Functions紹介ページ](https://docs.catalyst.zoho.com/ja/serverless/help/functions/introduction/)で説明されているように、Logs、Application Performance Monitoring、API Gatewayなどのさまざまなツールを使用して、Advanced I/O Functionsを管理し、パフォーマンス統計を表示できます。 Advanced I/O Functionsを含む複数のCatalystチュートリアルがあります。Advanced I/O Functionsの操作を練習するには、[チュートリアルセクション](https://docs.catalyst.zoho.com/ja/tutorials/)を参照してください。 > **注意:** Advanced I/O Functionの最大タイムアウトは30秒です。 ### ユースケース Advanced I/O Functionsのユースケースを以下に示します: * 特定の地域のサービスやビジネスに関する情報を提供するローカル検索アプリケーションサービスは、WebおよびモバイルアプリケーションでのルーティングにAdvanced I/O Functionを使用しています。エンドユーザーがレストランやスパなどの地域のサービスに関する検索クエリを実行すると、アプリケーションはData StoreまたはCacheから利用可能なサービスに関する情報とそのウェブサイトリンクを取得します。ユーザーがリンクをクリックすると、ビジネスのウェブサイトにリダイレクトされます。これらのデータ取得とリダイレクション機能は、HTTPリクエストおよびレスポンスメソッドを使用してAdvanced I/O Functionsで完全に処理されます。 * アプリケーションが映画、テレビ番組、ドキュメンタリーなどの動画ファイルをホストし、エンドユーザーがデバイスにダウンロードできるようにしています。このアプリケーションはExpress Node.jsフレームワークを使用して記述されており、Advanced I/O Functionを使用してこれらの機能を実装しています。このFunctionは、アプリケーションでの検索操作の実行、Data Storeからの結果の取得、数秒以内のファイルダウンロードの促進などのタスクを処理します。 Advanced I/O Functionsを実装できるその他の例には、次のタイプのアプリケーションが含まれます: * リアルタイムの共同ドキュメント編集、プロジェクト管理、またはコブラウジングアプリケーション * ライブメディアストリーミングアプリケーション * データ駆動型アプリケーション * シングルページアプリケーション * 独立したマイクロサービス * 音声・ビデオ会議アプリケーション * 動的なイベント駆動型アプリケーション * オンラインチャットアプリケーション ### メリット * 機能が豊富でダイナミックなリアルタイムアプリケーションとマイクロサービスの構築が可能 * 単一のFunctionに任意の数のAPIを含めることで、アプリケーション全体のルーティングを一元的に管理できる統合空間を提供 * すべてのCatalystコンポーネントのサーバーとクライアント間のリクエスト・レスポンスロジックを構築し、複雑なルーティングを実行可能 * Functionにパッケージを含めることで、Expressフレームワークのあらゆる機能を実装可能 ### Function構造 Java、Node.js、Pythonのメインファンクションファイルは、Functionの作成時に各Functionタイプごとに異なるデフォルトコードとモジュールで初期化されます。[Functionスタックセクション](https://docs.catalyst.zoho.com/ja/serverless/help/functions/stack/)で説明されているように、Java、Node.js、またはPython Functionの構造には、一般的にメインファンクションファイルと依存関係および設定ファイルが含まれています。Catalyst Functionsの汎用的なFunctionディレクトリ構造と設定ファイルの詳細については、[プロジェクトディレクトリ構造ヘルプページ](https://docs.catalyst.zoho.com/ja/cli/v1/project-directory-structure/functions-directory/)を参照してください。 Java、Node.js、Python環境でAdvanced I/O Functionが初期化されるデフォルトコードを確認しましょう。 > **注意:** Java、Node.js、Python環境でのAdvanced I/O Functionのサンプルについては、[このチュートリアルを参照](https://docs.catalyst.zoho.com/ja/tutorials/alien-city/java/configure-advio-function/)してください。 #### Java CatalystはJava環境でAdvanced I/O Functionを以下のシンプルな入出力操作のデフォルトコードで初期化します。 ![Functions- Advanced I/O Java](https://catalyst-docs-development.zohostratus.in/images/help/functions/catalyst_functions_advancedio_java.webp) Advanced I/O Java Functionは、リクエストとレスポンスを処理するために`javax.servlet`パッケージをインポートします。メインクラスに`CatalystAdvancedIOHandler`を実装します。ルート定義は`public void runner()`ファンクション内で定義する必要があります。 #### Node.js Node.jsのAdvanced I/O Functionは、コンソールから2つの異なるテンプレートで作成できます:すべてのExpressモジュールを含むExpress.jsテンプレート、またはExpressモジュールもNodeモジュールも含まないブランクテンプレートです。ただし、CLIからFunctionを初期化する場合は、構造にNodeモジュールのみ含めることができます。Expressモジュールは別途インストールする必要があります。 1. **Express.jsテンプレート** CatalystコンソールからNode.jsの依存関係付きでAdvanced I/O Functionを作成すると、Expressモジュールが自動的に追加されます。これにより、FunctionのディレクトリにExpressフレームワークがインストールされます。 CLIからAdvanced I/O Functionを初期化する場合、Functionのディレクトリで`[npm install express --save](https://expressjs.com/ja/starter/installing.html)`を実行してExpressを独立してインストールできます。 Catalyst Advanced I/O Functionsは、Node.js HTTP Functionsのデフォルトのリクエストおよびレスポンスオブジェクト`req`と`res`をサポートしています。これらのオブジェクトは、CacheやData Storeなどのcatalystコンポーネントにマッピングされたルートのリクエストとレスポンスを処理します。 ![Functions- Advanced I/O Node.js](https://catalyst-docs-development.zohostratus.in/images/help/functions/catalyst_functions_advancedio_express_index_js.webp) ここでのルートは`app.METHOD(PATH, HANDLER)`の形式で定義され、アクションはルート定義内でコーディングされます。 2. **ブランクテンプレート** ブランクテンプレートでは、要件に合わせてネイティブのNode.jsコードをゼロから構築できます。このテンプレートにはExpress.jsモジュールは含まれていません。コンソールでSDKなしでFunctionを初期化すると、NodeモジュールもExpressモジュールもないブランクテンプレートで作成されます。 ブランクテンプレートのサンプルコードにもreqおよびresオブジェクトが含まれており、各URLパスに対して異なるレスポンスが定義されています。 ![Functions- Advanced I/O Node.js](https://catalyst-docs-development.zohostratus.in/images/help/functions/catalyst_functions_advancedio_blank_index_js.webp) これはブランクテンプレートであるため、`createServer()`メソッドを使用してHTTPサーバーを作成し、サーバーがリクエストを受信するたびに実行される`requestListener()`ファンクションに渡す必要があります。Node.jsでのネイティブHTTP Functionの記述方法については、[公式ドキュメント](https://nodejs.org/api/http.html)を参照してください。 #### Python CLIから[Advanced I/O](https://docs.catalyst.zoho.com/ja/serverless/help/functions/advanced-io) Functionを初期化すると、以下のボイラープレートコードがPython Functionディレクトリ内のmain.pyファイルに自動的に含まれます。 Catalyst Advanced I/O Functionsの入出力操作を効率的に処理するために、[flask](https://pypi.org/project/Flask)フレームワークを使用しています。このフレームワークは、開発者に最大限の柔軟性を提供しながら堅牢なPythonアプリケーションを構築するためのツールとライブラリを提供します。また、単一のPythonファイルを使用してアプリケーションを実行できるようにすることで、Functionの効率を向上させます。 Catalyst Advanced I/O FunctionsはPython HTTP Functionのリクエストおよびレスポンスオブジェクトをサポートしています。これらのオブジェクトは、CacheやData StoreなどのCatalystコンポーネントにマッピングされたルートのリクエストとレスポンスを処理します。 ```javascript import json import zcatalyst-sdk import logging from flask import Request, make_response, jsonify def handler(request: Request): app = zcatalyst-sdk.initialize() logger = logging.getLogger() if request.path == "/": response = make_response(jsonify({ 'status': 'success', 'message': 'Hello from {{_MAIN_}}' }), 200) return response elif request.path == "/cache": default_segment = app.cache().segment() insert_resp = default_segment.put('Name', 'DefaultName') logger.info('Inserted cache : ' + str(insert_resp)) get_resp = default_segment.get('Name') return jsonify(get_resp), 200 else: response = make_response('Unknown path') response.status_code = 400 return response ``` ### Function URL 前述のとおり、Advanced I/O Functionのエンドポイントは、一意の呼び出しURLを通じて直接アクセスできます。URLを通じて手動で呼び出し、レスポンスを取得できます。このURLをアプリケーションのコードに実装するか、必要に応じて使用できます。このFunction URLはFunctionの作成時に自動的に生成されます。 Advanced I/O Functionの本番URLは、次の形式です:**https://_project\_domain\_name_.catalystserverless.com/server/_function\_name_/** [開発環境](https://docs.catalyst.zoho.com/ja/deployment-and-billing/environments/introduction/)では、URLに`development`キーが含まれます:https://*project_domain_name*.development.catalystserverless.com/server/*function_name*/ * _https://project\_domain\_name.catalystserverless.com_ は、Catalystアプリケーションの[アプリドメイン](https://docs.catalyst.zoho.com/ja/getting-started/set-up-a-catalyst-project/environment-settings/)です。 * _/server_ はFunctionであることを示します。 * URLはFunction名で識別されます。 * _/execute_ キーワードがないことは、Advanced I/O Functionであることを示します。 FunctionのURLは[コンソールから](https://docs.catalyst.zoho.com/ja/serverless/help/functions/implementation/#code-editor)、またはCatalyst CLIからFunctionをデプロイした後に[ターミナルで](https://docs.catalyst.zoho.com/ja/cli/v1/deploy-resources/introduction/)取得できます。 このベースURLの後に、Advanced I/O Functionのコードで定義したルートを追加して、定義した動作を実行できます。 例えば、以下のルート定義は、GETメソッドでルート`/item/all`にアクセスしたときにData Storeからすべてのデータを取得します: ![Functions- Advanced I/O Function URL](https://catalyst-docs-development.zohostratus.in/images/help/functions/catalyst_functions_advancedio_routes.webp) ベースURLにルートを追加して:_https://catly-687259092.development.catalystserverless.com/server/catly/item/all_ と呼び出すと、Advanced I/O FunctionがData Storeからすべてのアイテムを取得します。 ![Functions- Advanced I/O Function URL](https://catalyst-docs-development.zohostratus.in/images/help/functions/catalyst_functions_advancedio_route_fetch.webp) ### ログへのプッシュ [Catalyst Logs](https://docs.catalyst.zoho.com/ja/devops/help/logs/introduction/)は、すべてのFunction実行のログを必要な詳細とともに表示します。Function実行はログに自動的に記録されます。ただし、Advanced I/O Functionの実行レスポンスデータを手動でログにプッシュすることもできます。 Catalystでは、最大1500文字をログに書き込むことができます。_Info_や_Warning_など、異なるログレベルにレスポンスを個別にプッシュすることもできます。 Advanced I/O Functionのレスポンスデータは、次のメソッドを使用してログにプッシュできます:`console.log()`。 このステートメントは、Advanced I/O Functionが初期化されるデフォルトコードで確認でき、データがログにプッシュされ、ロガーレベルも手動で設定されます。