--- title: "Basic I/O関数の設定" url: https://docs.catalyst.zoho.com/ja/tutorials/microservice/java/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/countfunction`)には、以下が含まれています: * `CountAlert.java`メイン関数ファイル * `catalyst-config.json`設定ファイル * JARライブラリファイル * その他の依存関係 `CountAlert.java`ファイルにコードを追加します。関数の設定には、お好みのIDEを使用できます。 > **Note**: 理解を深めるため、このセクションのコードに目を通してください。 以下のコードをコピーして`CountAlert.java`に貼り付け、ファイルを保存してください。 **CountAlert.java** ```java import com.catalyst.Context; import com.catalyst.basic.BasicIO; import com.catalyst.basic.ZCFunction; import com.zc.component.cache.ZCCache; import com.zc.component.mail.ZCMail; import com.zc.component.mail.ZCMailContent; import java.util.logging.Logger; import java.util.logging.Level; public class CountAlert implements ZCFunction { private static final Logger LOGGER = Logger.getLogger(CountAlert.class.getName()); private static final String FROM_EMAIL="emma@zylker.com"; // 送信者のメールアドレス。Mailで設定したメールアドレスに置き換えてください。 private static final String TO_EMAIL="brandon.cooper@zylker.com"; // アラートメールの送信先メールアドレスに置き換えてください。 @Override public void runner(Context context, BasicIO basicIO) throws Exception { try { // 入力から取得した機能名をパラメータとして渡します。機能名は「CRM」または「Desk」です。 String featureName = (String) basicIO.getParameter("feature_name"); // 入力から取得したしきい値カウントをパラメータとして渡します String mailCountThreshold = (String) basicIO.getParameter("mail_count_threshold"); // Catalyst Cacheのデフォルトセグメントから機能の現在のカウントを取得します String value = ZCCache.getInstance() .getCacheValue("COUNTER_" + featureName) .getValue(); // 値がnullの場合、カウントを1に設定します。これは機能の初回実行時に行われます。 if (value == null) { ZCCache.getInstance() .putCacheValue("COUNTER_" + featureName, String.valueOf(1), 1l); } else { Integer count = Integer.valueOf(value); // 値がnullでない場合、カウントを1増加させます。 count++; // カウント値をCatalyst Cacheのデフォルトセグメントに書き込みます ZCCache.getInstance().putCacheValue("COUNTER_"+featureName,count.toString(),1l); // 現在のカウントがしきい値を超えた場合、上記で設定した受信者にメールアラートを送信します if (count > Integer.valueOf(mailCountThreshold)) { ZCMailContent content = ZCMailContent.getInstance(); content.setFromEmail(FROM_EMAIL); content.setSubject("Alert!"); content.setContent("Count exceeded the threshold limit for the feature:" +featureName); content.setToEmail(TO_EMAIL); ZCMail.getInstance() .sendMail(content); LOGGER.log(Level.INFO, "Email alert sent");// ログに記録されます。コンソールのMonitorセクションのLogsから確認できます } } // ステータスコード200を処理します basicIO.setStatus(200); basicIO.write("The function executed successfully"); }catch(Exception e) { LOGGER.log(Level.SEVERE,"Exception occurred while processing",e); // ログに記録されます。コンソールのMonitorセクションのLogsから確認できます // 例外発生時にステータスコード500を処理します basicIO.setStatus(500); basicIO.write("Error in the function execution"); } } } ``` > **Note**: 次のステップに進む前に、コードの**14**行目の`FROM_EMAIL`と**16**行目の`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ディレクトリの設定が完了しました。