Directorio de Functions
Introducción
Como se discutió anteriormente, Catalyst soporta Functions escritas en entornos de programación Java, Node.js y Python. La carpeta functions en el directorio del proyecto contiene todas las funciones del lado del servidor de tu microservicio o aplicación en carpetas individuales.
La carpeta de una función individual en el directorio de Functions contiene el archivo principal de la función (el archivo de clase .java o el archivo .js o el archivo .py), y todas las demás dependencias necesarias y archivos de configuración de la función. También puedes crear funciones secundarias adicionales en la carpeta de la función que trabajen estrechamente con la función principal.
Sin embargo, no puedes crear funciones secundarias en una carpeta de función desde el CLI. Puedes importar manualmente los archivos en la carpeta desde un entorno de desarrollo externo, o crearlos en la consola de Catalyst y descargarlos (pull) al directorio usando el CLI.
Cuando inicializas Functions desde el CLI en el directorio del proyecto, se creará una carpeta llamada ‘functions’ dentro del directorio del proyecto, junto con las dependencias necesarias según el entorno de programación que selecciones.
La carpeta de una función Java se configura con los siguientes componentes cuando se crea:
- El archivo de clase .java principal
- catalyst-config.json
- Los archivos de biblioteca .jar
La carpeta de una función Node.js se configura con los siguientes componentes cuando se crea:
- El archivo de función principal (index.js)
- catalyst-config.json
- Módulos de Node y dependencias de función Node.js
La carpeta de una función Python se configura con los siguientes componentes cuando se crea:
- El archivo main.py
- catalyst-config.json
- El archivo requirements.txt
Primero discutamos sobre el archivo de función principal y el archivo catalyst-config.json que son comunes en los entornos de programación Java, Node.js y Python.
El Archivo de Función Principal
El archivo de función principal es el archivo de tipo .java o .js o .py, dependiendo del lenguaje que selecciones al inicializar la función. El archivo de función principal se crea con una estructura de código de ejemplo para Java, Node.js y Python.
Para una función Java, necesitarás proporcionar el nombre de clase de la función principal y el nombre de referencia del grupo de funciones al inicializarla desde el CLI. El nombre de la carpeta de la función será el mismo que el nombre de referencia de la función.
Para una función Node.js y Python, necesitarás proporcionar el nombre del paquete de la función. También necesitarás proporcionar el nombre del archivo de punto de entrada o el archivo de función principal, que será index.js y main.py por defecto, respectivamente.
El archivo catalyst.json especificará los nombres de referencia o de paquete de todas las Functions.
Archivo catalyst-config json
El archivo catalyst-config.json especifica la configuración de la función, como sus especificaciones de despliegue y ejecución.
{
"deployment":{
"name": "fn",
"stack": "node16",
"type": "advancedio",
"env_variables": {}
},
"execution": {
"main": "index.js"
}
}
La información de deployment incluye los siguientes parámetros:
- name: El nombre de referencia del grupo de funciones que proporcionaste al inicializarlo.
Si modificas el nombre de referencia de la función, asegúrate de actualizar los cambios en catalyst-config.json y renombrar la carpeta de la función con el mismo nombre. También debes reflejar los cambios en catalyst.json. - stack: Indica si es una función Java, Node.js o Python y la información de versión. Cambiar este valor resultará en errores.
- type: Indica el tipo de función. Para aprender más sobre los tipos de funciones, consulta la página de ayuda de Functions. Cambiar este valor resultará en errores.
execution se refiere al archivo de función principal que es el punto de entrada, es decir, el nombre del archivo de función principal .java, .js o .py.
Debes asegurarte de que el archivo catalyst-config.json esté presente en la raíz de la carpeta de la función y contenga las configuraciones correctas cuando despliegues la función.
Ahora veamos en detalle los archivos de biblioteca Java, las dependencias de funciones Node y Python:
La Carpeta de Biblioteca Java
La carpeta de biblioteca llamada lib contiene los archivos JAR dependientes para la función. La carpeta lib se agrega al directorio de la función automáticamente cuando inicializas la función para el entorno Java desde el CLI.
Estos archivos JAR son parte del paquete Java SDK. Durante el tiempo de ejecución, la función Java llama a estos archivos de biblioteca ya que contienen paquetes y características que la función requiere para ejecutarse.
Módulos de Node y Dependencias de Funciones Node JS
La carpeta de una función Node.js esencialmente incluye lo siguiente:
- El archivo de función principal
- catalyst-config.json
- package-lock.json
- package.json
- La carpeta de módulos de Node
Previamente hemos discutido el archivo de función principal y el archivo catalyst-config.json. Los módulos de Node y las dependencias de funciones Node se instalan en tu sistema cuando instalas el paquete Node.js SDK.
Los archivos package.json y package-lock.json son archivos de dependencia que contienen la configuración de la función. El archivo package.json especifica información como el nombre de la función, archivo de función principal, versión, autor y más, mientras que el package-lock.json especifica otra información de dependencias en detalle.
La carpeta de módulos de Node contiene las subcarpetas de los módulos. Cada módulo contiene archivos de biblioteca individuales, archivos de licencia, archivos de configuración, archivos index y más, que son esenciales para la ejecución de tus funciones Node.js.
Uno de los módulos de Node, zcatalyst-sdk-node, contiene las definiciones del Node.js SDK de todos los componentes de Catalyst agrupados en una carpeta llamada src, y otros archivos de dependencia.
-
Cuando creas una función desde la consola, el grupo de funciones no contendrá todas las dependencias requeridas. Por ejemplo, los módulos de Node no se agregarán a un grupo de funciones Node.js, aunque se creará una carpeta para ellos. En tales casos, puedes descargar (pull) las Functions desde la consola al directorio del proyecto usando el CLI. Esto creará un directorio para esas funciones en la estructura requerida. Si el grupo de funciones creado en la consola contiene funciones secundarias, se incluirán en la carpeta de la función cuando las descargues desde la consola.
-
Cuando creas una función desde un editor externo y la importas a Catalyst, debes asegurarte de que todas las dependencias estén incluidas y todos los archivos de configuración estén creados en el formato especificado. Si hay alguna discrepancia, podría resultar en errores cuando la función se ejecute.
Módulos de Python y Dependencias de Funciones
La carpeta de una función Python esencialmente incluye lo siguiente:
- El archivo main.py
- catalyst-config.json
- El archivo requirements.txt
Ya hemos discutido sobre el archivo de función principal y el archivo catalyst-config.json en las secciones anteriores.
Archivo requirements.txt
Este archivo requirements.txt contiene la lista de dependencias instaladas que se necesitan para implementar la función Python. Por defecto, contiene la entrada para el paquete Python SDK de Catalyst (zcatalyst-sdk), cuando creas la función Python desde el CLI. Cuando instalas dependencias externas o bibliotecas para tu función, tendrás que configurar los nombres y valores de las dependencias en forma de pares clave-valor manualmente en el archivo requirements.txt y guardarlo.
También puedes actualizar la versión del paquete Python SDK o cualquiera de las dependencias externas simplemente configurando los valores de versión apropiados en el archivo requirements.txt y guardándolo. Cuando sirvas o despliegues tu función Python desde el CLI, las configuraciones actualizadas se reflejarán.
La estructura del directorio de funciones Python es la siguiente:
Última actualización 2026-03-20 21:51:56 +0530 IST
Yes
No
Send your feedback to us


