関数の設定
マイクロサービスのコーディングを始めましょう。 functionsディレクトリ(この場合はfunctions/countfunction)には、以下が含まれています:
- CountAlert.javaメイン関数ファイル
- catalyst-config.json設定ファイル
- JARライブラリファイル
- その他の依存関係
CountAlert.javaファイルにコードを追加します。関数の設定には、お好みのIDEを使用できます。
Note: 理解を深めるため、このセクションのコードに目を通してください。
以下のコードをコピーしてCountAlert.javaに貼り付け、ファイルを保存してください。
CountAlert.java
copy
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のヘルプページを参照してください。
現在のカウンター値がユーザーが指定したしきい値を超えた場合、コードで定義されたアドレスにメールアラートが送信されます。この情報は適切なメッセージとともにCatalyst Logsにも記録されます。CatalystコンソールのMonitorセクションにあるLogsから確認できます。
これでfunctionsディレクトリの設定が完了しました。
最終更新日 2026-03-05 11:43:24 +0530 IST