お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

関数の設定

マイクロサービスのコーディングを始めましょう。 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(); // アプリケーション終了
};
View more
Note: 次のステップに進む前に、コードの5行目のFROM_EMAIL6行目のTO_EMAILの値を、指示に従って必ず置き換えてください。

Basic I/O関数の動作

はじめにで説明したとおり、関数は呼び出し時にAPIを通じてユーザーからfeature_namemail_count_thresholdの入力を取得します。キャッシュから現在のカウンター値を取得し、呼び出しごとにカウンターを1増加させます。その後、新しいカウンター値をキャッシュに書き込みます。

Note: Catalyst Cacheのデフォルトセグメントを使用するため、設定や新しいセグメントの作成は不要です。詳細については、Cacheのヘルプページを参照してください。

現在のカウンター値がユーザーが指定したしきい値を超えた場合、コードで定義されたアドレスにメールアラートが送信されます。この情報は適切なメッセージとともにCatalyst Logsにも記録されます。CatalystコンソールのMonitorセクションにあるLogsから確認できます。

これでfunctionsディレクトリの設定が完了しました。

最終更新日 2026-03-05 11:43:24 +0530 IST