--- title: "Configurar la función Basic I/O" url: https://docs.catalyst.zoho.com/es/tutorials/microservice/nodejs/configure-function/ description: "Construye un microservicio con Catalyst Basic I/O Functions y Zoho CRM para enviar alertas por correo cuando se crean más de un número específico de leads." last_updated: 2026-11-04T10:10:44Z service: All Services type: tutorial related_links: - name: "Functions" url: /es/serverless/help/functions/introduction/ - name: "Functions Directory" url: /es/cli/v1/project-directory-structure/functions-directory/ --- # Configurar la función Comencemos a codificar el microservicio. El [directorio de funciones](https://docs.catalyst.zoho.com/es/cli/v1/project-directory-structure/functions-directory), 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`](https://docs.npmjs.com/files/package.json) y [`package-lock.json`](https://docs.npmjs.com/configuring-npm/package-lock-json.html). 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** ```javascript 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 }; ``` > **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](https://docs.catalyst.zoho.com/es/cloud-scale/help/cache/introduction) 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](https://docs.catalyst.zoho.com/es/devops/help/logs/introduction) 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.