Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

Configurar la función

Comencemos a codificar el microservicio. El directorio de funciones, en este caso functions/counter_based_alert_function, contiene:

  • El archivo principal de función index.js
  • El archivo de configuración catalyst-config.json
  • Módulos de Node
  • Archivos de dependencias package.json y package-lock.json.

Agregaremos código en el archivo index.js. Puedes usar cualquier IDE de tu elección para configurar la función.

Nota: Por favor revisa el código proporcionado en esta sección para comprenderlo mejor.

Copia el código que se muestra a continuación y pégalo en index.js y guarda el archivo.

index.js
copy
const catalyst = require("zcatalyst-sdk-node");
module.exports = async(context, basicIO) => {
try {
 const FROM_EMAIL="emma@zylker.com"; // La dirección de correo electrónico del remitente. Reemplaza esto con la dirección de correo que configuraste en Mail.
 const TO_EMAIL="brandon.cooper@zylker.com"; // Reemplaza esto con la dirección de correo electrónico a la que deseas que se envíe el correo de alerta.
 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);	
 	// Si el valor no es null, entonces el conteo se incrementa en 1.
 	count++;	
 	// Escribe el valor del conteo en el segmento predeterminado de Catalyst cache	
 	await segment.put("COUNTER_" + featureName,count,1);	
 	// Si el conteo actual es mayor que el valor umbral, entonces se envía una alerta por correo al receptor configurado arriba
 	if (count > parseInt(mailCountThreshold)) {
 		//Crea un objeto de configuración con la configuración del correo
 		let config = {
 			from_email: FROM_EMAIL, 
 			to_email: [TO_EMAIL],				
 			subject: 'Alert!',
 			content: "Count exceeded the threshold limit for the feature:" +featureName,				
 		};
 		//Envía el correo pasando el objeto de configuración
 		let email = app.email();
 		let mailPromise = email.sendMail(config);
 		await mailPromise.then((mailObject) => {	
 				console.log("Email Alert Sent");						
 			})
 			.catch((err) => {
 			throw err;				
 			});		
 	}
    }
    // Maneja el código de estado 200
 	 basicIO.setStatus(200);
 	 basicIO.write("The function executed successfully");
 } catch (error) {
 	console.log("Exception occurred while processing",error.toString()); //Escrito en los logs. Puedes ver este log desde Logs bajo la sección Monitor en la consola
 	// Maneja el código de estado 500, cuando ocurre una excepción
 	basicIO.setStatus(500);
 	basicIO.write("Error in the function execution");
 	}
 context.close(); //fin de la aplicación
};
View more
Nota: Antes de continuar con el siguiente paso, asegúrate de reemplazar los valores de FROM_EMAIL en la línea 5 y TO_EMAIL en la línea 6 en el código como se indica.

Funcionamiento de la función Basic I/O

Como se discutió en la Introducción, la función obtiene las entradas para feature_name y mail_count_threshold del usuario a través de la API, cuando se invoca. Obtiene el valor actual del contador desde la caché y luego lo incrementa en 1 después de cada invocación. Luego escribe el nuevo valor del contador en la caché.

Nota: Dado que estamos usando el segmento predeterminado en Catalyst Cache, no necesitamos configurarlo ni crear un nuevo segmento. Puedes aprender más sobre esto desde la página de ayuda de Cache

Si el valor actual del contador es mayor que el límite umbral especificado por el usuario, la alerta por correo se enviará a la dirección definida en el código. Esta información también se envía a Catalyst Logs con un mensaje apropiado. Puedes verificar esto desde Logs bajo la sección Monitor en la consola de Catalyst.

El directorio de funciones ahora está configurado.

Última actualización 2026-03-20 21:51:56 +0530 IST

ENLACES RELACIONADOS

Functions Functions Directory