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