catalyst-functions について
Zoho Catalyst Functions に関する質問、スキャフォールディング、設定、デプロイを支援する Claude スキルです。関数の種類に応じたハンドラー例や資料を案内し、セキュリティと Node.js の応答構文にも注意を促します。
主な機能
- 01関数タイプ別のガイダンス
- 02スキャフォールディングとデプロイ手順
- 03ハンドラーと設定の資料
- 04セキュリティと API Gateway の確認
- 05ネイティブな Node.js 応答構文
活用シーン
- 01Catalyst 関数の使い方への回答
- 02Catalyst プロジェクトへの関数追加
- 03API Gateway やレート制限の設定
MCP 対応
プロジェクトのスキャフォールディング時に、MCP ツールで組織 ID とプロジェクト ID を取得します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ catalystbyzoho/ agent-skills --skill catalyst-functionsインストール後、Claude Code で/catalyst-functionsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-gateway.mdfunctions-advanced.mdfunctions-basics.mdfunctions-templates.md詳細
仕組み
意図の確認 — 最初に行ってください:
- ユーザーが方法や概念について質問している場合(「関数の書き方」「Basic I/O ハンドラーを見せて」「Security Rules の仕組み」など)は、正しいコードまたは説明で直接回答してください。作業ディレクトリを調べたり、CLAUDE.md を生成したり、コードベース分析モードに切り替えたりしないでください。方法についての質問であれば、ディレクトリが空でも問題ありません。
- ファイルシステムを調べるのは、ユーザーがプロジェクト内でのスキャフォールディング、追加、またはデプロイを明示的に依頼した場合に限ります。
-
ローカルのスキャフォールドを確認する(スキャフォールディング時のみ。方法についての質問では不要)—
catalyst initとfunctions:addはどちらも非対話モードに対応しています(CLI v1.27.0 以降)。.catalystrcが存在するか確認します。存在しない場合は、MCP ツールを使って組織 ID とプロジェクト ID を取得し、次のコマンドを実行します:catalyst init --org <orgId> -p <projectId> -niユーザーに対話形式で
catalyst initを実行するよう依頼してはいけません。NI モードでは既存のプロジェクトのみリンクできます。プロジェクトが存在しない場合は、先にコンソールで作成するようユーザーに伝えてください。init -niの実行後にcatalyst.jsonが存在しないのは想定どおりです。次に関数を追加します(これによりcatalyst.jsonが作成されます):catalyst functions:add --name <name> --type <type> --stack <stack> -ni # e.g. catalyst functions:add --name api --type aio --stack node20 -ni -
関数の種類を特定する — シンプルなリクエスト/レスポンスには Basic I/O、生の HTTP 制御には Advanced I/O、トリガー型には Event、スケジュール実行には Cron/Job、Zoho サービスイベントには Integration、Puppeteer には Browser Logic を使います。
-
references/functions-basics.mdを読み込む — 対応するハンドラーのシグネチャ、catalyst-config.jsonのキー、SDK の初期化パターン、CORS の設定を確認します。 -
references/functions-advanced.mdを読み込む — ファイルのアップロード(busboy)、ストリーミングレスポンス、エラー処理、または関数の連携について確認します。 -
references/api-gateway.mdを読み込む — ルーティングルール、レート制限、またはゲートウェイレベルの CORS について確認します。 -
設定を検証する —
catalyst-config.jsonで使用されているキーがdeploymentとexecutionのみであることを確認します。functionまたはentry_pointは使用しないでください。
レスポンス構文のデフォルト
常に Node.js のネイティブなレスポンス構文をデフォルトで使用してください。 Advanced I/O では生の http.ServerResponse が公開されます。ユーザーが Express テンプレートを明示的に選択しない限り、Express のメソッド(res.status()、res.json())は存在しません。
- ネイティブ(デフォルト):
res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify(data)); - Express(オプトインのみ):
res.status(200).json(data)— ユーザーがexpressをインストールし、ミドルウェアとして設定している場合に限ります。
ユーザーがどのテンプレートを使っているかわからない場合は、質問するか、ネイティブをデフォルトにしてください。
セキュリティチェックリスト
- 関数はデフォルトで誰でもアクセスできます。 関数の作成時、Security Rules は
authenticationをoptionalに設定します。関数の URL は制限なく全世界に公開されます。ユーザーデータまたは機密リソースを読み書きする関数では、Security Rules の JSON で"authentication": "required"を設定してください。 - API Gateway は Security Rules に置き換わるため、両方を使用しないでください。 API Gateway を有効にすると、Security Rules は自動的に無効になります。関数ごとに、認証/ルーティングレイヤーはどちらか一方を選んでください。
トリガー
次のような場合に、このスキルを使用します:「関数を書く」「catalyst function」「Basic I/O」「Advanced I/O」「Event function」「Cron function」「Browser Logic」、catalyst-config.json、「function handler」「API Gateway」「rate limiting」「busboy」「関数でのファイルアップロード」、catalyst deploy --only functions:<function-name>、catalyst functions:add、「function CORS」、または関数の種類や設定に関する質問。
デプロイコマンドについて:
- 1 つの関数をデプロイするには、
catalyst deploy --only functions:<function-name>を使用します(functions:<name>はフォルダー名で関数を指定します)。 - すべての関数を一度にデプロイするには、
catalyst deploy --only functionsを使用します。
リファレンス
| リファレンス | クエリが次の内容に関する場合に読み込みます… |
|---|---|
references/functions-basics.md | 関数に関する質問では、まずここを確認してください。 関数の種類の選択、Basic I/O と Advanced I/O のハンドラーシグネチャ、catalyst-config.json、ユーザースコープと管理者スコープ、CORS、セキュリティルール、実行制限 |
references/functions-advanced.md | Advanced I/O のパターンのみ。 Express と raw-http のテンプレートの違い、ファイルアップロード(busboy)、Stratus からのファイルのストリーミング、エラー処理のパターン、ローカル開発用の CORS、ローカルテスト、関数のチェーン化、ZCQL の結果のアンラップ、HTTP ペイロードの上限 |
references/functions-templates.md | Event、Cron、Job、または Integration 関数。 すべてのバックグラウンド/スケジュール実行タイプのハンドラーテンプレート、SDK コンポーネントのリファレンス、リトライの動作、コールドスタート時のデータ、一般的なエラーの完全な一覧 |
references/api-gateway.md | API Gateway の設定のみ。 ゲートウェイの有効化/無効化、ルーティングルール、レート制限、ゲートウェイ経由の CORS |