# AppSail -------------------------------------------------------------------------------- title: "Introducción" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.820Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/introduction/" service: "Serverless" -------------------------------------------------------------------------------- # AppSail ## Introducción ### Descripción general Catalyst AppSail, un componente de Catalyst Serverless, es una plataforma completamente gestionada e independiente para desplegar servicios web en la nube con facilidad. AppSail te proporciona una plataforma potente y altamente escalable para desplegar desde aplicaciones web simples hasta grandes aplicaciones empresariales, sin preocupaciones de configuración o gestión de infraestructura. Puedes desplegar un servicio web en Catalyst AppSail de una de estas maneras: * Como un runtime gestionado por Catalyst: Catalyst proporciona soporte nativo para aplicaciones web de runtimes específicos de **Java, Node.js y Python**. Puedes desplegar directamente los archivos de compilación de tu aplicación en AppSail en este caso, para alojarla en la nube. AppSail admite cualquier framework, biblioteca, plugin o dependencia de estos runtimes soportados que puedas usar en tu aplicación, siempre que no dependan de la plataforma. * Como un runtime personalizado: Puedes desplegar una imagen de contenedor (imagen OCI) de tu aplicación desde cualquiera de estos servicios de registro de contenedores: Docker Hub, AWS Elastic Container Registry o Google Artifact Registry, o una imagen de contenedor desde tu registro local. Este soporte de runtime personalizado te permite desarrollar y **desplegar servicios web de cualquier runtime o framework de tu elección**. Por ejemplo, puedes desplegar aplicaciones en PHP, Go, Ruby o cualquier runtime de Python, Java o Node.js que no estén soportados nativamente por Catalyst. Nota: Catalyst solo admite el despliegue de imágenes compatibles con OCI construidas para la plataforma Linux AMD64 (x86-64). A diferencia de las funciones Serverless de Catalyst que codificas siguiendo una plantilla específica de Catalyst basada en el tipo de función, los servicios de AppSail pueden ser completamente independientes de cualquier requisito de codificación específico de Catalyst. Aún puedes emplear cualquier componente de Catalyst en tu servicio de AppSail a través de su SDK específico de plataforma. <br> ### Métodos de despliegue Puedes desplegar un servicio de AppSail usando cualquiera de estas herramientas: #### Desplegar desde la CLI de Catalyst * Runtime gestionado por Catalyst: Puedes inicializar o agregar un servicio de AppSail desde la CLI y desplegarlo en la nube desde tu sistema local para todos los runtimes gestionados por Catalyst. La CLI también admite un despliegue independiente sin inicialización previa. * Runtime personalizado: Puedes desplegar una imagen de contenedor de tu aplicación en la nube desde tu registro local inicializándola o agregándola como un servicio de AppSail de manera similar. Catalyst admite dos protocolos (como una imagen Docker o un archivo Docker) para este propósito. También puedes hacer un despliegue independiente. Nota: También puedes probar tu aplicación a través de un localhost antes de desplegarla desde la CLI. Esto es compatible con aplicaciones desplegadas directamente o como imágenes de contenedor. #### Desplegar desde la consola de Catalyst * Runtime gestionado por Catalyst: Puedes subir el archivo de compilación de tu aplicación directamente en la consola en la sección Serverless, configurar los detalles necesarios y desplegarlo al instante. * Runtime personalizado: Catalyst te permite desplegar una imagen de contenedor alojada en uno de los servicios de registro de contenedores en la nube soportados en AppSail proporcionando su URL y otros detalles, después de integrarse con el servicio de registro. <br> ### Gestión de instancias y plataforma AppSail te ofrece control completo sobre la estructura de codificación y ejecución de tu aplicación. Catalyst te permite realizar una variedad de configuraciones en el entorno de ejecución de tu servicio web, como definir el tamaño de memoria y disco a asignar para su ejecución, el puerto en el que debe ejecutarse, las variables de entorno necesarias para tu aplicación o el comando de inicio de la aplicación. Puedes acceder a todas las aplicaciones que despliegues a través de la URL de AppSail que Catalyst generará automáticamente. Además, tienes la opción de mapear tu propio dominio a un servicio de AppSail y acceder a él a través de tu URL de dominio personalizado. Cuando tu servicio se ejecuta, Catalyst genera instancias de servidor para su ejecución según sea necesario y las escala hacia arriba o hacia abajo según el tráfico, asegurando una latencia mínima. Podrás ver las instancias generadas para tu servicio desde la consola cuando se ejecute, y realizar actividades como eliminar instancias del servicio. Catalyst también ofrece informes detallados, estadísticas y registros de ejecución de todos tus servicios de AppSail que se ejecutaron, lo que te ayuda a tomar decisiones de negocio informadas. <br> Este documento de ayuda cubre la totalidad del despliegue de servicios de software en AppSail, directamente o como imágenes de contenedor a través de la consola o la CLI. También incluye guías útiles para aplicaciones simples que puedes construir en varios frameworks de cada runtime gestionado por Catalyst, junto con código de ejemplo y los pasos para asociarlas con AppSail. También puedes encontrar ejemplos para depurar un servicio de AppSail en diferentes IDEs. -------------------------------------------------------------------------------- title: "Conceptos básicos de AppSail" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.821Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/appsail-basics/" service: "Serverless" -------------------------------------------------------------------------------- ### Comparación entre funciones Serverless de Catalyst y servicios de AppSail Tanto Catalyst Functions como AppSail son ofertas Serverless que te permiten construir la lógica backend de tu solución que contiene las funcionalidades principales. A continuación se presentan algunos puntos importantes sobre las diferencias y similitudes entre las funciones Serverless de Catalyst y los servicios de AppSail. Necesitarás entenderlos para asegurarte de usar el componente correcto según tus necesidades. <br> <table class="content-table"> <thead> <tr> <th><strong>Funciones Serverless de Catalyst</strong></th> <th><strong>Servicios de AppSail</strong></th> </tr> </thead> <tbody> <tr><td>Usa las funciones Serverless de Catalyst para construir lógica backend para operaciones HTTP básicas o elaboradas, flujos basados en eventos, ejecuciones de trabajos programados o integraciones.</td> <td>Usa los servicios de AppSail para construir y desplegar servicios web independientes para cualquier requisito.</td></tr> <tr><td>Las funciones generalmente empaquetan una lógica de aplicación estrechamente acoplada que incorpora componentes de Catalyst a través de SDKs específicos del lenguaje.</td> <td>También puedes implementar SDKs de componentes en tus aplicaciones de AppSail. Sin embargo, necesitarás gestionar la implementación por tu cuenta.</td></tr> <tr><td>Las funciones de Catalyst no pueden funcionar independientemente fuera de la plataforma de Catalyst, ya que implementan estructuras de codificación predefinidas específicas de Catalyst.</td> <td>Los servicios de AppSail son entidades independientes que pueden ser diseñadas de cualquier manera que necesites, sin restricciones específicas de Catalyst en el formato.</td></tr> <tr><td>Catalyst maneja la implementación y el mantenimiento de las dependencias con las que las funciones Serverless están pre-diseñadas. Por ejemplo, los módulos de node que se incluyen de manera predeterminada cuando inicializas una función de Node.js son implementados por Catalyst.</td> <td>Con AppSail, debes manejar completamente toda la implementación y el mantenimiento de todos los frameworks, bibliotecas, plugins, dependencias y gastos generales que puedas usar en tu código para todas las plataformas soportadas.</td></tr> <tr><td>Con las funciones Serverless, incurres en costos cuando se realizan llamadas API para invocar los endpoints de las funciones. El modelo de facturación funciona basado en el número de llamadas API realizadas para acceder a un endpoint de función.</td> <td>Los servicios de AppSail incurren en costos basados en el número de instancias de servidor que están activamente en ejecución. En otras palabras, se te facturará por el tiempo de actividad de la instancia, y no por el número de solicitudes realizadas directamente para acceder a un endpoint de aplicación.</td></tr> <tr><td>No necesitarás realizar ninguna gestión de infraestructura, backend o plataforma para las funciones Serverless.</td> <td>No podrás realizar ninguna gestión de infraestructura. Sin embargo, puedes gestionar la plataforma de las instancias de tu aplicación después de desplegarla.</td></tr> <tr><td>Puedes desplegar múltiples funciones de cualquier stack o tipo soportado en un solo proyecto a través de las funciones Serverless.</td> <td>Puedes desplegar múltiples aplicaciones de cualquier stack soportado o stack personalizado en un solo proyecto a través de AppSail.</td></tr> </tbody> </table> <br> ### Comparación de despliegues de servicios de AppSail como runtimes gestionados por Catalyst vs runtime personalizado La siguiente tabla explica las diferencias entre desplegar servicios de AppSail como runtime gestionado por Catalyst y como runtimes personalizados. Después de ser desplegados en Catalyst, puedes configurar y gestionar todos los servicios de AppSail y su plataforma de la misma manera, y obtener estadísticas e informes para todas las aplicaciones. <table class="content-table"> <thead> <tr> <th><strong>Runtimes gestionados por Catalyst</strong></th> <th><strong>Runtimes personalizados</strong></th> </tr> </thead> <tbody> <tr><td>Despliega los archivos de compilación de tu aplicación directamente en AppSail. En este método, solo envías tu código a Catalyst, y nosotros manejamos su ejecución en una plataforma construida para runtimes gestionados por Catalyst.</td> <td>Despliega una imagen de contenedor de tu aplicación para alojarla en Catalyst. Puedes desplegar una imagen desde tu registro local, o una que esté alojada en un servicio de registro de contenedores soportado.</td></tr> <tr><td>El runtime está completamente gestionado por Catalyst. Esto significa que no necesitas manejar los archivos ejecutables del runtime o las dependencias del stack para la ejecución de tu aplicación. Aún necesitarás gestionar las dependencias que el código fuente de tu aplicación incluye.</td> <td>Debes gestionar todas las dependencias, incluidas las dependencias del runtime. Necesitarás instalar los binarios que tu aplicación necesita y gestionar tu runtime y las dependencias del SO por tu cuenta.</td></tr> <tr><td>Solo puedes desplegar servicios web que sean de los runtimes soportados nativamente de Java, Node y Python por Catalyst.</td> <td>Puedes desplegar servicios web de cualquier entorno de programación y runtimes, como Go o PHP, e incluso los runtimes de Java, Node.js, Python que no están soportados nativamente por Catalyst.</td></tr> </tbody> </table> <br> ### Conceptos básicos de ejecución de AppSail AppSail te permite gestionar la plataforma de ejecución de tu aplicación después de su despliegue. Cuando tu aplicación es invocada, estará ejecutándose en una o varias instancias basado en el número de solicitudes que se están atendiendo. La lógica de generación de instancias de servicio para una aplicación invocada se explica a continuación: * Cuando se realiza la primera solicitud para acceder a una aplicación inactiva, AppSail tiene un tiempo de arranque en frío inicial para generar una instancia de servidor completamente nueva. Esta es una característica de las plataformas serverless, donde las instancias solo se generan bajo demanda. * La memoria y el tamaño de disco que configuras para la ejecución de tu aplicación se utilizan después de que la aplicación es invocada. * Cuando el 80% del umbral de solicitudes de una instancia activa se utiliza, AppSail escalará automáticamente hacia arriba y generará una nueva instancia para atender nuevas solicitudes. Cuando la carga se reduce, AppSail escalará hacia abajo y eliminará las instancias excedentes. * Una instancia de aplicación, cuando se genera, estará activa durante 5 minutos en total. Incluso si se realiza una sola solicitud para acceder a la aplicación, la instancia estará activa para atenderla durante su duración. * Puedes realizar una anulación manual para terminar instancias de servidor en situaciones donde tu aplicación experimenta errores o mal funcionamiento, o está atrapada en un punto muerto. Por ejemplo, un error de bucle infinito. También puedes gestionar tu aplicación de otras maneras, como deshabilitar temporalmente una aplicación o eliminarla permanentemente. Consulta la sección de ayuda de la consola para detalles sobre los registros de despliegue y ejecución, o los pasos para gestionar tus servicios de AppSail. #### Puntos clave a recordar Catalyst observa ciertas restricciones para los servicios de AppSail que creas, en términos de recursos o ejecuciones de instancias. A continuación se presentan algunas de las limitaciones clave que debes recordar: * Solo puedes crear 5 servicios de AppSail en un solo proyecto de Catalyst. * Las instancias de aplicación inactivas se reducirán después de 5 minutos de tiempo de actividad* * AppSail solo generará 5 instancias para una sola aplicación en total* * Catalyst puede ejecutar 100 solicitudes concurrentemente por instancia de aplicación.* * AppSail escalará y generará una nueva instancia cuando el 80% del umbral de solicitudes de una instancia activa se utilice. Es decir, después de que una instancia atienda 80 solicitudes concurrentemente, se generará una nueva instancia. * Tu aplicación necesitará comenzar a escuchar en el puerto de escucha dentro de 10 segundos. Cuando no se encuentre ningún proceso activo en ese puerto dentro de esta duración, la instancia del usuario que se creará pasado el umbral será eliminada, y la siguiente solicitud activará una nueva instancia de arranque en frío. * Una solicitud de aplicación necesita completarse en 30 segundos. De lo contrario, la solicitud se agotará por tiempo de espera. Nota: Para las limitaciones indicadas con un \\*, podemos aumentar los límites definidos caso por caso, según tus requisitos. Por favor contacta al soporte de Catalyst en support@zohocatalyst.com con tus requisitos específicos para hacer solicitudes. -------------------------------------------------------------------------------- title: "Configuraciones de AppSail" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.821Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/appsail-configurations/" service: "Serverless" -------------------------------------------------------------------------------- # Configuraciones de AppSail ### Comandos de inicio Puedes configurar comandos de inicio para tus servicios de AppSail que especifican el arranque de la aplicación según el stack de programación, el framework, los archivos de la aplicación y el servidor web utilizado. Esencialmente, este es el comando que proporcionarías en tu entorno local para iniciar una aplicación con tu servidor configurado. Los comandos de inicio se pueden configurar mientras despliegas la aplicación desde la CLI durante el despliegue, o directamente en la consola después de que la aplicación está desplegada en la nube. Nota: Configurar los comandos de inicio es opcional para las aplicaciones desplegadas como runtimes personalizados. Esto se debe a que puedes agregar el comando de inicio directamente en la definición de la imagen OCI. Sin embargo, aún puedes configurarlo después de que la aplicación se despliegue en la consola y anular el comando predefinido. El comando de inicio se puede configurar para una aplicación de dos maneras: * Aplicaciones desplegadas desde la CLI: Configura esto en el archivo app-config.json para la clave command, si inicializas o agregas la aplicación antes de desplegarla. Si haces un despliegue independiente, puedes proporcionar esto como entrada durante el proceso de despliegue. Aún puedes configurar esto directamente en la consola después de desplegarlo. * Aplicaciones desplegadas en la consola: Configura esto directamente en la consola. <br> #### Comandos de inicio para runtimes gestionados por Catalyst Java: Las aplicaciones Java típicamente incluyen servidores embebidos en el código de la aplicación, según el framework utilizado. Por ejemplo, las aplicaciones Spring Boot vienen con servidores web incluidos de manera predeterminada. Sin embargo, ciertos frameworks o formatos podrían no incluir servidores de manera predeterminada, y necesitarás configurar un servidor embebido de forma independiente en tu código Java. Algunos servidores web comunes que se utilizan son Eclipse Jetty o Apache Tomcat. Nota: Catalyst admite dos formatos para aplicaciones Java: Java WAR y Java SE. Cuando inicializas una aplicación Java como un archivo WAR, no necesitas proporcionar ningún servidor embebido para tu aplicación, ya que Catalyst la empaqueta con el servidor Jetty de manera predeterminada. Por lo tanto, tampoco necesitas proporcionar comandos de inicio. Catalyst manejará el arranque de la aplicación. Sin embargo, necesitarás embeber un servidor si seleccionas la opción Java SE y proporcionar los comandos de inicio correspondientes. Puedes consultar la guía de ayuda de Java para algunos ejemplos. Node.js y Python: Para aplicaciones Node.js y Python, dependiendo de los frameworks que uses, los servidores de despliegue podrían incluirse como parte del framework. Necesitarás configurar y gestionar los servidores de aplicaciones de manera correspondiente, y proporcionar los comandos de inicio apropiados para tus aplicaciones. Catalyst no proporciona ningún soporte integrado para ningún servidor para estos entornos de programación. <br> Ciertos frameworks esperan que el [puerto de escucha HTTP](#ports-for-app-executions) se especifique en la línea de comandos al iniciar el servidor. Por ejemplo: python3 -m http.server ${X_ZOHO_CATALYST_LISTEN_PORT} Sin embargo, en AppSail, los comandos de inicio se ejecutan directamente sin involucrar ninguna operación de shell. Por lo tanto, cuando sea necesario, debes especificar que el comando de inicio se ejecute como un comando de shell para cualquier completado de shell. Por ejemplo: sh -c 'python3 -m http.server ${X_ZOHO_CATALYST_LISTEN_PORT}' <br> ### Variables de entorno Las variables de entorno se declaran fuera del código fuente principal y pueden ser referenciadas cuando sea necesario. Catalyst te permite almacenar y gestionar variables tanto para los entornos de desarrollo como de producción. Declara una única variable y configura valores para ambos entornos. Por ejemplo, si necesitas declarar una variable de token de autenticación que contendrá diferentes valores en ambos entornos, puedes hacerlo. Puedes configurar variables de entorno para aplicaciones de runtime gestionado por Catalyst y para aplicaciones de runtime personalizado. Estas serán enviadas a la instancia de la plataforma cuando tu servicio se genere, y podrán ser accedidas con código específico del runtime. Nota: Si deseas declarar una variable de producción, debes haber desplegado tu proyecto en el entorno de producción. No podrás acceder a las variables de producción si tu proyecto no está desplegado, o si el entorno de producción está deshabilitado. AppSail te permite configurar variables de entorno de dos maneras: * Aplicaciones desplegadas desde la CLI: Configura esto en el archivo app-config.json para la clave env_variables, si inicializas o agregas la aplicación antes de desplegarla. Si haces un despliegue independiente, configura esto en la consola. * Aplicaciones desplegadas en la consola: Configura esto directamente en la consola. #### Usar una variable de entorno Después de crear una variable de entorno, puedes llamarla en el código de tu aplicación por su nombre de clave de diferentes maneras en diferentes entornos de programación. La sintaxis para cada entorno de programación se muestra a continuación: * Java: System.getenv(variable_name) * Node.js: process.env.[variable_name] * Python: os.getenv(variable_name) variable_name: El nombre de clave declarado para la variable Nota: El valor de la variable se obtiene según el entorno en el que se invoca la aplicación. Es decir, si se invoca la URL de desarrollo de la aplicación, se obtiene el valor de desarrollo de la variable, y viceversa. <br> ### Asignación de memoria y disco Puedes asignar memoria para la ejecución de tu aplicación según su carga y requisitos de rendimiento. Si no configuras específicamente una memoria para tu aplicación, se asignará la memoria predeterminada de 512 MB para su ejecución. También puedes asignar el espacio en disco necesario para tu aplicación según su tamaño. El almacenamiento predeterminado asignado para tu aplicación será de 256 MB también. Siempre puedes editar y reconfigurar la memoria y el almacenamiento después de analizar los requisitos de tu aplicación según su rendimiento, y optimizarla aún más. AppSail te permite configurar la memoria de dos maneras: * Aplicaciones desplegadas desde la CLI: Configura esto en el archivo app-config.json para la clave memory, inicializa o agrega la aplicación antes de desplegarla. Si haces un despliegue independiente, configura esto en la consola. * Aplicaciones desplegadas en la consola: Configura esto directamente en la consola. <br> ### Puertos para ejecuciones de aplicaciones AppSail escucha a través de puertos HTTP y otorga acceso de red en tu aplicación. Es decir, todas las conexiones entrantes a la aplicación serán escuchadas a través de un puerto específico. Puedes configurar el puerto de escucha en Catalyst haciendo referencia a la clave de [variable de entorno](#environment-variables) X_ZOHO_CATALYST_LISTEN_PORT en el código de tu aplicación y conectarte a Internet. Catalyst verificará el proceso escuchando en este puerto. Consulta la sección de guía de ayuda para ejemplos de configuración del puerto de escucha de AppSail en el código de tu aplicación. Nota: Puedes asignar un puerto que necesites para tu servicio de AppSail. Los puertos dentro del rango de 0 a 1024 están reservados, con la excepción de los puertos 80 y 443. Puedes usar cualquier puerto que no sean estos. El puerto 9000 se usará de manera predeterminada. Dependiendo del framework de tu runtime, podrías necesitar especificar el puerto de escucha HTTP en tu [comando de inicio](#startup-commands) al iniciar el servidor. -------------------------------------------------------------------------------- title: "Implementar Catalyst SDK" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.821Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/implement-catalyst-sdk/" service: "Serverless" -------------------------------------------------------------------------------- # Implementar Catalyst SDK en AppSail Catalyst te permite implementar los paquetes SDK de los entornos de desarrollo soportados en tus aplicaciones de AppSail para runtimes gestionados por Catalyst. Esto te permite aprovechar otros servicios y componentes de Catalyst en la funcionalidad de tu aplicación. Puedes implementar los SDKs de desarrollo de varios entornos de programación en tu aplicación como se especifica a continuación. Nota: Esto solo está disponible para servicios web construidos para un runtime gestionado por Catalyst soportado. No podrás implementar el SDK de Catalyst para aplicaciones desplegadas como imágenes OCI a través de runtime personalizado. ### Implementar Catalyst Java SDK Puedes descargar el paquete de Catalyst Java SDK desde la configuración de Developer Tools en tu consola de Catalyst e incluirlo en el código fuente de tu aplicación. Luego puedes implementar el Catalyst Java SDK en el código de tu aplicación e inicializarlo. Consulta la ayuda de Catalyst Java SDK para detalles sobre las diversas funcionalidades del conjunto de herramientas del SDK y fragmentos de código de ejemplo. Los pasos para implementar e inicializar el SDK de Catalyst para diferentes versiones de API de servlets Java se demuestran con códigos de ejemplo a continuación. En todos los casos, Catalyst requiere que implementes la interfaz **AuthHeaderProvider** del paquete de Catalyst Java SDK. La implementación define el método getHeader() que devuelve el valor del encabezado de la solicitud. Luego puedes pasar un objeto de la clase de implementación al método init(), para inicializar el SDK. #### Versiones de Java Servlet API <=4 Código de ejemplo para aplicaciones Java que usan servlets Java de versiones de API menores o iguales a 4.0 (javax.servlet): **Clase de implementación:** package com.zoho.catalyst.appsail.demo.utils; import javax.servlet.http.HttpServletRequest; import com.zc.auth.AuthHeaderProvider; public class AuthProviderImpl implements AuthHeaderProvider { HttpServletRequest request; public AuthProviderImpl(HttpServletRequest request) { this.request = request; } @Override public String getHeaderValue(String key) { return request.getHeader(key); } } <br> **Inicialización:** AuthProviderImpl authProviderImpl = new AuthProviderImpl(req); CatalystSDK.init(authProviderImpl) <br> #### Versiones de Java Servlet API >=5 Código de ejemplo para aplicaciones Java que usan servlets Java de versiones de API mayores o iguales a 5.0 (jakarta.servlet): **Clase de implementación:** import com.zc.auth.AuthHeaderProvider; import jakarta.servlet.http.HttpServletRequest; public class AuthProviderImpl implements AuthHeaderProvider { private HttpServletRequest request; AuthProviderImpl(HttpServletRequest request) { this.request = request; } @Override public String getHeaderValue(String s) { return request.getHeader(s); } } <br> **Inicialización:** CatalystSDK.init(new AuthProviderImpl((HttpServletRequest) servletRequest)); <br> Si estás desarrollando una aplicación Java con la herramienta de compilación Maven, puedes incluir el Catalyst Java SDK como una dependencia en el archivo de configuración de Maven (pom.xml), en lugar de descargar y agregar el SDK en tu código fuente manualmente. Para agregar el SDK de Catalyst en un proyecto Maven, simplemente agrega el repositorio de Zoho (publicado en MvnRepository) en el archivo pom.xml como se muestra a continuación: &lt;repositories&gt; &lt;repository&gt; &lt;id&gt;java-sdk&lt;/id&gt; &lt;url&gt;https://maven.zohodl.com&lt;/url&gt; &lt;/repository&gt; &lt;/repositories&gt; Luego puedes agregar el Java SDK como una dependencia en pom.xml como se muestra a continuación: &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;com.zoho.catalyst&lt;/groupId&gt; &lt;artifactId&gt;java-sdk&lt;/artifactId&gt; &lt;version&gt;1.15.0&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt; <br> ### Implementar Catalyst Node.js SDK Puedes instalar el paquete de Catalyst Node.js SDK ejecutando el siguiente comando en tu terminal e incluyéndolo en el código fuente de tu aplicación: npm install zcatalyst-sdk-node --save Esto instalará la última versión soportada del Node.js SDK. También puedes instalar una versión soportada específica de esta manera: npm install zcatalyst-sdk-node@2.1.1 --save Luego puedes inicializar el Node.js SDK en el código de tu aplicación como se muestra en el código de ejemplo a continuación. Esto pasa el objeto de solicitud al método initialize(). const catalyst = require('zcatalyst-sdk-node') const express = require('express') const app = express() app.get((req, res) => { let catalystApp = catalyst.initialize(req); //Tu código va aquí }) app.listen(process.env("X_ZOHO_CATALYST_LISTEN_PORT") || 9000) Consulta la ayuda de Catalyst Node.js SDK para más detalles. La documentación del SDK también proporciona fragmentos de código de ejemplo para todas las funcionalidades soportadas. <br> ### Implementar Catalyst Python SDK Puedes instalar el SDK de Catalyst Python para tu solución de AppSail ejecutando el siguiente comando en tu terminal e incluyéndolo en el código fuente de tu aplicación: pip install zcatalyst-sdk -t . Luego puedes importar el Python SDK en tu código para tu aplicación de Catalyst. El SDK necesitará ser inicializado con el objeto de solicitud antes de cada solicitud. A continuación se muestra un fragmento de código de ejemplo para importar e inicializar el Python SDK en una aplicación web Flask: from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Consulta la ayuda de Catalyst Python SDK para detalles sobre las diversas funcionalidades del conjunto de herramientas del SDK y fragmentos de código de ejemplo. -------------------------------------------------------------------------------- title: "Depurar servicios de AppSail" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.822Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/debug-appsail/" service: "Serverless" -------------------------------------------------------------------------------- # Depurar servicios de AppSail Esta sección contiene ejemplos para depurar servicios de AppSail de ejemplo construidos en frameworks específicos de runtimes gestionados por Catalyst en IDEs populares. Dependiendo del entorno de programación y el framework, se utilizan IDEs apropiados para demostrar los pasos. ## Java ### Depurar una aplicación Spring MVC en Visual Studio Code Sigue los pasos proporcionados en esta sección para depurar y probar una aplicación Java construida en el framework Spring MVC en el entorno de Visual Studio Code. **Prerrequisitos:** Una aplicación Spring MVC creada y disponible en VSCode 1. Abre el proyecto de la aplicación Spring en tu IDE de VSCode. 2. Instala la siguiente extensión en tu VSCode: Debugger for Java. 3. Después de que la extensión se haya instalado, haz clic en Run, luego en Add Configuration... Selecciona Java de la barra de herramientas. Esto abrirá el archivo launch.json. 4. Ahora haz clic en Add Configuration... que se muestra en el archivo y selecciona la opción Java: Attach to Remote Program. 5. Actualiza el valor de la clave "hostName" como "localhost". Luego actualiza el valor de la clave "port" como "5005". 6. Ahora navega a Run desde la barra de herramientas y haz clic en Start Debugging para depurar tu aplicación. <br> ### Depurar una aplicación Spring MVC en IntelliJ IDEA Sigue los pasos proporcionados en esta sección para depurar y probar una aplicación Java construida en el framework Spring MVC en el entorno IntelliJ IDEA. **Prerrequisitos:** Una aplicación Spring MVC creada y disponible en IntelliJ IDEA 1. Abre el proyecto de la aplicación Spring en tu IntelliJ IDEA. 2. Ejecuta la aplicación Spring usando el siguiente comando en la terminal del IDE: mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" 3. Haz clic derecho en la opción Run en la barra de herramientas y haz clic en Debug. 4. Ahora haz clic en Edit Configurations y haz clic en el ícono \+ para crear una nueva configuración, o haz clic en Add New Configuration y haz clic en Remote JVM Debug. 5. Puedes cambiar el número de puerto según tus requisitos. En este ejemplo, usaremos el puerto "5005". Ahora verifica que "Use module classpath" apunte a tu aplicación Spring, luego haz clic en Debug. 6. Verifica si la consola de depuración muestra lo siguiente: "Connected to the target VM, address: 'localhost:5005', transport: 'socket'" Nota: Asegúrate de que "Mute Breakpoints" no esté habilitado. 7. Ahora puedes crear puntos de interrupción en tu aplicación Spring y comenzar a depurarla. ## AppSail en la consola -------------------------------------------------------------------------------- title: "Descripción general" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.822Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/console/overview/" service: "Serverless" -------------------------------------------------------------------------------- # AppSail en la consola ## La sección de descripción general La pestaña *Overview* contiene los detalles generales del servicio de la aplicación, la URL de despliegue y un panel en vivo de las instancias que están activamente en ejecución. <br /> Estos incluyen los detalles del administrador o colaborador que desplegó la aplicación, la fecha y hora de creación y último despliegue de la aplicación, y un **AppSail ID único** creado automáticamente para tu aplicación después de desplegarla. Esto también especificará si la aplicación es un runtime gestionado por Catalyst o un runtime personalizado, y si la fuente es la CLI, la consola o un servicio de registro de contenedores. Puedes encontrar la ruta de la imagen o la URL de la imagen desde su servicio de registro de contenedores, en el último caso. ### URL de AppSail Después de que tu servicio de AppSail se despliega, Catalyst aloja tu aplicación en un subdominio con el cual puedes acceder a ella. Puedes acceder a los diversos endpoints que configuras en tu aplicación desde esta URL base. La URL base predeterminada de tu servicio de AppSail será de este formato para el entorno de desarrollo: https://appsailservicename-ZAID.development.catalystappsail.com Por ejemplo: https://demoservice-1011034735.development.catalystappsail.com Este será el formato para el entorno de producción: https://appsailservicename-ZAID.catalystappsail.com * **Nombre del servicio de AppSail:** El nombre que proporcionas al inicializar o desplegar la aplicación * **ZAID:** El identificador único que mapea una aplicación a un proyecto Nota: El "development" indica el entorno de desarrollo de tu proyecto. Después de desplegar tu proyecto a producción, la URL no incluirá esa clave. #### URL personalizada de AppSail Catalyst te proporciona la conveniencia de editar la parte del nombre del servicio de AppSail y el ZAID de la URL, y agregar cualquier nombre de subdominio de tu elección para la URL de AppSail. El dominio "catalystappsail" permanecerá igual con este método, junto con la clave "development" para las aplicaciones en el entorno de desarrollo. 1. Puedes editar la URL de AppSail haciendo clic en **Edit AppSail URL** desde la sección Overview. <br /> 2. Ingresa el nombre de subdominio que necesites, luego haz clic en **Update**. <br /> <br> ### Panel en vivo El panel muestra cada instancia actualmente en ejecución de la aplicación después de que se invoca. <br /> AppSail genera una nueva instancia para tu aplicación después de que una instancia en ejecución se ha consumido casi por completo. Podrás ver el porcentaje de consumo de cada instancia, y detalles como el Instance ID único y la duración que ha estado ejecutándose. Puedes hacer clic en Refresh para obtener un estado actualizado de las instancias activas, en caso de que haya retrasos. <br /> ### Eliminar una instancia activa Puedes eliminar manualmente una instancia activa si lo necesitas, en casos donde experimentes un error o una situación de punto muerto, como un error de bucle infinito. 1. Haz clic en el ícono de puntos suspensivos de una instancia, luego haz clic en **Delete**. <br> 2. Haz clic en **Yes, Proceed** en la ventana emergente de confirmación. <br> -------------------------------------------------------------------------------- title: "Instancias" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.822Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/console/instances/" service: "Serverless" -------------------------------------------------------------------------------- # La sección de instancias La sección Instances proporciona información valiosa sobre las instancias que se ejecutaron en forma de gráficos simples, los detalles del historial de ejecución, así como los registros de ejecución. ### Analíticas <br /> En la sección **Analytics**, puedes seleccionar una duración para las estadísticas que deseas ver usando el menú desplegable de duración. Los gráficos se actualizarán para representar las estadísticas de manera correspondiente. <br /> Los gráficos en esta sección incluyen: * **Max Instances and No. of Requests vs Time:** Representa el número máximo de instancias que se generaron en paralelo y el número de solicitudes que se atendieron con estas instancias a través del gráfico de líneas en puntos específicos del tiempo. Según la duración que selecciones, los intervalos de tiempo variarán en el gráfico. * **Total Instances and Run Duration vs Time:** Representa el número total de instancias que estuvieron activas y la duración total de la ejecución de todas las instancias a través del gráfico de líneas en puntos específicos del tiempo. Según la duración que selecciones, los intervalos de tiempo variarán en el gráfico. Puedes pasar el cursor sobre cualquier parte de los gráficos para ver los detalles. ### Historial Haz clic en la pestaña **History** para ver el historial de ejecución de tu aplicación. <br /> Puedes seleccionar una duración para los registros que deseas ver a través del menú desplegable de duración en el lado derecho. Los registros de ejecución se actualizarán de manera correspondiente. <br /> Los detalles que se muestran aquí incluyen el número total de instancias ejecutadas, luego el Instance ID, la fecha y hora de inicio, la fecha y hora de fin, y la duración de cada ejecución de instancia. También puedes filtrar los resultados haciendo clic en el botón **Filter**. Haz clic en **Search by ID** para filtrar por Instance ID. También puedes seleccionar el cuadro Duration, luego seleccionar un tipo de comparación y elegir horas y minutos de los menús desplegables para encontrar coincidencias de manera correspondiente. <br /> Haz clic en **Apply** después de configurar los filtros para ver los resultados. Además, puedes acceder a los **registros de ejecución** de cada instancia haciendo clic en el ícono de registros respectivo. Esto te redirigirá a Catalyst Logs en el servicio DevOps. Los filtros para los registros se aplican automáticamente. <br /> -------------------------------------------------------------------------------- title: "Despliegues" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.822Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/console/deployments/" service: "Serverless" -------------------------------------------------------------------------------- # Despliegues La sección Deployments muestra todos los despliegues del servicio de AppSail específico, junto con sus detalles de despliegue y enlaces a los registros de despliegue según corresponda. <br /> Puedes ver detalles como la fuente de un despliegue particular, el administrador o colaborador que lo desplegó, la fecha y hora del despliegue y el estado. Nota: Cuando creas un nuevo despliegue para un servicio de AppSail existente, puedes desplegar la aplicación desde la CLI, la consola o desde un servicio de registro de contenedores, esencialmente cambiando el tipo de aplicación como runtime gestionado por Catalyst o runtime personalizado según prefieras. Un servicio de AppSail individual no está vinculado a uno de estos tipos, ya que el tipo y la fuente pueden ser diferentes para cada uno de sus despliegues. Dado que cada despliegue es diferente, la sección Deployments mencionará si un despliegue particular es un runtime gestionado por Catalyst o un runtime personalizado, y si la fuente es la CLI, la consola o un servicio de registro de contenedores. Puedes encontrar la ruta de la imagen o la URL de la imagen desde su servicio de registro de contenedores, en el último caso. ### Registros de despliegue Los registros de despliegue están disponibles solo para imágenes de contenedor desplegadas directamente desde el servicio de registro de contenedores. Para ver el registro de un despliegue particular, haz clic en el ícono de registros que se muestra para él. <br /> #### Crear un nuevo despliegue Puedes crear un nuevo despliegue para un servicio de AppSail existente desde la sección Deployments, haciendo clic en el botón **Create Deployment** en la esquina superior derecha. Esto iniciará el proceso de despliegue de la aplicación desde la consola para runtime gestionado por Catalyst o un runtime personalizado, y los pasos serán los mismos. Como se mencionó anteriormente, tienes la flexibilidad de cambiar la fuente y el tipo de aplicación (runtime gestionado por Catalyst o runtime personalizado) de sus despliegues anteriores haciendo clic en **Edit** para la fuente. -------------------------------------------------------------------------------- title: "Configuraciones" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.837Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/console/configurations/" service: "Serverless" -------------------------------------------------------------------------------- # La sección de configuración La sección *Configuration* te permite realizar configuraciones para tus servicios de AppSail desde la consola. Estas configuraciones se pueden hacer a través del archivo app-config.json de tu aplicación para las aplicaciones de runtime gestionado por Catalyst y luego desplegarse, o directamente durante el despliegue de la aplicación desde la consola para runtimes gestionados por Catalyst o personalizados. También podrías configurar el comando de inicio en una imagen de contenedor dependiendo de su configuración para las aplicaciones desplegadas como imagen de contenedor. Nota: Todas las configuraciones que hagas en el archivo app-config.json, en la consola o en tu imagen de contenedor se reflejarán en esta sección en la consola después de desplegar tu aplicación. Si eliges editar las configuraciones desde esta sección, eso anulará las configuraciones en tu código o binarios. <br /> Los pasos para configurar estos valores desde la consola se explican a continuación. ### Variables de entorno Puedes crear y almacenar variables de entorno como pares clave-valor para tu aplicación fuera del código principal, tanto para los entornos de desarrollo como de producción. Para crear una nueva variable de entorno: 1. Haz clic en **Create Variable** en la sección *Environmental Variables*. <br /> 2. Ingresa el nombre de clave y el valor de la variable. Si estás trabajando desde el entorno de desarrollo, el valor que ingreses será el valor de desarrollo, y viceversa. <br /> 3. Haz clic en **Save**. La variable se guardará y se listará en la sección. Puedes buscar variables por su nombre de clave desde la barra de búsqueda, o agregar más variables. <br /> Si estás trabajando desde el entorno de desarrollo, se muestra el valor de desarrollo. Si cambias al entorno de producción, puedes configurar y ver los valores de producción. Nota: Solo podrás agregar variables de producción si tu aplicación se ha desplegado previamente en producción. <br> Puedes hacer clic en el botón **Usage Syntax** para verificar la sintaxis para cada entorno de programación. Esto se explica en esta sección. <br /> #### Editar una variable de entorno Puedes editar los valores de desarrollo o producción de una variable de entorno desde ese entorno de la siguiente manera: 1. Haz clic en el ícono de puntos suspensivos de la variable, luego haz clic en **Edit**. <br /> 3. Edita los valores, luego haz clic en **Save**. <br /> #### Eliminar una variable de entorno Puedes eliminar el valor de desarrollo o de producción de una variable de entorno desde ese entorno. Cuando la eliminas de un entorno, el valor en el otro entorno aún está disponible. Para eliminar una variable de entorno: 1. Haz clic en el ícono de puntos suspensivos de la variable, luego haz clic en **Delete**. <br /> 3. Haz clic en **Yes, Proceed** para confirmar. <br /> <br> ### Comando de inicio Puedes configurar el comando de inicio para tu aplicación, o editar el comando ya presente, desde esta sección. Consulta la sección de comando de inicio para detalles al respecto. Para configurar o editar un comando de inicio para tu aplicación: 1. Haz clic en el botón **Edit** en la sección *Startup Command*. <br /> 2. Ingresa el comando de inicio, luego haz clic en **Update**. <br /> <br> ### Configuración de ejecución de la aplicación Puedes asignar la memoria y el tamaño del disco para la ejecución de tu AppSail según los requisitos de rendimiento en esta sección. También puedes configurar el puerto para la ejecución de tu aplicación aquí. Consulta los enlaces para más detalles. Nota: <br> * La memoria se puede configurar en el archivo app-config.json para una aplicación de runtime gestionado por Catalyst al inicializarla o agregarla desde la CLI. * Catalyst asigna 256 MB para el tamaño del disco y 512 MB para la memoria de manera predeterminada. * Configurar el puerto para una aplicación de runtime personalizado es opcional, ya que se puede configurar al definir la imagen de contenedor también. Los valores configurados aquí anularán estas configuraciones internas. Para configurar la memoria, el tamaño del disco y el puerto para un servicio de AppSail: 1. Navega a la pestaña **App Execution Settings**, luego haz clic en **Edit**. <br /> 2. Selecciona la memoria y el tamaño del disco requeridos para la aplicación desde el menú desplegable. Ingresa el puerto para el servicio de AppSail. Haz clic en **Save** después de configurar estos detalles. <br /> Nota: Puedes asignar un puerto que necesites para tu servicio de AppSail. Los puertos dentro del rango de 0 a 1024 están reservados, con la excepción de los puertos 80 y 443. Puedes usar cualquier puerto que no sean estos. El puerto 9000 se usará de manera predeterminada. Si no has configurado el puerto en tu código, asegúrate de configurar el mismo puerto para escuchar al iniciar el servidor en el comando de inicio de tu aplicación. -------------------------------------------------------------------------------- title: "Gestionar AppSail" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.838Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/console/manage-appsail/" service: "Serverless" -------------------------------------------------------------------------------- # Gestionar AppSail ### Deshabilitar una aplicación Puedes deshabilitar temporalmente un servicio de AppSail, si es necesario. Cuando una aplicación está deshabilitada, no se puede invocar a través de su URL de despliegue de desarrollo o producción hasta que la habilites nuevamente. Nota: Aún puedes crear o modificar configuraciones para la aplicación, o desplegar cambios desde tu entorno local incluso cuando la aplicación está deshabilitada. Para deshabilitar una aplicación en AppSail: 1. Haz clic en el ícono de puntos suspensivos de una aplicación desde la página de índice de AppSail, luego haz clic en **Disable**. <br /> 2. Ingresa "DISABLE" en la ventana emergente para confirmar, luego haz clic en **Confirm**. <br /> Esto cambiará el estado de la aplicación a "Inactive" en la página de índice. <br> #### Habilitar la aplicación Puedes habilitar una aplicación deshabilitada nuevamente navegando a la página de índice. 1. Haz clic en el ícono de puntos suspensivos, y luego haz clic en **Enable**. <br /> 2. Haz clic en **Yes, Proceed** para confirmar. <br /> <br> ### Eliminar una aplicación Puedes eliminar permanentemente una aplicación de AppSail desde la consola remota. Esto eliminará la aplicación de estar alojada en AppSail. Para eliminar una aplicación en AppSail: 1. Navega a la página de índice de AppSail. Luego, haz clic en el ícono de puntos suspensivos de la aplicación y haz clic en **Delete**. <br /> 2. Ingresa "DELETE" en la ventana emergente para confirmar, luego haz clic en **Confirm**. <br /> Necesitarás desplegar la aplicación nuevamente después de eliminarla, si la necesitas. <br> ### Descargar el código de una aplicación Catalyst te permite descargar el código fuente de un servicio de AppSail desplegado desde la consola a tu sistema local **solo para aplicaciones de runtime gestionado por Catalyst**. Esto descargará un archivo ZIP del directorio completo que se desplegó en la consola, que incluye los archivos de la aplicación y cualquier archivo de configuración que se empaquetó y subió. Esto no está disponible para una aplicación de runtime personalizado. Puedes descargar el código fuente de una aplicación de AppSail haciendo clic en el ícono de puntos suspensivos de una aplicación desde la página de índice de AppSail, luego haciendo clic en **Download**. <br /> ## Inicio Rápido para Runtimes Gestionados por Catalyst -------------------------------------------------------------------------------- title: "Introducción" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.838Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/introduction/" service: "Serverless" -------------------------------------------------------------------------------- # Inicio Rápido para Runtimes Gestionados por Catalyst de Java, Node.js y Python ### Introducción Esta sección cubre ejemplos de construcción de aplicaciones de muestra con frameworks populares de cada entorno de programación de un runtime gestionado por Catalyst. Catalyst no define restricciones en los frameworks que puedes usar para los entornos de programación compatibles, Java, Node.js y Python, para construir tus aplicaciones. Según el lenguaje y framework que utilices, puedes incorporar plugins, bibliotecas, extensiones o cualquier otra dependencia que necesites. Note: Cuando construyes tu aplicación de runtime gestionado por Catalyst en tu entorno local, podrías incorporar dependencias específicas del sistema operativo. Sin embargo, después de desplegar tu aplicación como un servicio de AppSail, las dependencias podrían no funcionar ya que Catalyst podría usar diferentes especificaciones de sistema operativo y arquitectura para ejecutar tu aplicación. Por lo tanto, es mejor evitar el uso de dependencias específicas del sistema operativo en el paquete de tu aplicación. ### Java -------------------------------------------------------------------------------- title: "Descripción General" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.838Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/java/overview/" service: "Serverless" -------------------------------------------------------------------------------- # Java ### Descripción General El entorno de programación Java incluye una variedad de frameworks que contienen clases pre-escritas, plantillas, paquetes y estructura sobre los cuales puedes construir tu propio código. Como se mencionó anteriormente, Catalyst te permite inicializar o agregar un servicio de AppSail en uno de estos dos formatos: * Java- WAR * Java- SE Después de seleccionar el stack de Java al inicializar un servicio de aplicación, puedes seleccionar una de estas opciones. Sin embargo, aún puedes construir tu aplicación Java con cualquier framework; incorporar cualquier biblioteca, módulo o dependencia; generarla como cualquier paquete estándar; y seguir cualquier edición que necesites. Note: Cuando usas la plantilla Java WAR para desplegar tu aplicación Java exportada como un archivo WAR, no necesitas incluir un servidor web Java en tu aplicación, ya que AppSail empaquetará tu aplicación con un servidor por defecto. Si eliges Java SE como tu plantilla para todos los demás formatos de aplicación Java, como un archivo JAR, necesitarás incluir un servidor embebido en tu aplicación. La guía de ayuda de Java contiene instrucciones paso a paso sobre cómo construir aplicaciones de muestra básicas con algunos de los frameworks más populares, usando servidores web Java populares en ellas, y desplegando estas aplicaciones como servicios de AppSail, y configurando comandos de inicio según sea necesario. <br> ### Prerrequisitos Dependiendo del framework, servidor y edición que uses en estos ejemplos, necesitarás asegurarte de tener todos los prerrequisitos instalados en tu máquina local. -------------------------------------------------------------------------------- title: "Embedded Jetty" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.850Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/java/embedded-jetty/" service: "Serverless" -------------------------------------------------------------------------------- # Aplicación Java Simple con Embedded Jetty Este ejemplo ilustra los pasos para construir una aplicación Java simple con un servidor Jetty embebido en ella. Eclipse Jetty es un servidor web Java ligero y también un contenedor de servlets. Esta aplicación será compilada, empaquetada y asociada con un servicio de AppSail como tipo Java SE, y desplegada en la consola. 1. Crea un nuevo proyecto Java desde un IDE de tu elección. 2. Incluye las siguientes bibliotecas en tu directorio de fuentes. Hemos creado una nueva carpeta en este ejemplo y la hemos llamado deps. Estos archivos JAR incluyen todos los servlets, archivos de utilidad y otras dependencias que embeben el servidor Jetty en tu aplicación. Puedes obtener estas dependencias del repositorio oficial de Maven. También puedes agregarlas como dependencias de Maven. javax.servlet-api-3.1.0.jar jetty-io-9.4.50.v20221201.jar jetty-server-9.4.50.v20221201.jar jetty-util-9.4.50.v20221201.jar jetty-http-9.4.50.v20221201.jar jetty-security-9.4.50.v20221201.jar jetty-servlet-9.4.50.v20221201.jar jetty-util-ajax-9.4.50.v20221201.jar <br> 3. Para crear una aplicación Jetty embebida, necesitarás crear una instancia de la clase org.eclipse.jetty.server.Server y hacer referencia al puerto de escucha con la variable de entorno X_ZOHO_CATALYST_LISTEN_PORT en tu código principal. Debes agregar un handler de Servlet para manejar estas solicitudes. Crea los siguientes archivos Java en tu directorio principal y agrega los fragmentos de código de muestra que se proporcionan a continuación: **CustomJettyServer.java** import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; public class CustomJettyServer { public static void main( String[] args ) throws Exception { String port = System.getenv("X_ZOHO_CATALYST_LISTEN_PORT"); int listenPort; if(port != null && !port.isEmpty()) { listenPort = Integer.parseInt(System.getenv("X_ZOHO_CATALYST_LISTEN_PORT")); } else { listenPort = 9000; } Server server = new Server(listenPort); ServletContextHandler handler = new ServletContextHandler(); handler.addServlet(ServletHandler.class.getName(), "/"); server.setHandler(handler); server.start(); } } <br> **ServletHandler.java** import java.io.IOException; import java.nio.charset.StandardCharsets; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletHandler extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String path = req.getServletPath(); System.out.println(path); try { resp.getWriter().write("Hello ABC"); resp.getWriter().close(); } catch (Exception e) { e.printStackTrace(); } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } } <br> 4. Compila la aplicación ejecutando el comando que se proporciona a continuación: javac -cp ".:./*:./deps/*" *.java <br> 5. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona los siguientes valores al inicializar el servicio de aplicación: **Stack:** Java 8 <br> **Platform:** Java SE 6. Asegúrate de que el archivo compilado, junto con los archivos JAR en la carpeta deps, se agreguen en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 7. Despliega el servicio de aplicación en la consola. 8. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: java -cp ".:./*:./deps/*" *.java También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Spring MVC" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.850Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/java/spring-mvc/" service: "Serverless" -------------------------------------------------------------------------------- # Spring- MVC El framework Spring Web MVC es un módulo del popular framework Spring que sigue una arquitectura Modelo-Vista-Controlador. Este framework permite la creación de aplicaciones web, incorporando las ventajas del framework Spring junto con el acoplamiento débil de componentes en el patrón de diseño MVC. Está construido alrededor de un DispatcherServlet que maneja solicitudes y respuestas HTTP, y despacha las solicitudes a los handlers y controladores necesarios. Este ejemplo explica los pasos para construir una aplicación de muestra en el framework Spring MVC, exportarla como un archivo WAR y desplegarla en AppSail. 1. Crea un nuevo proyecto Maven usando un IDE de tu elección. Debes seleccionar el siguiente Archetype para el proyecto: org.apache.maven.archetypes maven-archetype-webapp. 2. En el archivo pom.xml de tu proyecto, agrega las dependencias de Spring que se proporcionan a continuación. &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-core&lt;/artifactId&gt; &lt;version&gt;5.2.19.RELEASE&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-context&lt;/artifactId&gt; &lt;version&gt;5.2.19.RELEASE&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-aop&lt;/artifactId&gt; &lt;version&gt;5.2.19.RELEASE&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt; &lt;version&gt;5.2.19.RELEASE&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-web&lt;/artifactId&gt; &lt;version&gt;5.2.19.RELEASE&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;javax.servlet&lt;/groupId&gt; &lt;artifactId&gt;jstl&lt;/artifactId&gt; &lt;version&gt;1.2&lt;/version&gt; &lt;/dependency&gt; <br> 3. Agrega las dependencias a continuación en un encapsulado de compilación para compilar y generar el archivo WAR. &lt;plugins&gt; &lt;plugin&gt; &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; &lt;version&gt;3.8.0&lt;/version&gt; &lt;configuration&gt; &lt;source&gt;1.8&lt;/source&gt; &lt;target&gt;1.8&lt;/target&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;plugin&gt; &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt; &lt;version&gt;3.2.1&lt;/version&gt; &lt;configuration&gt; &lt;warSourceDirectory&gt;WebContent&lt;/warSourceDirectory&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;/plugins&gt; <br> 4. Crea un archivo de configuración XML de Spring en tu proyecto, y agrega las configuraciones de beans que se proporcionan a continuación. &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd "&gt; Tu archivo de configuración de Spring debería verse algo así: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd "&gt; &lt;mvc:annotation-driven/&gt; &lt;mvc:default-servlet-handler/&gt; &lt;context:component-scan base-package="com.amelia.example.controller" /&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/"&gt;&lt;/property&gt; &lt;property name="suffix" value=".jsp"&gt;&lt;/property&gt; &lt;/bean&gt; &lt;/beans&gt; <br> 5. Agrega un runtime de servidor al proyecto. Por ejemplo, si estás trabajando en el IDE Eclipse, puedes agregar un runtime objetivo para el servidor Apache Tomcat de la siguiente manera: Haz clic derecho en el **project -&gt; Properties -&gt; Targeted Runtime**. Aquí, puedes agregar el runtime requerido, luego haz clic en **Apply**. 6. Ahora puedes agregar el controlador requerido y el manejo de páginas de error, así como un mapeo de servlet en el archivo web.xml de tu proyecto. Por ejemplo, puedes usar la configuración que se proporciona a continuación: &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; &lt;servlet&gt; &lt;servlet-name&gt;helloworld&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;helloworld&lt;/servlet-name&gt; &lt;url-pattern&gt;/&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;error-page&gt; &lt;error-code&gt;404&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;401&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;500&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;400&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;403&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;408&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;413&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;414&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;505&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;405&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;error-code&gt;409&lt;/error-code&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; &lt;error-page&gt; &lt;exception-type&gt; java.lang.Throwable &lt;/exception-type&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; <br> 7. Puedes subir la aplicación a Catalyst exportándola como un archivo WAR. En el ejemplo de Eclipse, puedes hacer clic derecho en el proyecto y elegir **Export As -&gt; WAR**. Debes hacer lo siguiente: a. Elige un destino con el nombre de archivo como ROOT.war <br> b. Desmarca la opción Optimize for specific server runtime. <br> 8. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona los siguientes valores al inicializar el servicio de aplicación: **Stack:** Java 8 <br> **Platform:** Java WAR 9. Asegúrate de que los archivos compilados se agreguen en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 10. Despliega el servicio de aplicación en la consola. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Spring Boot" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.850Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/java/spring-boot/" service: "Serverless" -------------------------------------------------------------------------------- # Spring Boot Spring Boot está construido sobre el popular framework Spring, e incluye una amplia gama de mejoras que te permiten construir fácilmente microservicios de nivel de producción, aplicaciones web y proyectos Spring independientes con esfuerzos de desarrollo reducidos. Spring Boot típicamente incluye servidores HTTP embebidos como Jetty o Apache Tomcat, sin las complejas configuraciones XML de Spring. Note: Cuando exportas una aplicación Spring Boot como un archivo JAR en el ejemplo a continuación, puedes conservar el servidor embebido incluido en ella. Sin embargo, cuando exportas la aplicación Spring Boot como un archivo WAR, necesitarás excluir el servidor embebido incluido en ella, si la inicializas como Java WAR en AppSail. Esto se debe a que AppSail ofrece soporte nativo para archivos WAR y los empaqueta con el servidor Jetty por defecto. ### Spring Boot- JAR Este ejemplo ilustra los pasos para construir una aplicación Spring Boot de muestra, exportarla como un archivo JAR y desplegarla en AppSail. 1. Abre Spring Initializr para crear un nuevo proyecto. 2. Elige las siguientes configuraciones para tu proyecto:<br><br> a. Project - Maven Project<br> b. Language - Java<br> c. Spring Boot Version - 2.7.10<br> d. Package - JAR<br> e. Java Version - 8<br> f. Haz clic en **Add Dependencies** y selecciona **Spring Web**. 3. Haz clic en **Generate**. 4. Descomprime el proyecto y ábrelo en cualquier IDE de tu elección. 5. Agrega los controladores necesarios al proyecto. Por ejemplo, crea un archivo llamado DemoController.java en el directorio del archivo Java principal de tu proyecto, y agrega el controlador especificado a continuación en el archivo. package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @GetMapping("/") public String index() { return "Greetings from Spring Boot!"; } } <br> 6. Catalyst verificará el puerto configurado para escucha con la variable de entorno X_ZOHO_CATALYST_LISTEN_PORT y la aplicación debe escuchar en ese puerto en todas las interfaces (host 0.0.0.0). Por lo tanto, necesitarás personalizar el puerto. Puedes hacer esto creando un archivo llamado ServerPortCustomizer.java en el directorio del archivo Java principal de tu proyecto, y agregando el código especificado a continuación: package com.example.demo; import org.springframework.boot.web.server.ConfigurableWebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.stereotype.Component; @Component public class ServerPortCustomizer implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> { @Override public void customize(ConfigurableWebServerFactory factory) { String port = System.getenv("X_ZOHO_CATALYST_LISTEN_PORT"); int listenPort; if(port != null && !port.isEmpty()) { listenPort = Integer.parseInt(System.getenv("X_ZOHO_CATALYST_LISTEN_PORT")); } else { listenPort = 9000; } factory.setPort(listenPort); } } Ahora puedes guardar la aplicación y ejecutarla en Catalyst. 7. Puedes ejecutar esta aplicación en tu máquina local ejecutando el siguiente comando desde tu terminal: ./mvnw spring-boot:run 8. Luego puedes compilar el código fuente, ejecutar pruebas y empaquetar el código compilado ejecutando el siguiente comando: ./mvnw clean package Esto generará el archivo JAR de la aplicación en la carpeta target. 9. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona los siguientes valores al inicializar el servicio de aplicación: **Stack:** Java 8 <br> **Platform:** Java SE 10. Asegúrate de que el archivo JAR se agregue en el directorio de compilación que especificaste durante la inicialización. Catalyst comprimirá automáticamente tu archivo de aplicación durante el despliegue a la consola remota. 11. Despliega el servicio de aplicación en la consola. 12. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: java -jar demo-0.0.1-SNAPSHOT.jar También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. <br> <br> ### Spring Boot - WAR Este ejemplo explica los pasos para construir una aplicación Spring Boot de muestra, exportarla como un archivo WAR y desplegarla en AppSail: 1. Abre Spring Initializr para crear un nuevo proyecto. 2. Elige las siguientes configuraciones para tu proyecto:<br><br> a. Project - Maven Project<br> b. Language - Java<br> c. Spring Boot Version - 2.7.10<br> d. Package - WAR<br> e. Java Version - 8<br> f. Haz clic en **Add Dependencies** y selecciona **Spring Web**. 3. Haz clic en **Generate**. 4. Descomprime el proyecto y ábrelo en cualquier IDE de tu elección. 5. Ahora debes agregar los controladores necesarios al proyecto. Por ejemplo, crea un archivo llamado DemoController.java en el directorio del archivo Java principal de tu proyecto, y agrega el controlador especificado a continuación en el archivo. package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @GetMapping("/") public String index() { return "Greetings from Spring Boot WAR!"; } } <br> 6. Ahora debes modificar el archivo pom.xml en tu proyecto para excluir el servidor Tomcat embebido al generar el archivo WAR, como se explicó en la descripción general. Puedes hacer esto agregando el fragmento que se proporciona a continuación en el encapsulado spring-boot-maven-plugin en el archivo XML: &lt;configuration&gt; &lt;mainClass&gt;${main_class_name}&lt;/mainClass&gt; &lt;classifier&gt;exec&lt;/classifier&gt; &lt;/configuration&gt; <br> 7. Puedes ejecutar esta aplicación en tu máquina local ejecutando el siguiente comando desde tu terminal: ./mvnw spring-boot:run <br> 8. Puedes subir la aplicación a Catalyst con este comando: ./mvnw clean package Esto generará el archivo WAR de la aplicación en la carpeta target. 9. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona los siguientes valores al inicializar el servicio de aplicación: **Stack:** Java 8 <br> **Platform:** Java WAR 10. Asegúrate de que el archivo WAR se agregue en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente tu archivo de aplicación durante el despliegue a la consola remota. 11. Despliega el servicio de aplicación en la consola. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. ### Node.js -------------------------------------------------------------------------------- title: "Descripción General" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.851Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/nodejs.md/overview/" service: "Serverless" -------------------------------------------------------------------------------- # Node.js ### Descripción General El entorno de programación Node.js cuenta con una variedad de frameworks tanto para desarrollo del lado del servidor como del cliente web, e incluso una serie de frameworks full-stack. Estos frameworks están equipados con bibliotecas pre-escritas, plantillas, plugins y funcionalidades sobre las cuales puedes construir tu propio código. Algunos frameworks están orientados a MVC, algunos contribuyen a construir aplicaciones web dinámicas de extremo a extremo o APIs REST, mientras que algunos están montados sobre otros frameworks. Según las necesidades de tu aplicación, puedes optar por el framework adecuado. AppSail no proporciona plantillas para frameworks específicos de Node.js, y por lo tanto no contiene restricciones de framework. Puedes construir tu servicio de aplicación usando cualquier tecnología de Node.js que prefieras, e incorporar cualquier biblioteca, módulo o dependencia. Luego puedes seleccionar directamente un runtime de Node.js al inicializar el servicio de aplicación en el CLI, y desplegarlo en AppSail. La guía de ayuda de Node.js contiene instrucciones paso a paso sobre cómo construir aplicaciones de muestra básicas con algunos de sus frameworks más populares, desplegar estas aplicaciones como servicios de AppSail, y configurar comandos de inicio según sea necesario. ### Prerrequisitos Descarga e instala Node.js en tu máquina local. -------------------------------------------------------------------------------- title: "Express" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.851Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/nodejs.md/express/" service: "Serverless" -------------------------------------------------------------------------------- # Framework Express Express es un framework altamente robusto y minimalista que viene incluido con una gran cantidad de métodos de utilidad HTTP y middleware. Este ejemplo ilustra los pasos para construir una aplicación Node.js simple con el framework Express. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Express. 2. Navega al directorio desde tu terminal e inicializa Node con el siguiente comando: npm init Sigue los pasos en la terminal y proporciona los detalles requeridos. 3. Ahora, agrega el módulo express a tu aplicación usando el gestor de paquetes npm ejecutando el comando: npm install --save express 4. Ahora puedes agregar la lógica que necesites en el código de la aplicación en el archivo principal. A continuación se muestra un código de muestra para un programa básico "Hello World". const express = require('express') const app = express() app.all('/', (req, res) => { res.status(200).send("Hello World") }) app.listen(process.env.X_ZOHO_CATALYST_LISTEN_PORT || 9000, () => { console.log("Server Started") }) 5. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack:** Node16 6. Asegúrate de que el archivo principal, los archivos de configuración y los módulos de node estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 7. Despliega el servicio de aplicación en la consola. 8. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: node index.js También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Express con NPM" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.851Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/nodejs.md/express-npm/" service: "Serverless" -------------------------------------------------------------------------------- # Framework Express con NPM Este ejemplo ilustra los pasos para construir una aplicación Node.js con el framework Express, luego configurar un comando de inicio de Node Package Manager (npm) en uno de los archivos de configuración a través de scripts. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola, antes de que configures el comando de inicio en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Express. 2. Navega al directorio desde tu terminal e inicializa Node con el siguiente comando: npm init Sigue los pasos en la terminal y proporciona los detalles requeridos. 3. Ahora, agrega el módulo express a tu aplicación usando el gestor de paquetes npm ejecutando el comando: npm install --save express 4. Ahora puedes agregar la lógica que necesites en el código de la aplicación en el archivo principal. A continuación se muestra un código de muestra para un programa básico "Hello World". const express = require('express') const app = express() app.all('/', (req, res) => { res.status(200).send("Hello World") }) app.listen(process.env.X_ZOHO_CATALYST_LISTEN_PORT || 9000, () => { console.log("Server Started") }) 5. Abre el archivo de configuración package.json en el directorio de la aplicación. Dentro de la clave scripts en el archivo, debes agregar una nueva clave: start y configurar su valor como: node index.js. Esto define el comando de inicio para la aplicación. Luego puedes hacer referencia a esta clave al agregar el comando de inicio. 6. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack:** Node16 7. Asegúrate de que el archivo principal, los archivos de configuración y los módulos de node estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 8. Despliega el servicio de aplicación en la consola. 9. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: npm start También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Hapi" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.851Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/nodejs.md/hapi/" service: "Serverless" -------------------------------------------------------------------------------- # Framework Hapi Hapi.js es un framework de Node que te ayuda a construir aplicaciones web escalables, aplicaciones de proxy HTTP, APIs y más. Hapi ofrece un robusto sistema de plugins, una arquitectura de autenticación integral e integrada, seguridad de extremo a extremo de alto nivel y más. Este ejemplo ilustra los pasos para construir una aplicación Node.js simple con el framework Hapi. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Hapi. 2. Navega al directorio desde tu terminal e inicializa Node con el siguiente comando: npm init Sigue los pasos en la terminal y proporciona los detalles requeridos. 3. Agrega el módulo Hapi a tu aplicación usando npm ejecutando el comando: npm install --save @hapi/hapi 4. Ahora puedes agregar la lógica que necesites en el código de la aplicación en el archivo principal. A continuación se muestra un código de muestra para un programa básico "Hello World". 'use strict'; const Hapi = require('@hapi/hapi'); const init = async () => { const server = Hapi.server({ port: process.env.X_ZOHO_CATALYST_LISTEN_PORT | 9000, host: '0.0.0.0' }); server.route({ method: 'GET', path: '/', handler: (request, h) => { return 'Hello World!'; } }); await server.start(); console.log('Server running on %s', server.info.uri); }; process.on('unhandledRejection', (err) => { console.log(err); process.exit(1); }); init(); 5. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack:** Node16 6. Asegúrate de que el archivo principal, los archivos de configuración y los módulos de node estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 7. Despliega el servicio de aplicación en la consola. 8. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: node index.js También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Koa" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.851Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/nodejs.md/koa/" service: "Serverless" -------------------------------------------------------------------------------- # Framework Koa Koa es un framework de middleware de Node.js que es minimalista y expresivo por naturaleza, y te permite construir aplicaciones web y APIs robustas. Koa utiliza funciones async que eliminan la necesidad de callbacks, maneja errores de manera eficiente y reduce sustancialmente tu tiempo en la construcción de servidores a través de una multitud de otras funcionalidades que ofrece. Este ejemplo ilustra los pasos para construir una aplicación Node.js simple con el framework Koa. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Koa. 2. Navega al directorio desde tu terminal e inicializa Node con el siguiente comando: npm init Sigue los pasos en la terminal y proporciona los detalles requeridos. 3. Agrega el módulo Koa a tu aplicación usando npm ejecutando el comando: npm install --save koa npm install --save @koa/router 4. Ahora puedes agregar la lógica que necesites en el código de la aplicación en el archivo principal. A continuación se muestra un código de muestra para un programa básico "Hello World". var Koa = require('koa'); var Router = require('@koa/router'); const app = new Koa(); const router = new Router(); router.get('/', (ctx, next) => { ctx.body = "Hello World" }); app.use(router.routes()) app.listen(process.env.X_ZOHO_CATALYST_LISTEN_PORT | 9000); 5. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack:** Node16 6. Asegúrate de que el archivo principal, los archivos de configuración y los módulos de node estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 7. Despliega el servicio de aplicación en la consola. 8. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: node index.js También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Fastify" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.852Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/nodejs.md/fastify/" service: "Serverless" -------------------------------------------------------------------------------- # Fastify Fastify es un framework de Node.js de alto rendimiento y altamente extensible con una sobrecarga mínima, que te ayuda a crear aplicaciones y APIs confiables y eficientes. Fastify incorpora una serie de funcionalidades convenientes, como logging accesible, soporte de Schema, preparación para TypeScript y varias otras funcionalidades amigables para el desarrollador. Este ejemplo ilustra los pasos para construir una aplicación Node.js simple con el framework Fastify. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Fastify. 2. Navega al directorio desde tu terminal e inicializa Node con el siguiente comando: npm init Sigue los pasos en la terminal y proporciona los detalles requeridos. 3. Agrega el framework Fastify a tu aplicación usando npm ejecutando el comando: npm install --save fastify 4. Ahora puedes agregar la lógica que necesites en el código de la aplicación en el archivo principal. A continuación se muestra un código de muestra para un programa básico "Hello World". // Requerir el framework e instanciarlo const fastify = require('fastify')({ logger: true }) // Declarar una ruta fastify.get('/', async (request, reply) => { return { hello: 'world' } }) // ¡Ejecutar el servidor! const start = async () => { try { await fastify.listen({ port: process.env.X_ZOHO_CATALYST_LISTEN_PORT | 9000 , host: "0.0.0.0" }) } catch (err) { fastify.log.error(err) process.exit(1) } } start() 5. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack:** Node16 6. Asegúrate de que el archivo principal, los archivos de configuración y los módulos de node estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 7. Despliega el servicio de aplicación en la consola. 8. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: node index.js También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Restify" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.852Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/nodejs.md/restify/" service: "Serverless" -------------------------------------------------------------------------------- # Framework Restify Restify es un framework de Node.js que te ayuda a construir servicios web RESTful específicamente con un enfoque en alto rendimiento, y proporciona funcionalidades que facilitan el manejo óptimo de errores, versionado y soporte de semántica. Restify también ofrece introspección de router, soporte de almacén de datos con SQLs populares y muchas otras conveniencias adicionales. Este ejemplo ilustra los pasos para construir una aplicación Node.js simple con el framework Restify. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Restify. 2. Navega al directorio desde tu terminal e inicializa Node con el siguiente comando: npm init Sigue los pasos en la terminal y proporciona los detalles requeridos. 3. Agrega el framework Restify a tu aplicación usando npm ejecutando el comando: npm install --save restify 4. Ahora puedes agregar la lógica que necesites en el código de la aplicación en el archivo principal. A continuación se muestra un código de muestra para un programa básico "Hello World". var restify = require('restify'); var server = restify.createServer(); server.get('/', function respond(req, res, next) { res.send('hello world'); next(); }); server.listen(process.env.X_ZOHO_CATALYST_LISTEN_PORT | 9000, '0.0.0.0', function () { console.log('%s listening at %s', server.name, server.url); }); 5. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack:** Node16 6. Asegúrate de que el archivo principal, los archivos de configuración y los módulos de node estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 7. Despliega el servicio de aplicación en la consola. 8. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: node index.js También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. ### Python -------------------------------------------------------------------------------- title: "Descripción General" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.852Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/python/overview/" service: "Serverless" -------------------------------------------------------------------------------- # Python ### Descripción General Python es uno de los lenguajes de programación líderes y más demandados del mundo, utilizado en una amplia variedad de dominios para numerosas aplicaciones. La popularidad de Python se refleja en la vasta colección de frameworks disponibles para el entorno de programación, que pueden agruparse ampliamente en frameworks full-stack, microframeworks o frameworks asíncronos. Cada grupo de frameworks, y cada framework individual, sirve a requisitos específicos con sus características y ventajas únicas. Los frameworks de Python están equipados con bibliotecas pre-escritas, plantillas, plugins y funcionalidades sobre las cuales puedes construir tu propio código. Según las necesidades de tu aplicación, puedes optar por el framework adecuado. AppSail no proporciona plantillas para frameworks específicos de Python, y por lo tanto no contiene restricciones de framework. Puedes construir tu servicio de aplicación usando cualquier tecnología de Python que prefieras, e incorporar cualquier biblioteca, plugin, extensión o dependencia. Luego puedes seleccionar directamente un runtime de Python al inicializar el servicio de aplicación en el CLI, y desplegarlo en AppSail. La guía de ayuda de Python contiene instrucciones paso a paso sobre cómo construir aplicaciones de muestra básicas con algunos de sus frameworks más populares, desplegar estas aplicaciones como servicios de AppSail, y configurar comandos de inicio según sea necesario. ### Prerrequisitos Descarga e instala Python en tu máquina local. -------------------------------------------------------------------------------- title: "Flask" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.852Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/python/flask/" service: "Serverless" -------------------------------------------------------------------------------- # Aplicación Flask con zcatalyst-sdk Flask es un microframework popular y ligero de Python que los desarrolladores pueden usar para construir aplicaciones altamente funcionales. No utiliza bibliotecas ni herramientas, pero soporta una amplia gama de extensiones para una variedad de funcionalidades. Flask viene con un depurador rápido e integrado y un servidor de desarrollo, además de ofrecer cookies seguras, soporte Unicode y más. Este ejemplo ilustra los pasos para construir una aplicación Python simple con el framework Flask y el SDK de Python de Catalyst. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. Note: Catalyst ofrece soporte integrado para el framework Flask a través del SDK de Python de Catalyst. Puedes crear funciones serverless de Catalyst usando este paquete SDK. 1. Crea una nueva carpeta en tu sistema local para la aplicación Flask. 2. Navega al directorio desde tu terminal y ejecuta el siguiente comando para instalar Flask y el Python zcatalyst-sdk: python3 -m pip install flask -t . python3 -m pip install --pre zcatalyst-sdk -t . 3. Ahora puedes crear tu archivo índice de Python y nombrarlo app.py o cualquier nombre de tu elección. Agrega la lógica que necesites en el código de la aplicación. A continuación se muestra un código de muestra para un programa básico "Hello World". import os from flask import Flask, request app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' @app.route('/sdk') def sdk(): try: import zcatalyst_sdk as zcatalyst app = zcatalyst.initialize(req=request) cache_resp = app.cache().segment().put('Key', 'value') return cache_resp, 200 except Exception as e: return 'Got exception: ' + repr(e) if __name__ == '__main__': listen_port = int(os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000)) app.run(host="0.0.0.0", port=listen_port) 4. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack**: Python_3_9 5. Asegúrate de que todos los archivos de la aplicación Python junto con los módulos flask y zcatalyst-sdk estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 6. Despliega el servicio de aplicación en la consola. 7. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: python3 -u app.py También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Django" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.852Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/python/django/" service: "Serverless" -------------------------------------------------------------------------------- # Framework Django Django es un framework full-stack, de código abierto y altamente popular de Python que incluye todas las funcionalidades de Python por defecto. Este framework de alto nivel maneja gran parte de las complejidades del desarrollo web de manera integrada, y permite a los desarrolladores centrarse en la lógica de sus aplicaciones. Django también ofrece soporte inherente para sistemas de bases de datos comúnmente utilizados y soporte ORM para mapear objetos a tablas, lo que facilita la migración de datos. Este ejemplo ilustra los pasos para construir una aplicación Python simple con el framework Django. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Django. 2. Navega al directorio desde tu terminal y ejecuta el siguiente comando para instalar Django: python3 -m pip install django -t . 3. Crea un proyecto Django ejecutando el siguiente comando. python3 -m django startproject mysite Note: Necesitarás configurar tu dominio de AppSail en ALLOWED_HOSTS como se menciona en esta sección de ayuda. 4. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack**: Python_3_9 5. Asegúrate de que todos los archivos de la aplicación Python junto con los módulos django estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 6. Despliega el servicio de aplicación en la consola. 7. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: sh -c 'python3 -u mysite/manage.py runserver 0.0.0.0:${X_ZOHO_CATALYST_LISTEN_PORT}' También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Bottle" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.853Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/python/bottle/" service: "Serverless" -------------------------------------------------------------------------------- # Framework Bottle Bottle es un microframework rápido y simple de Python para construir APIs, aplicaciones personales a pequeña escala sin la necesidad de dependencias. Bottle viene con una serie de funcionalidades como un servidor de desarrollo integrado, plugins para varias bases de datos, enrutamiento de despacho de solicitudes y varias utilidades. Este ejemplo ilustra los pasos para construir una aplicación Python simple con el framework Bottle. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Bottle. 2. Navega al directorio desde tu terminal y ejecuta el siguiente comando para instalar Bottle: python3 -m pip install bottle -t. 3. Ahora puedes crear tu archivo índice de Python y nombrarlo app.py o cualquier nombre de tu elección. Agrega la lógica que necesites en el código de la aplicación. A continuación se muestra un código de muestra para un programa básico "Hello World". import os import bottle app = bottle.Bottle() @app.route('/') def hello(): return "Hello, World!" if __name__ == '__main__': listen_port = int(os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000)) bottle.run(app, host='0.0.0.0', port=listen_port) 4. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack**: Python_3_9 5. Asegúrate de que todos los archivos de la aplicación Python junto con los módulos bottle estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 6. Despliega el servicio de aplicación en la consola. 7. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: python3 -u app.py También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "CherryPy" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.853Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/python/cherrypy/" service: "Serverless" -------------------------------------------------------------------------------- # Framework CherryPy CherryPy es un microframework de Python de código abierto y minimalista utilizado para construir aplicaciones web de manera similar a escribir un programa orientado a objetos. CherryPy ofrece un sistema de plugins altamente funcional, soporte integrado para autenticación, codificación, caché, múltiples servidores HTTP y más. 1. Crea una nueva carpeta en tu sistema local para la aplicación CherryPy. 2. Navega al directorio desde tu terminal y ejecuta el siguiente comando para instalar CherryPy: python3 -m pip install CherryPy -t. 3. Ahora puedes crear tu archivo índice de Python y nombrarlo app.py o cualquier nombre de tu elección. Agrega la lógica que necesites en el código de la aplicación. A continuación se muestra un código de muestra para un programa básico "Hello World". import os import cherrypy class HelloWorld: @cherrypy.expose def index(self): return "Hello, World!" if __name__ == "__main__": listen_port = int(os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000)) cherrypy.config.update({ "server.socket_host": "0.0.0.0", "server.socket_port": 9000 }) cherrypy.quickstart(HelloWorld()) 4. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack**: Python_3_9 5. Asegúrate de que todos los archivos de la aplicación Python junto con los módulos cherrypy estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 6. Despliega el servicio de aplicación en la consola. 7. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: python3 -u app.py También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. -------------------------------------------------------------------------------- title: "Tornado" description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: "2026-07-30T07:10:05.853Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/python/tornado/" service: "Serverless" -------------------------------------------------------------------------------- # Framework Tornado Tornado es un framework web de Python y una biblioteca de redes asíncronas que se basa en I/O de red no bloqueante para servir aplicaciones web. Este framework es por lo tanto ideal para manejar una gran cantidad de conexiones de servidor activas, como en websockets. Tornado también ofrece internacionalización integrada, ejecución rápida de solicitudes y muchas otras funcionalidades. Este ejemplo ilustra los pasos para construir una aplicación Python simple con el framework Tornado. Esta aplicación será empaquetada y asociada con un servicio de AppSail, y desplegada en la consola. 1. Crea una nueva carpeta en tu sistema local para la aplicación Tornado. 2. Navega al directorio desde tu terminal y ejecuta el siguiente comando para instalar Tornado: python3 -m pip install tornado -t. 3. Ahora puedes crear tu archivo índice de Python y nombrarlo app.py o cualquier nombre de tu elección. Agrega la lógica que necesites en el código de la aplicación. A continuación se muestra un código de muestra para un programa básico "Hello World". import os import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, World!") if __name__ == "__main__": app = tornado.web.Application([ (r"/", MainHandler), ]) listen_port = int(os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000)) app.listen(listen_port, address='0.0.0.0') tornado.ioloop.IOLoop.current().start() 4. Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona el siguiente valor al inicializar el servicio de aplicación: **Stack**: Python_3_9 5. Asegúrate de que todos los archivos de la aplicación Python junto con los módulos tornado estén presentes en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota. 6. Despliega el servicio de aplicación en la consola. 7. Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola: python3 -u app.py También puedes configurar esto en el archivo app-config.json antes de desplegar. <br> Accede al servicio de aplicación desplegado desde su URL de endpoint. ## Runtimes gestionados por Catalyst -------------------------------------------------------------------------------- title: "Conceptos clave" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.854Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/catalyst-managed-runtimes/key-concepts/" service: "Serverless" -------------------------------------------------------------------------------- # Runtimes gestionados por Catalyst ## Conceptos clave ### Descripción general Puedes desplegar una aplicación como un runtime gestionado por Catalyst si su stack es uno de los runtimes soportados. Puedes desarrollar este servicio web usando cualquier framework, biblioteca, plugin o dependencia según sea necesario. Como el término sugiere, solo es el runtime lo que es gestionado por Catalyst. Aún necesitarás gestionar las dependencias que tu código incluye. Puedes desplegar directamente los archivos de compilación de tu aplicación, ya sea a través de la CLI o desde la consola. Catalyst gestiona actualmente los siguientes runtimes: * Java: Java 25, Java 21, Java 17, Java 11, Java 8 en los formatos Java SE y Java WAR * Node.js: Node 24, Node 22, Node 20, Node 18, Node 16 * Python: Python 3.13, Python 3.12, Python 3.11, Python 3.10, Python 3.9 Aunque AppSail no incluye muchas configuraciones específicas de Catalyst ni restricciones de formato, hay ciertas definiciones que se empaquetan con tu aplicación que contienen información sobre el alojamiento y la ejecución de la aplicación. Estas se discuten a continuación. <br> ### El archivo app-config.json Cuando inicializas o agregas un servicio de AppSail como un runtime gestionado por Catalyst desde la CLI, Catalyst crea un archivo de configuración app-config.json e incluye la configuración de tu aplicación en él. Este archivo se crea en el directorio en el que inicializas la aplicación, también llamado el [directorio fuente](#source-directory-and-build-path). Nota: El archivo app-config.json no se crea cuando haces un despliegue independiente sin inicializar o agregar la aplicación primero. La configuración que este archivo contiene se obtiene directamente como entrada tuya en la CLI durante el despliegue. Este archivo tampoco se crea para aplicaciones inicializadas como un runtime personalizado. A continuación se muestra un archivo app-config.json de ejemplo creado para una aplicación Java: { "command": "java -jar demo-0.0.1-SNAPSHOT.jar", "buildPath": "/Users/emma-426/CatalystDirectories/DemoApp", "stack": "java8", "env_variables": { "clientid":xxxxxxx, "clientsecret":xxxxxx }, "memory": 256, "platform": "javase" "scripts": { "preserve": "mvn install -DskipTests" "predeploy": "mvn install -DskipTests" } } * command: El comando de inicio para tu aplicación * buildPath: El directorio que contiene los [archivos de compilación](#common-build-files) de tu aplicación * stack: El runtime gestionado por Catalyst de tu aplicación * env_variables: Las variables de entorno para tu aplicación * memory: La memoria asignada para la ejecución de tu aplicación * platform: Define si tu aplicación es del formato javase o javawar, aplicable solo al stack Java * scripts: Los scripts que se pueden ejecutar antes de servir o desplegar tu aplicación a través de preserve y predeploy Los valores para los parámetros stack, buildPath y platform se obtienen obligatoriamente al inicializar o agregar la aplicación. Puedes configurar los otros valores en este archivo antes de desplegar tu aplicación en la nube. También puedes configurar las variables de entorno, la memoria y el comando de inicio directamente en la consola después del despliegue. <br> ### Directorio fuente y ruta de compilación * De manera predeterminada, el directorio fuente de tu aplicación es el directorio desde el cual ejecutas el comando de inicialización o adición de la aplicación. También puedes seleccionar otro directorio además del directorio actual para que sea la fuente durante la inicialización. * Debes agregar los archivos fuente de tu aplicación al directorio fuente. * El archivo [app-config.json](#the-app-configjson-file) se crea en el directorio fuente de tu aplicación. * El directorio de destino es el directorio que contendrá los archivos de compilación de tu servicio web desplegable. * Puedes especificar el directorio de destino de tu aplicación cuando la inicializas o la agregas, o agregarlo para el parámetro build-path en el archivo app-config.json. * Cuando haces un despliegue independiente, el directorio actual será el directorio de compilación. * No necesitas empaquetar o comprimir todos los archivos de compilación juntos, ya que AppSail los empaquetará automáticamente durante el servido o despliegue de la aplicación desde el build-path especificado. * Puedes nombrar el archivo principal de la compilación de tu aplicación como prefieras. Sin embargo, cuando compilas tu aplicación como un archivo Java WAR, necesitarás nombrar el archivo principal root.war. Esto es para asegurar que se eviten configuraciones adicionales de tu parte cuando se genera la URL del endpoint para tu aplicación. Si nombras tu archivo WAR de otra manera, necesitarás agregar algunos controladores necesarios en tu código de manera correspondiente. <br> ### Archivos de compilación comunes Para runtimes gestionados por Catalyst, según el runtime y el framework, tu código compilado o desplegable podría ser de cualquier formato en cualquier estructura. Algunos formatos comunes se mencionan a continuación: * Java: El archivo de compilación final de una aplicación Java WAR es del formato .war. Un archivo WAR es esencialmente un formato desplegable estándar que se puede ejecutar directamente en cualquier servidor de aplicaciones. Es un contenedor para archivos JAR, JavaServer Pages, Java Servlets, clases Java, archivos XML, HTML, CSS, etc. del código fuente de la aplicación. Si tus archivos de compilación son de cualquier otro formato además de un archivo *.war*, puedes seleccionar la plantilla Java SE. Algunos otros formatos incluyen .jar o archivos de clase compilados, .class. Si usas cualquier framework o biblioteca de Java, debes incluir esos archivos en la ruta de compilación. * Node.js: El archivo principal desplegable es típicamente un archivo .js. Según los estándares del framework o las dependencias que agregues, habrá módulos de node y archivos de configuración incluidos en el directorio de tu aplicación. Debes asegurarte de agregar todos los módulos de node y archivos de configuración, junto con el archivo principal y los archivos del cliente nativo en la ruta de compilación. * Python: El archivo principal desplegable es típicamente un archivo .py. Según los estándares del framework, plugins o dependencias que agregues, habrá archivos de Python y de configuración incluidos en el directorio de tu aplicación. Debes asegurarte de agregar todos los módulos y archivos de configuración, junto con el archivo principal y los archivos del cliente nativo en la ruta de compilación. Puedes consultar la guía de ayuda sobre la construcción de aplicaciones de ejemplo para aprender más sobre el uso de frameworks populares en cada stack y desplegarlos como servicios de AppSail. -------------------------------------------------------------------------------- title: "Desplegar desde la CLI" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.855Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/catalyst-managed-runtimes/deploy-from-cli/" service: "Serverless" -------------------------------------------------------------------------------- # Desplegar AppSail como un runtime gestionado por Catalyst desde la CLI ### Inicializar o agregar un servicio de AppSail Puedes inicializar un servicio de AppSail para un runtime gestionado por Catalyst directamente en el directorio de tu aplicación, o desde un nuevo directorio usando la CLI de Catalyst. También puedes agregar un servicio de AppSail a un directorio de proyecto de Catalyst existente, donde se han inicializado otros recursos. Puedes [desplegar el servicio de AppSail](#deploy-an-appsail-service) después de inicializarlo o agregarlo. Catalyst crea un archivo app-config.json cuando un servicio de AppSail se inicializa con este método. Para inicializar un servicio de AppSail en un nuevo directorio, crea una carpeta para tu proyecto en tu máquina local y navega a ella desde tu terminal. Inicializa un proyecto ejecutando el siguiente comando desde ese directorio: catalyst init Puedes agregar un servicio de AppSail en un directorio de proyecto de Catalyst existente ejecutando este comando de CLI: catalyst appsail:add Los pasos para inicializar o agregar el servicio de AppSail serán los mismos como se describe a continuación: 1. La CLI te pedirá que selecciones el tipo de runtime como **Catalyst-Managed Runtime** o **Docker Image** cuando AppSail se inicializa o agrega. Selecciona la primera opción. 2. Ahora puedes elegir comenzar con un proyecto de ejemplo listo ingresando "Y" y presionando **Enter**, luego seleccionando una aplicación de ejemplo de la lista. La aplicación de ejemplo se descargará en el directorio. Proporciona un nombre para ella cuando se te solicite. Si deseas inicializar tu propia aplicación, ingresa "N", luego presiona **Enter**. 3. Selecciona si este será tu directorio fuente de tu aplicación ingresando "Y". Si ingresas "N", la CLI te pedirá que escribas la ruta absoluta para el código fuente de tu aplicación en tu directorio. Presiona **Enter** después de las entradas. 4. Ingresa un nombre para tu aplicación. Puedes nombrar el archivo principal de la compilación de tu aplicación como prefieras. Nota: Cuando compilas tu aplicación como un archivo Java WAR, necesitarás nombrar el archivo principal root.war o agregar controladores específicos según tu código. 5. Ingresa la ruta de compilación absoluta para tu aplicación, luego presiona **Enter**. 6. Selecciona un stack y runtime para tu aplicación y presiona **Enter**. Si seleccionas Java, la CLI te pedirá adicionalmente que elijas entre Java SE o Java WAR como el formato desplegable de tu aplicación. Puedes aprender más sobre esto aquí. Si seleccionas cualquier otro stack, esto se omitirá. AppSail ahora está inicializado o agregado en el directorio fuente que seleccionaste, y la aplicación está ahora asociada con el proyecto de Catalyst. Las configuraciones se actualizarán en el archivo catalyst.json de manera correspondiente. Este proceso solo creará el archivo de configuración app-config.json que es específico de AppSail en el directorio fuente de tu aplicación. Puedes editar los valores como el comando de inicio, las variables de entorno o la memoria en este archivo antes de desplegar. <br> ### Desplegar un servicio de AppSail Catalyst te permite desplegar servicios de AppSail de dos maneras diferentes: * Despliegue regular: La ejecución del despliegue regular se aplica cuando ya has inicializado un recurso de AppSail ya sea durante la inicialización del proyecto o al agregarlo en un directorio de proyecto existente. * Despliegue independiente: Puedes hacer un despliegue independiente de una aplicación directamente sin inicializarla como un servicio de AppSail previamente. Catalyst desplegará todos los archivos ejecutables de tu aplicación presentes en la ruta de compilación que especificaste durante la inicialización de la aplicación, en este caso junto con las configuraciones del proyecto. Nota: No necesitas empaquetar o comprimir todos los archivos de compilación juntos, ya que AppSail los empaquetará automáticamente durante el servido o despliegue de la aplicación desde la ruta de compilación especificada. <br> ### Despliegue regular Si la aplicación de AppSail ya está inicializada en el directorio del proyecto, la CLI desplegará automáticamente la aplicación junto con el resto de los recursos del proyecto cuando ejecutes el comando catalyst deploy. La CLI mostrará la URL del endpoint de la aplicación después de que se despliegue, con la que puedes abrirla. <br> Si tienes múltiples aplicaciones de AppSail en el directorio de tu proyecto, puedes acceder a todas sus URLs de endpoint desde la CLI. También puedes ejecutar el siguiente comando para desplegar solo el servicio de AppSail desde el directorio fuente de tu aplicación. catalyst deploy appsail El proceso de despliegue es el mismo. <br> <br> ### Despliegue independiente Debes ejecutar el comando de despliegue independiente desde la raíz del directorio del proyecto de Catalyst. Es decir, catalyst.json y otros archivos de dependencia del proyecto deben estar presentes en el directorio. Nota: Si ejecutas el comando de despliegue independiente sin ninguna de las [opciones específicas para desplegar imágenes de contenedor](#standalone-deploy-appsail-options), la CLI te pedirá entradas relacionadas solo con aplicaciones de runtime gestionado por Catalyst de manera predeterminada. Debes recordar los siguientes puntos sobre el despliegue independiente: * Debes asegurarte de que los archivos de compilación desplegables de tu aplicación estén presentes en el directorio desde el que ejecutas el comando. Esto se debe a que ese directorio se considerará el directorio de compilación automáticamente. * El archivo app-config.json no se crea cuando haces un despliegue independiente para desplegar una aplicación sin inicializarla. La información que este archivo contiene se obtiene como entrada tuya en la CLI durante el despliegue. <br> Puedes hacer el despliegue independiente de una aplicación de AppSail de la siguiente manera: 1. Navega al directorio donde están presentes los archivos desplegables de la aplicación y ejecuta el siguiente comando: catalyst deploy appsail 2. Ingresa un nombre para tu aplicación. Puedes nombrar el archivo principal de la compilación de tu aplicación como prefieras. <br> Nota: Sin embargo, cuando compilas tu aplicación como un archivo Java WAR, necesitarás nombrar el archivo principal root.war o agregar controladores específicos según tu código. 3. Selecciona la ruta de compilación para tu aplicación de la lista y presiona **Enter**. <br> 4. Selecciona un stack para tu aplicación y presiona **Enter**. <br> Si seleccionas Java, la CLI te pedirá adicionalmente que elijas entre Java SE o Java WAR como el formato desplegable de tu aplicación. Puedes aprender más sobre esto aquí. <br> Si seleccionas cualquier otro stack, esto se omitirá. 5. Adicionalmente debes especificar el comando de inicio para tu aplicación según el stack, framework y servidor web utilizado. Esta información se desplegará directamente y estará disponible en la sección Configurations de tu consola después del despliegue de la aplicación. <br> Tu aplicación ahora está directamente desplegada en el proyecto remoto asociado sin requerir que la inicialices como un recurso de AppSail. Ahora puedes acceder a ella con su URL de endpoint mostrada en la CLI. <br> <br> ### Opciones de despliegue independiente de AppSail El comando independiente catalyst deploy appsail admite las siguientes opciones. Algunas de estas son aplicables tanto a aplicaciones de runtime gestionado por Catalyst como a imágenes de contenedor, mientras que algunas son específicas solo para una de ellas. --name &lt;name&gt; Usa esto para especificar el nombre de tu aplicación. Esto es aplicable tanto a aplicaciones de runtime gestionado por Catalyst como a imágenes de contenedor. Ejemplo: --name DemoApp --build-path &lt;path&gt; Usa esto para especificar la ruta de compilación de tu aplicación. Proporciona un valor de ruta absoluta. Esto es aplicable solo a aplicaciones de runtime gestionado por Catalyst. Ejemplo: --build-path /users/amelia/catalystapp/demoapp/ --stack &lt;stack&gt; Usa esto para especificar el stack o runtime de tu aplicación. Solo debes especificar los runtimes que están soportados por Catalyst. Esto es aplicable solo a aplicaciones de runtime gestionado por Catalyst. Ejemplo: --stack NodeJS 20 --platform &lt;javase|war&gt; Usa esto para especificar la plataforma del stack Java únicamente que están soportados en Catalyst: javase o war. Esto es aplicable solo a aplicaciones de runtime gestionado por Catalyst. Ejemplo: --platform javase --command &lt;command&gt; Usa esto para especificar el comando de inicio para tu aplicación. Esto es aplicable tanto a aplicaciones de runtime gestionado por Catalyst como a imágenes de contenedor. Esto anulará cualquier valor ya configurado en la definición de la imagen de contenedor. Ejemplo: --command npm start -------------------------------------------------------------------------------- title: "Desplegar desde la consola" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.855Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/catalyst-managed-runtimes/deploy-from-console/" service: "Serverless" -------------------------------------------------------------------------------- # Desplegar AppSail como un runtime gestionado por Catalyst desde la consola AppSail te permite desplegar una aplicación como un runtime gestionado por Catalyst desde la consola remota de Catalyst directamente de la siguiente manera: 1. Navega al servicio **Serverless** en tu proyecto de Catalyst en el que deseas desplegar tu aplicación, luego haz clic en **AppSail** en *Compute*. <br /> Al hacer clic en **Deploy from CLI**, una ventana emergente te mostrará las instrucciones para desplegar un servicio de AppSail desde la CLI. Consulta la sección de ayuda de la CLI para pasos detallados. 2. Haz clic en **Deploy from Console** para desplegar tu aplicación directamente aquí. 3. Selecciona el tipo de despliegue como **Catalyst-Managed Runtime** y proporciona un nombre para tu servicio de AppSail. Selecciona el runtime que usa tu aplicación de una lista de los runtimes soportados por Catalyst. Proporciona un comando de inicio para tu aplicación según el runtime de tu aplicación. Sube un archivo ZIP del directorio de compilación de tu AppSail. Nota: Cuando despliegas la aplicación en la consola directamente, el directorio de compilación no necesita incluir el archivo app-config.json, ya que solo es necesario mientras despliegas desde la CLI. Puedes proporcionar los detalles de configuración aquí. Si el archivo app-config.json está presente, los valores que proporciones aquí anularán los de ese archivo. <br /> 4. Puedes configurar ajustes avanzados para tu aplicación. * Configura un puerto personalizado para la ejecución de tu aplicación, si es necesario. Los puertos dentro del rango de 0 a 1024 están reservados, con la excepción de los puertos 80 y 443. Puedes usar cualquier otro puerto fuera de este rango. El puerto 9000 se usará de manera predeterminada. Nota: Si no has configurado el puerto en tu código, asegúrate de configurar el mismo puerto para escuchar al iniciar el servidor en el comando de inicio de tu aplicación. * Configura la memoria requerida para la ejecución de tu aplicación, según tus requisitos. Puedes seleccionar 128, 256, 512, 1024 o 2048 MB. Información: También puedes configurar el tamaño del disco para la ejecución de tu aplicación después de desplegar la aplicación desde la sección de configuración. * Configura variables de entorno para tu servicio de AppSail según sea necesario. <br /> Puedes agregar múltiples variables de entorno haciendo clic en el ícono **+**, y eliminarlas haciendo clic en el ícono **—**. Información: La variable de entorno se agregará al entorno de Catalyst (desarrollo o producción) en el que estás trabajando actualmente. Puedes cambiar el entorno desde el menú desplegable en la parte superior de la consola y agregar variables según sea necesario. <br /> 5. Después de configurar los detalles, haz clic en **Deploy**. Tu aplicación se desplegará en la consola. Ahora podrás ver y gestionar tu aplicación desde la consola. <br /> Consulta aquí para ayuda sobre la gestión de tu servicio de AppSail. ## Runtimes personalizados -------------------------------------------------------------------------------- title: "Servicios de registro de contenedores" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.856Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/custom-runtimes/container-registry-services/" service: "Serverless" -------------------------------------------------------------------------------- # Servicios de registro de contenedores ### Docker Hub Catalyst facilita una integración sencilla con Docker Hub, uno de los servicios de registro de contenedores líderes. Después de configurar la integración, puedes desplegar fácilmente imágenes de tu cuenta de Docker Hub en AppSail desde la consola. También puedes gestionar tu conexión de Docker Hub desde la consola. #### Integrar Docker Hub con Catalyst Realiza una configuración única para integrar tu cuenta de Docker Hub con Catalyst de la siguiente manera: 1. Navega a **Settings** en la consola, luego selecciona **Integrations** en *General Settings*. Haz clic en **Docker Hub** de la lista. <br /> 2. Haz clic en **Add Docker Account** para agregar una nueva conexión. <br /> 3. Proporciona un nombre para la conexión. Luego, agrega el nombre de usuario de tu cuenta de Docker Hub (Docker ID) y el token de acceso personal. Puedes crear y obtener tokens de acceso desde Docker Home como se explica en esta página de ayuda. <br /> 4. Haz clic en **Add**. Tu conexión se creará y se listará en la página de *Docker Hub Integrations*. Ahora puedes usar esta conexión para desplegar una imagen Docker desde Docker Hub en AppSail. <br /> <br> #### Editar conexión de Docker Hub Puedes editar una conexión individual de Docker Hub como se describe a continuación. 1. Haz clic en el ícono de puntos suspensivos de la conexión que deseas editar, luego haz clic en **Edit**. <br /> 2. Edita la información requerida. Puedes actualizar el nombre de la conexión, el nombre de usuario de tu cuenta o el token de acceso personal. Haz clic en **Save**. <br /> <br> #### Eliminar conexión de Docker Hub Puedes eliminar una conexión individual de Docker Hub como se describe a continuación. 1. Haz clic en el ícono de puntos suspensivos de la conexión que deseas eliminar, luego haz clic en **Delete**. <br /> 2. Haz clic en **Delete** en la ventana emergente de confirmación. <br /> <br> ### Amazon Elastic Container Registry Catalyst facilita una integración sencilla con AWS que te permite acceder al Amazon Elastic Container Registry. Después de configurar la integración, puedes desplegar fácilmente imágenes de tu Amazon ECR en AppSail desde la consola. También puedes gestionar tu conexión de AWS desde la consola. #### Integrar AWS con Catalyst Realiza una configuración única para integrar tu cuenta de AWS con Catalyst de la siguiente manera: 1. Navega a **Settings** en la consola, luego selecciona **Integrations** en *General Settings*. Haz clic en **AWS** de la lista. <br /> 2. Haz clic en **Add AWS** para agregar una nueva conexión. <br /> 3. Proporciona un nombre para la conexión. Luego, agrega el Access Key ID y el Access Key Secret de tu cuenta de AWS. Puedes crear y gestionar credenciales de clave de acceso en AWS como se explica en esta página de ayuda. <br /> 4. Haz clic en **Add**. Tu conexión se creará y se listará en la página de *AWS Integrations*. Ahora puedes usar esta conexión para desplegar una imagen OCI desde AWS ECR en AppSail. <br /> <br> #### Editar conexión de AWS Puedes editar una conexión individual de AWS como se describe a continuación. 1. Haz clic en el ícono de puntos suspensivos de la conexión que deseas editar, luego haz clic en **Edit**. <br /> 2. Edita la información requerida. Puedes actualizar el nombre de la conexión, tu Access Key ID y Access Key Secret. Haz clic en **Save**. <br /> <br> #### Eliminar conexión de AWS Puedes eliminar una conexión individual de AWS como se describe a continuación. 1. Haz clic en el ícono de puntos suspensivos de la conexión que deseas eliminar, luego haz clic en **Delete**. <br /> 2. Haz clic en **Delete** en la ventana emergente de confirmación. <br /> <br> ### Google Artifact Registry Catalyst facilita una integración sencilla con Google Artifact Registry. Después de configurar la integración, puedes desplegar fácilmente imágenes de tu cuenta de GCP en AppSail desde la consola. También puedes gestionar tu conexión de GCP desde la consola. #### Integrar Google Cloud Platform con Catalyst Realiza una configuración única para integrar tu cuenta de GCP con Catalyst de la siguiente manera: 1. Navega a **Settings** en la consola, luego selecciona **Integrations** en *General Settings*. Haz clic en **Google Cloud Platform** de la lista. <br /> 2. Haz clic en **Add GCP Account** para agregar una nueva conexión. <br /> 3. Proporciona un nombre para la conexión. Luego, sube el archivo JSON de credenciales de cuenta de servicio de tu cuenta de GCP que contendrá tu información de credenciales. Puedes obtener una clave de cuenta de servicio y descargarla como un archivo JSON desde la consola de Google Cloud como se explica en esta página de ayuda. <br /> 4. Haz clic en **Add**. Tu conexión se creará y se listará en la página de *GCP Integrations*. Ahora puedes usar esta conexión para desplegar una imagen OCI desde GCP Artifact Registry en AppSail. <br /> <br> #### Editar conexión de GCP Puedes editar una conexión individual de GCP como se describe a continuación. 1. Haz clic en el ícono de puntos suspensivos de la conexión que deseas editar, luego haz clic en **Edit**. <br /> 2. Edita la información requerida. Puedes actualizar el nombre de la conexión o subir un nuevo archivo JSON de credenciales de cuenta de servicio. Haz clic en **Save**. <br /> <br> #### Eliminar conexión de GCP Puedes eliminar una conexión individual de GCP como se describe a continuación. 1. Haz clic en el ícono de puntos suspensivos de la conexión que deseas eliminar, luego haz clic en **Delete**. <br /> 2. Haz clic en **Delete** en la ventana emergente de confirmación. <br /> <br> -------------------------------------------------------------------------------- title: "Desplegar desde la CLI" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.856Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/custom-runtimes/deploy-from-cli/" service: "Serverless" -------------------------------------------------------------------------------- # Desplegar AppSail como un runtime personalizado desde la CLI ### Inicializar o agregar un servicio de AppSail Puedes inicializar un servicio de AppSail para una aplicación de runtime personalizado directamente en el directorio de tu aplicación, o desde un nuevo directorio usando la CLI de Catalyst. También puedes agregar un servicio de AppSail a un directorio de proyecto de Catalyst existente, donde se han inicializado otros recursos. Puedes [desplegar el servicio de AppSail](#deploy-an-appsail-service) después de inicializarlo o agregarlo. Para inicializar un servicio de AppSail en un nuevo directorio, crea una carpeta para tu proyecto en tu máquina local y navega a ella desde tu terminal. Inicializa un proyecto ejecutando el siguiente comando desde ese directorio: catalyst init Puedes agregar un servicio de AppSail en un directorio de proyecto de Catalyst existente ejecutando este comando de CLI: catalyst appsail:add <br> Catalyst admite dos protocolos para aplicaciones de runtime personalizado que puedes usar para asociar la imagen de tu aplicación con AppSail. Cada protocolo tiene un esquema distinto para identificación y funcionamiento. * Protocolo Docker Image: Usa esto para asociar una imagen preconstruida de tu aplicación presente en el registro docker local. La imagen debe estar construida y etiquetada para apuntar al registro local. Ejemplo: *docker://localhost/expres-hw:latest* * Protocolo Docker Archive: Usa esto para apuntar a un archivo de archivado (.tar o .tar.gz) de una imagen preconstruida de tu aplicación en el directorio de tu sistema. Ejemplo: *docker-archive://test.tar* Nota: El archivo .tar se puede generar típicamente con el comando docker save. No necesitas proporcionar ningún otro detalle excepto el nombre del AppSail para imágenes de contenedor. La ruta fuente o de compilación de la aplicación, el stack y el comando de inicio no necesitan ser configurados para imágenes OCI, ya que ya están definidos en las imágenes. Los pasos para inicializar o agregar el servicio de AppSail serán los mismos como se describe a continuación: 1. La CLI te pedirá que selecciones el tipo de runtime como Catalyst-Managed Runtime o **Docker Image** cuando AppSail se inicializa. Selecciona la segunda opción. 2. Selecciona el protocolo como **Docker Image** o **Docker Archive**. 3. Protocolo Docker Image: Si seleccionas **Docker Image**, la CLI listará todas las imágenes disponibles con etiquetas en el registro docker local. Selecciona la imagen que necesites. Protocolo Docker Archive: Si seleccionas **Docker Archive**, la CLI te pedirá que ingreses la ruta absoluta al archivo TAR de la imagen de tu aplicación en tu sistema local. Nota: Cuando la configuración de AppSail se almacena en el archivo catalyst.json, la ruta se almacenará relativa a la ubicación de ese archivo. 4. Proporciona un nombre para el servicio de AppSail. Puedes nombrarlo como prefieras. AppSail ahora está inicializado en tu directorio local, y la imagen de la aplicación ahora está asociada con el servicio de AppSail. Las configuraciones se actualizarán en el archivo catalyst.json de manera correspondiente. Nota: El archivo app-config.json no se creará cuando inicialices AppSail con una imagen de contenedor. Todas las especificaciones de la aplicación se almacenarán en el archivo catalyst.json. Puedes agregar ciertas configuraciones personalizadas de tu aplicación en este archivo. Consulta aquí para más detalles. Ahora puedes codificar tu lógica de negocio en tu aplicación, luego servir el servicio de AppSail a través de un localhost para depurar y probarlo, o desplegarlo en la consola remota directamente. ### Desplegar un servicio de AppSail Catalyst te permite desplegar servicios de AppSail de dos maneras diferentes: * Despliegue regular: La ejecución del despliegue regular se aplica cuando ya has inicializado un recurso de AppSail ya sea durante la inicialización del proyecto o al agregarlo en un directorio de proyecto existente. * Despliegue independiente: Puedes hacer un despliegue independiente de una aplicación directamente sin inicializarla como un servicio de AppSail previamente. La imagen OCI de tu aplicación que está asociada con AppSail se despliega, junto con el archivo de configuración de tu proyecto. Nota: Catalyst solo admite el despliegue de imágenes compatibles con OCI construidas para la plataforma Linux AMD64 (x86-64). <br> ### Despliegue regular Si la aplicación de AppSail ya está inicializada en el directorio del proyecto, la CLI desplegará automáticamente la aplicación junto con el resto de los recursos del proyecto cuando ejecutes el comando catalyst deploy. La CLI mostrará la URL del endpoint de la aplicación después de que se despliegue, con la que puedes abrirla. <br> Si tienes múltiples aplicaciones de AppSail en el directorio de tu proyecto, puedes acceder a todas sus URLs de endpoint desde la CLI. También puedes ejecutar el siguiente comando para desplegar solo el servicio de AppSail desde el directorio fuente de tu aplicación. catalyst deploy appsail El proceso de despliegue es el mismo. <br> <br> ### Despliegue independiente Debes ejecutar el comando de despliegue independiente desde la raíz del directorio del proyecto de Catalyst. Es decir, catalyst.json y otros archivos de dependencia del proyecto deben estar presentes en el directorio. Nota: Si ejecutas el comando de despliegue independiente sin ninguna de las [opciones específicas para desplegar imágenes de contenedor](#standalone-deploy-appsail-options), la CLI te pedirá entradas relacionadas solo con aplicaciones de runtime gestionado por Catalyst de manera predeterminada. Puedes usar el comando de despliegue independiente con estas opciones para desplegar aplicaciones como imágenes de contenedor: --name &lt;name&gt;, --source &lt;image&gt;, --command &lt;command&gt;, --port &lt;port&gt;. Las dos primeras son obligatorias, mientras que las dos últimas son opcionales y se pueden usar para anular cualquier comando de inicio o puerto ya configurado en la definición de la imagen de contenedor. Las opciones se explican en detalle a continuación. <br> Puedes hacer el despliegue independiente de una aplicación de AppSail de la siguiente manera: 1. Navega al directorio donde están presentes los archivos desplegables de la aplicación y ejecuta el siguiente comando: catalyst deploy appsail 2. Ingresa un nombre para tu aplicación. Puedes nombrar el archivo principal de la compilación de tu aplicación como prefieras. <br> Nota: Sin embargo, cuando compilas tu aplicación como un archivo Java WAR, necesitarás nombrar el archivo principal root.war o agregar controladores específicos según tu código. 3. Selecciona la ruta de compilación para tu aplicación de la lista y presiona **Enter**. <br> 4. Selecciona un stack para tu aplicación y presiona **Enter**. <br> Si seleccionas Java, la CLI te pedirá adicionalmente que elijas entre Java SE o Java WAR como el formato desplegable de tu aplicación. <br> Si seleccionas cualquier otro stack, esto se omitirá. 5. Adicionalmente debes especificar el comando de inicio para tu aplicación según el stack, framework y servidor web utilizado. Esta información se desplegará directamente y estará disponible en la sección Configurations de tu consola después del despliegue de la aplicación. <br> Tu aplicación ahora está directamente desplegada en el proyecto remoto asociado sin requerir que la inicialices como un recurso de AppSail. Ahora puedes acceder a ella con su URL de endpoint mostrada en la CLI. <br> <br> ### Opciones de despliegue independiente de AppSail El comando independiente catalyst deploy appsail admite las siguientes opciones. Algunas de estas son aplicables tanto a aplicaciones de runtime gestionado por Catalyst como a imágenes de contenedor, mientras que algunas son específicas solo para una de ellas. --name &lt;name&gt; Usa esto para especificar el nombre de tu aplicación. Esto es aplicable tanto a aplicaciones de runtime gestionado por Catalyst como a imágenes de contenedor. Ejemplo: --name DemoApp --command &lt;command&gt; Usa esto para especificar el comando de inicio para tu aplicación. Esto es aplicable tanto a aplicaciones de runtime gestionado por Catalyst como a imágenes de contenedor. Esto anulará cualquier valor ya configurado en la definición de la imagen de contenedor. Ejemplo: --command npm start --source &lt;image&gt; Usa esto para especificar la fuente de la imagen docker a desplegar. Esto es aplicable solo a aplicaciones de imagen de contenedor. Debes comenzar con '*docker://*' para el protocolo Docker image y '*docker-archive://*' para el protocolo Docker archive. Consulta aquí para más detalles. Ejemplo: --source docker://example-voting-app-worker:latest --port &lt;port&gt; Usa esto para especificar el puerto para el AppSail. Esto es aplicable solo a aplicaciones de imagen de contenedor. Esto anulará cualquier valor ya configurado en la definición de la imagen de contenedor. Ejemplo: --port 8000 -------------------------------------------------------------------------------- title: "Desplegar desde la consola" description: "Catalyst AppSail es una plataforma completamente gestionada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en runtimes gestionados de Java, Node.js y Python, o de runtimes personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.857Z" source: "https://docs.catalyst.zoho.com/es/serverless/help/appsail/custom-runtimes/deploy-from-console/" service: "Serverless" -------------------------------------------------------------------------------- # Desplegar AppSail como un runtime personalizado desde la consola AppSail te permite desplegar una aplicación como una imagen de contenedor desde la consola de Catalyst directamente. Los pasos proporcionados aquí son comunes para todos los servicios de registro de contenedores. 1. Navega al servicio **Serverless** en tu proyecto de Catalyst en el que deseas desplegar tu aplicación, luego haz clic en **AppSail** en *Compute*. <br /> Al hacer clic en **Deploy from CLI**, una ventana emergente te mostrará las instrucciones para desplegar un servicio de AppSail desde la CLI. Consulta la sección de ayuda de la CLI para pasos detallados. 2. Haz clic en **Deploy from Console** para desplegar tu aplicación directamente aquí. 3. Selecciona el tipo de despliegue como **Docker Image** y proporciona un nombre para tu servicio de AppSail. Selecciona el tipo de despliegue como Docker Image y selecciona el servicio de registro de contenedores de la lista: Docker Hub, AWS ECR o Google Artifact Registry. Ingresa lo siguiente según el servicio que elijas: * Docker Hub: Image URL * Amazon ECR: Image URI * GCP Artifact Registry: Image Path Consulta los enlaces de ayuda para detalles sobre cómo obtenerlos. <br /> 4. Debes seleccionar las credenciales del servicio de registro de contenedores que usarás para el despliegue de tu imagen OCI. El menú desplegable listará todas las credenciales que has configurado con el servicio de contenedores. Puedes seleccionar una credencial existente o hacer clic en el botón **Create Integration** a continuación para agregar una nueva credencial. Esto te redirigirá a Integration Settings. <br /> Nota: Los pasos para agregar y gestionar integraciones de Catalyst para Docker Hub, AWS o Google Cloud Platform se cubren en sus respectivas secciones de ayuda. <br /> 5. Puedes configurar ajustes avanzados para tu aplicación. i. Proporciona un comando de inicio para tu aplicación según el runtime de tu aplicación. Nota: Si ya has definido el comando de inicio en tu imagen de contenedor, el comando que proporciones en Catalyst tendrá prioridad. ii. Configura un puerto personalizado para la ejecución de tu aplicación, si es necesario. Los puertos dentro del rango de 0 a 1024 están reservados, con la excepción de los puertos 80 y 443. Puedes usar cualquier otro puerto fuera de este rango. El puerto 9000 se usará de manera predeterminada. Nota: Si no has configurado el puerto en tu código, asegúrate de configurar el mismo puerto para escuchar al iniciar el servidor en el comando de inicio de tu aplicación. iii. Configura la memoria requerida para la ejecución de tu aplicación, según tus requisitos. Puedes seleccionar 128, 256, 512, 1024 o 2048 MB. Información: También puedes configurar el tamaño del disco para la ejecución de tu aplicación después de desplegar la aplicación desde la sección de configuración. iv. Configura variables de entorno para tu servicio de AppSail según sea necesario. <br /> Puedes agregar múltiples variables de entorno haciendo clic en el ícono **+**, y eliminarlas haciendo clic en el ícono **—**. Información: La variable de entorno se agregará al entorno de Catalyst (desarrollo o producción) en el que estás trabajando actualmente. Puedes cambiar el entorno desde el menú desplegable en la parte superior de la consola y agregar variables según sea necesario. 6. Después de configurar los detalles, haz clic en **Deploy**. Tu aplicación se desplegará en la consola. Ahora podrás ver y gestionar tu aplicación desde la consola. <br /> Consulta aquí para ayuda sobre la gestión de tu servicio de AppSail. --- ## SDK — Java — AppSail -------------------------------------------------------------------------------- title: "Implementar SDK en AppSail" description: "Esta página describe el método para implementar el SDK de Java en un servicio AppSail y aprovechar las funcionalidades de Catalyst dentro de la aplicación." last_updated: "2026-07-30T07:10:05.879Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/serverless/appsail/implement-sdk-in-appsail/" service: "Serverless" related: - AppSail Help (/es/serverless/help/appsail/introduction) -------------------------------------------------------------------------------- # Catalyst AppSail Catalyst AppSail es un componente totalmente gestionado e independiente de plataforma como servicio (PaaS) de Catalyst Serverless que te permite desarrollar y desplegar servicios en la nube con facilidad. Las aplicaciones de AppSail pueden construirse de forma independiente de las estructuras de codificación específicas de Catalyst, y Catalyst te proporciona una plataforma potente y altamente escalable para este propósito. AppSail soporta todos los frameworks de Python como Flask, Django, Bottle o CherryPy. ### Implementar el SDK de Python en AppSail Puedes implementar el SDK de Python de Catalyst en el código base de tu servicio AppSail con facilidad. El SDK necesitará ser inicializado con el objeto de solicitud antes de cada petición. A continuación se muestra un ejemplo de importación e inicialización del SDK de Python en una aplicación web Flask. from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. --- ## SDK — Node JS — AppSail -------------------------------------------------------------------------------- title: "Implementar SDK en AppSail" description: "Esta página describe el método para implementar el SDK de Python en un servicio AppSail y aprovechar las funciones de Catalyst dentro de la aplicación." last_updated: "2026-07-30T07:10:05.881Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/serverless/appsail/implement-sdk-in-appsail/" service: "Serverless" related: - AppSail Help (/es/serverless/help/appsail/introduction) -------------------------------------------------------------------------------- # Catalyst AppSail Catalyst AppSail es un componente completamente administrado, independiente, de Plataforma como Servicio (PaaS) de Catalyst Serverless que te permite desarrollar y desplegar servicios en la nube con facilidad. Las aplicaciones AppSail pueden construirse independientemente de las estructuras de codificación específicas de Catalyst, y Catalyst te proporciona una plataforma potente y altamente escalable para este propósito. AppSail soporta todos los frameworks de Python como Flask, Django, Bottle o CherryPy. # Implementar el SDK de Python en AppSail Puedes implementar el SDK de Catalyst Python en el código base de tu servicio AppSail con facilidad. El SDK necesitará ser inicializado con el objeto de solicitud antes de cada solicitud. A continuación se muestra un ejemplo de importación e inicialización del SDK de Python en una aplicación web Flask. from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Info : Consulta la tabla de ámbitos del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Implementar el SDK de Catalyst" description: "Catalyst AppSail es una plataforma completamente administrada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en entornos de ejecución administrados de Java, Node.js y Python, o de entornos de ejecución personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-07-30T07:10:05.881Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/serverless/appsail/implement-catalyst-sdk/" service: "Serverless" -------------------------------------------------------------------------------- # Implementar el SDK de Catalyst en AppSail Catalyst te permite implementar los paquetes del SDK de los entornos de desarrollo compatibles en tus aplicaciones AppSail para entornos de ejecución administrados por Catalyst. Esto te permite aprovechar otros servicios y componentes de Catalyst en la funcionalidad de tu aplicación. Puedes implementar los SDKs de desarrollo de varios entornos de programación en tu aplicación como se especifica a continuación. Note: Esto solo está disponible para servicios web construidos para un entorno de ejecución administrado por Catalyst compatible. No podrás implementar el SDK de Catalyst para aplicaciones desplegadas como imágenes OCI a través de entorno de ejecución personalizado. ### Implement Catalyst Java SDK Puedes descargar el paquete del SDK de Catalyst Java desde la configuración de Developer Tools en tu consola de Catalyst e incluirlo en el código fuente de tu aplicación. Luego puedes implementar el SDK de Catalyst Java en el código de tu aplicación e inicializarlo. Consulta la ayuda del SDK de Catalyst Java para obtener detalles sobre las diversas funcionalidades del kit de herramientas del SDK y fragmentos de código de ejemplo. Los pasos para implementar e inicializar el SDK de Catalyst para diferentes versiones de API de servlets Java se demuestran con códigos de ejemplo a continuación. En todos los casos, Catalyst requiere que implementes la interfaz **AuthHeaderProvider** del paquete del SDK de Catalyst Java. La implementación define el método getHeader() que devuelve el valor del encabezado de la solicitud. Luego puedes pasar un objeto de la clase de implementación al método init(), para inicializar el SDK. #### Java Servlet API versions <=4 Código de ejemplo para aplicaciones Java que usan servlets Java de versiones de API menores o iguales a 4.0 (javax.servlet): **Clase de implementación:** package com.zoho.catalyst.appsail.demo.utils; import javax.servlet.http.HttpServletRequest; import com.zc.auth.AuthHeaderProvider; public class AuthProviderImpl implements AuthHeaderProvider { HttpServletRequest request; public AuthProviderImpl(HttpServletRequest request) { this.request = request; } @Override public String getHeaderValue(String key) { return request.getHeader(key); } } <br> **Inicialización:** AuthProviderImpl authProviderImpl = new AuthProviderImpl(req); CatalystSDK.init(authProviderImpl) <br> #### Java Servlet API versions >=5 Código de ejemplo para aplicaciones Java que usan servlets Java de versiones de API mayores o iguales a 5.0 (jakarta.servlet): **Clase de implementación:** import com.zc.auth.AuthHeaderProvider; import jakarta.servlet.http.HttpServletRequest; public class AuthProviderImpl implements AuthHeaderProvider { private HttpServletRequest request; AuthProviderImpl(HttpServletRequest request) { this.request = request; } @Override public String getHeaderValue(String s) { return request.getHeader(s); } } <br> **Inicialización:** CatalystSDK.init(new AuthProviderImpl((HttpServletRequest) servletRequest)); <br> Si estás desarrollando una aplicación Java con la herramienta de construcción Maven, puedes incluir el SDK de Catalyst Java como una dependencia en el archivo de configuración de Maven (pom.xml), en lugar de descargar y agregar el SDK en tu código fuente manualmente. Para agregar el SDK de Catalyst en un proyecto Maven, simplemente agrega el repositorio de Zoho (publicado en MvnRepository) en el archivo pom.xml como se muestra a continuación: &lt;repositories&gt; &lt;repository&gt; &lt;id&gt;java-sdk&lt;/id&gt; &lt;url&gt;https://maven.zohodl.com&lt;/url&gt; &lt;/repository&gt; &lt;/repositories&gt; Luego puedes agregar el SDK de Java como dependencia en pom.xml como se muestra a continuación: &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;com.zoho.catalyst&lt;/groupId&gt; &lt;artifactId&gt;java-sdk&lt;/artifactId&gt; &lt;version&gt;1.15.0&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt; <br> ### Implement Catalyst Node.js SDK Puedes instalar el paquete del SDK de Catalyst Node.js ejecutando el siguiente comando en tu terminal e incluyéndolo en el código fuente de tu aplicación: npm install zcatalyst-sdk-node --save Esto instalará la última versión compatible del SDK de Node.js. También puedes instalar una versión compatible específica de esta manera: npm install zcatalyst-sdk-node@2.1.1 --save Luego puedes inicializar el SDK de Node.js en el código de tu aplicación como se muestra en el código de ejemplo a continuación. Esto pasa el objeto de solicitud al método initialize(). const catalyst = require('zcatalyst-sdk-node') const express = require('express') const app = express() app.get((req, res) => { let catalystApp = catalyst.initialize(req); //Tu código va aquí }) app.listen(process.env("X_ZOHO_CATALYST_LISTEN_PORT") || 9000) Consulta la ayuda del SDK de Catalyst Node.js para obtener detalles. La documentación del SDK también proporciona fragmentos de código de ejemplo para todas las funcionalidades compatibles. <br> ### Implement Catalyst Python SDK Puedes instalar el SDK de Catalyst Python para tu solución AppSail ejecutando el siguiente comando en tu terminal e incluyéndolo en el código fuente de tu aplicación: pip install zcatalyst-sdk -t . Luego puedes importar el SDK de Python en tu código para tu aplicación Catalyst. El SDK necesitará ser inicializado con el objeto de solicitud antes de cada solicitud. A continuación se muestra un fragmento de código de ejemplo para importar e inicializar el SDK de Python en una aplicación web Flask: from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Consulta la ayuda del SDK de Catalyst Python para obtener detalles sobre las diversas funcionalidades del kit de herramientas del SDK y fragmentos de código de ejemplo. --- ## SDK — Python — AppSail -------------------------------------------------------------------------------- title: "Implementar SDK en AppSail" description: "Esta página describe el método para implementar el SDK de Python en un servicio AppSail y aprovechar las funcionalidades de Catalyst dentro de la aplicación." last_updated: "2026-07-30T07:10:05.882Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/serverless/appsail/implement-sdk-in-appsail/" service: "Serverless" related: - AppSail Help (/es/serverless/help/appsail/introduction) -------------------------------------------------------------------------------- # Catalyst AppSail Catalyst AppSail es un componente Platform-as-a-service (PaaS) completamente administrado e independiente de Catalyst Serverless que te permite desarrollar y desplegar servicios en la nube con facilidad. Las aplicaciones AppSail se pueden construir de forma independiente de las estructuras de código específicas de Catalyst, y Catalyst te proporciona una plataforma potente y altamente escalable para este propósito. AppSail soporta todos los frameworks de Python como Flask, Django, Bottle o CherryPy. # Implementar el SDK de Python en AppSail Puedes implementar el SDK de Python de Catalyst en el código base de tu servicio AppSail con facilidad. El SDK necesitará ser inicializado con el objeto request antes de cada solicitud. A continuación se muestra un ejemplo de importar e inicializar el SDK de Python en una aplicación web Flask. from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior.