--- title: "Basic I/O関数の設定" url: https://docs.catalyst.zoho.com/ja/tutorials/microservice/nodejs/configure-function/ description: "Catalyst Basic I/O Functionsを使用してシンプルなマイクロサービスを構築し、Zoho CRMと連携して、特定の数以上のリードが作成された際にカウンターベースの自動メールアラートを送信します。" last_updated: 2026-03-05T06:13:24Z service: All Services type: tutorial related_links: - name: "Functions" url: /ja/serverless/help/functions/introduction/ - name: "Functionsディレクトリ" url: /ja/cli/v1/project-directory-structure/functions-directory/ --- # 関数の設定 マイクロサービスのコーディングを始めましょう。 [functionsディレクトリ](https://docs.catalyst.zoho.com/ja/cli/v1/project-directory-structure/functions-directory)(この場合は`functions/counter_based_alert_function`)には、以下が含まれています: * `index.js`メイン関数ファイル * `catalyst-config.json`設定ファイル * Nodeモジュール * [`package.json`](https://docs.npmjs.com/files/package.json)および[`package-lock.json`](https://docs.npmjs.com/configuring-npm/package-lock-json.html)依存関係ファイル `index.js`ファイルにコードを追加します。関数の設定には、お好みのIDEを使用できます。 > **Note:** 理解を深めるため、このセクションのコードに目を通してください。 以下のコードをコピーして`index.js`に貼り付け、ファイルを保存してください。 **index.js** ```javascript const catalyst = require("zcatalyst-sdk-node"); module.exports = async(context, basicIO) => { try { const FROM_EMAIL="emma@zylker.com"; // 送信者のメールアドレス。Mailで設定したメールアドレスに置き換えてください。 const TO_EMAIL="brandon.cooper@zylker.com"; // アラートメールの送信先メールアドレスに置き換えてください。 let featureName = basicIO.getArgument("feature_name"); let mailCountThreshold = basicIO.getArgument("mail_count_threshold"); let app = catalyst.initialize(context); let value = null; let cache = app.cache(); let segment = cache.segment(); let cachePromise = segment.getValue("COUNTER_" + featureName); await cachePromise.then((entity) => { value = entity; }).catch((err) => { throw err; }); if (value == null) { await segment.put("COUNTER_" + featureName,1,1); } else { let count = parseInt(value); // 値がnullでない場合、カウントを1増加させます。 count++; // カウント値をCatalyst Cacheのデフォルトセグメントに書き込みます await segment.put("COUNTER_" + featureName,count,1); // 現在のカウントがしきい値を超えた場合、上記で設定した受信者にメールアラートを送信します if (count > parseInt(mailCountThreshold)) { // メール設定を含むconfigオブジェクトを作成します let config = { from_email: FROM_EMAIL, to_email: [TO_EMAIL], subject: 'Alert!', content: "Count exceeded the threshold limit for the feature:" +featureName, }; // configオブジェクトを渡してメールを送信します let email = app.email(); let mailPromise = email.sendMail(config); await mailPromise.then((mailObject) => { console.log("Email Alert Sent"); }) .catch((err) => { throw err; }); } } // ステータスコード200を処理します basicIO.setStatus(200); basicIO.write("The function executed successfully"); } catch (error) { console.log("Exception occurred while processing",error.toString()); // ログに記録されます。コンソールのMonitorセクションのLogsから確認できます // 例外発生時にステータスコード500を処理します basicIO.setStatus(500); basicIO.write("Error in the function execution"); } context.close(); // アプリケーション終了 }; ``` > **Note**: 次のステップに進む前に、コードの**5**行目の`FROM_EMAIL`と**6**行目の`TO_EMAIL`の値を、指示に従って必ず置き換えてください。 ### Basic I/O関数の動作 はじめにで説明したとおり、関数は呼び出し時にAPIを通じてユーザーから`feature_name`と`mail_count_threshold`の入力を取得します。キャッシュから現在のカウンター値を取得し、呼び出しごとにカウンターを1増加させます。その後、新しいカウンター値をキャッシュに書き込みます。 > **Note**: Catalyst Cacheのデフォルトセグメントを使用するため、設定や新しいセグメントの作成は不要です。詳細については、[Cacheのヘルプページ](https://docs.catalyst.zoho.com/ja/cloud-scale/help/cache/introduction)を参照してください。 現在のカウンター値がユーザーが指定したしきい値を超えた場合、コードで定義されたアドレスにメールアラートが送信されます。この情報は適切なメッセージとともに[Catalyst Logs](https://docs.catalyst.zoho.com/ja/devops/help/logs/introduction)にも記録されます。Catalystコンソールの*Monitor*セクションにある*Logs*から確認できます。 これでfunctionsディレクトリの設定が完了しました。