Aviso:

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

Funciones Advanced I/O

Introducción

Las funciones Advanced I/O manejan solicitudes y respuestas HTTP nativas para todos tus componentes de Catalyst. Puedes usar cualquier cantidad de APIs en una sola función Advanced I/O y pasar grandes flujos de datos en la función. Estas funciones te permiten construir mecanismos de enrutamiento complejos para tu aplicación entre el servidor y el cliente. Puedes construir y mantener herramientas del lado del servidor de forma rápida y eficiente usando estas funciones.

Las funciones Advanced I/O también ofrecen flexibilidad para realizar una variedad de acciones y resolver diferentes casos de uso. Por ejemplo, puedes transmitir o analizar grandes volúmenes de datos como archivos de imagen u otros adjuntos, renderizar una vista, incrustar archivos o descargar un archivo usando funciones Advanced I/O.

El tipo de función Basic I/O no es adecuado para enrutamiento o canalización de datos, ya que solo ejecuta operaciones básicas de entrada y salida y pasa datos a través de parámetros. Por lo tanto, puedes usar funciones Advanced I/O para tales propósitos. También puedes obtener cualquier forma de respuesta, como una respuesta JSON o HTML para una función Advanced I/O.

Catalyst también ofrece soporte para el framework Express de Node.js en funciones Advanced I/O. Express es un popular framework de Node.js que te permite gestionar enrutamiento, renderizado y configuración de middleware para manejar funcionalidades HTTP de forma robusta y fácil. Puedes elegir importar este framework en tus funciones y acceder a sus paquetes.

El endpoint de una función Advanced I/O es directamente accesible a través de su URL de Function. La URL de la función se genera cuando se crea la función, y te permite acceder directamente a la función y probarla en diferentes condiciones.

Puedes crear una función Advanced I/O desde la consola de Catalyst, programarla allí, o usar el CLI para inicializar la función y desplegarla en la consola después de probarla. El CLI también te permite probar funciones Advanced I/O sirviendo la función a través de un localhost.

Puedes usar varias herramientas para gestionar tus funciones Advanced I/O y ver sus estadísticas de rendimiento como Logs, Application Performance Monitoring o API Gateway, como se menciona en la página de introducción de Functions.

Puedes encontrar varios tutoriales de Catalyst que incluyen funciones Advanced I/O en su código. Consulta la sección de Tutoriales para practicar el trabajo con funciones Advanced I/O.

Nota: El tiempo máximo de espera de una función Advanced I/O es de 30 segundos.

Casos de uso

A continuación se presentan algunos casos de uso para funciones Advanced I/O:

  • Un servicio de aplicación de búsqueda local que proporciona información sobre servicios y negocios en una región particular usa una función Advanced I/O para manejar el enrutamiento en su aplicación web y móvil. Cuando el usuario final ejecuta una consulta de búsqueda para información sobre servicios en su localidad, como restaurantes o spas, la aplicación obtiene información sobre los servicios disponibles junto con los enlaces de sus sitios web desde Data Store o Cache. Cuando el usuario hace clic en un enlace, es redirigido al sitio web del negocio. Estas funcionalidades de recuperación de datos y redirección son manejadas enteramente por funciones Advanced I/O usando los métodos de solicitud y respuesta HTTP.
  • Una aplicación aloja archivos de video como películas, programas de TV y documentales y permite a los usuarios finales descargarlos a sus dispositivos. La aplicación está escrita usando el framework Express de Node.js y usa una función Advanced I/O para implementar estas funcionalidades. La función maneja tareas como ejecutar operaciones de búsqueda en la aplicación, obtener resultados del Data Store y solicitar descargas de archivos en segundos.

Otros ejemplos donde se pueden implementar funciones Advanced I/O incluyen los siguientes tipos de aplicaciones:

  • Aplicaciones de edición colaborativa de documentos en tiempo real, gestión de proyectos o co-navegación
  • Aplicaciones de transmisión de medios en vivo
  • Aplicaciones basadas en datos
  • Aplicaciones de una sola página
  • Microservicios independientes
  • Aplicaciones de conferencias de audio o video
  • Aplicaciones dinámicas basadas en eventos
  • Aplicaciones de chat en línea

Beneficios

  • Te permite construir aplicaciones en tiempo real y microservicios que son funcionalmente ricos y dinámicos por naturaleza
  • Te proporciona un espacio integrado para manejar el enrutamiento de toda la aplicación incluyendo cualquier cantidad de APIs en una sola función
  • Puede construir la lógica de solicitud y respuesta entre el servidor y el cliente para todos los componentes de Catalyst y realizar enrutamiento complejo
  • Te permite implementar cualquier funcionalidad del framework Express cuando incluyes el paquete en tu función

Estructura de la función

El archivo principal de la función en Java, Node.js y Python se inicializa con código y módulos predeterminados diferentes para cada tipo de función, cuando se crea la función. Como se menciona en la sección Stack de Functions, la estructura de una función Java, Node.js o Python generalmente contiene un archivo principal de la función junto con dependencias y archivos de configuración. Consulta la página de ayuda de Estructura del Directorio del Proyecto para detalles sobre la estructura genérica del directorio de funciones y los archivos de configuración de las funciones de Catalyst.

Veamos el código predeterminado con el que se inicializa una función Advanced I/O, tanto en los entornos Java, Node.js como Python.

Nota: Puedes consultar este tutorial para ver un ejemplo de función Advanced I/O en los entornos Java, Node.js y Python.

Java

Catalyst inicializa una función Advanced I/O en el entorno Java con el siguiente código predeterminado de una operación simple de entrada y salida.

Functions- Advanced I/O Java

Una función Advanced I/O en Java importa el paquete javax.servlet para manejar las solicitudes y respuestas. Implementa CatalystAdvancedIOHandler para la clase principal. Las definiciones de rutas deben definirse en la función public void runner().

Node.js

Una función Advanced I/O en Node.js se puede crear con dos plantillas diferentes desde la consola: La plantilla Express.js que incluye todos los módulos de Express o una plantilla en blanco que no incluye ni módulos de Express ni módulos de Node. Sin embargo, cuando inicializas la función desde el CLI, solo puedes incluir los módulos de Node en su estructura. Debes instalar los módulos de Express por separado.

  1. La plantilla Express.js

    Los módulos de Express se agregan automáticamente cuando creas una función Advanced I/O en Node.js con las dependencias desde la consola de Catalyst. Esto instala el framework Express en el directorio de tu función.

    Cuando inicializas una función Advanced I/O desde el CLI, puedes instalar Express de forma independiente ejecutando npm install express –save en el directorio de tu función.

    Las funciones Advanced I/O de Catalyst soportan los objetos predeterminados de solicitud y respuesta de las funciones HTTP de Node.js, req y res. Estos objetos manejan las solicitudes y respuestas para las rutas mapeadas a componentes de Catalyst como Cache o Data Store.
    Functions- Advanced I/O Node.js
    La ruta aquí se define en el formato: app.METHOD(PATH, HANDLER) y las acciones se programan en las definiciones de ruta.
  2. La plantilla en blanco

    La plantilla en blanco te permite construir código nativo de Node.js desde cero para adaptarse a tus requisitos. Esta plantilla no incluye los módulos de Express.js. Cuando inicializas la función sin el SDK en la consola, se crea en la plantilla en blanco sin los módulos de Node ni los módulos de Express.

    El código de ejemplo para la plantilla en blanco también incluye los objetos req y res, y define diferentes respuestas para cada ruta URL.
    Functions- Advanced I/O Node.js
    Como esta es una plantilla en blanco, tendrás que crear un servidor HTTP usando el método createServer() y pasarlo a una función requestListener() que se ejecuta cada vez que el servidor recibe una solicitud. Puedes aprender sobre cómo escribir una función HTTP nativa en Node.js en su documentación oficial.

Python

Cuando inicializas una función Advanced I/O desde el CLI, el código boilerplate que se muestra a continuación se incluirá automáticamente en el archivo main.py presente dentro del directorio de la función Python.

Para manejar las operaciones de entrada y salida de las funciones Advanced I/O de Catalyst de manera eficiente, hemos utilizado el framework flask. Este framework proporciona las herramientas y bibliotecas que se pueden usar para construir aplicaciones Python robustas con máxima flexibilidad para el desarrollador. También aumenta la eficiencia funcional de la aplicación al permitir que se ejecute usando un solo archivo Python.

Las funciones Advanced I/O de Catalyst soportan los objetos de solicitud y respuesta de la función HTTP de Python. Estos objetos manejan las solicitudes y respuestas para las rutas mapeadas a componentes de Catalyst como Cache o Data Store.

copy
import json
import zcatalyst-sdk
import logging
from flask import Request, make_response, jsonify

def handler(request: Request): app = zcatalyst-sdk.initialize() logger = logging.getLogger() if request.path == “/”: response = make_response(jsonify({ ‘status’: ‘success’, ‘message’: ‘Hello from {{MAIN}}’ }), 200) return response elif request.path == “/cache”: default_segment = app.cache().segment()

    insert_resp = default_segment.put('Name', 'DefaultName')
    logger.info('Inserted cache : ' + str(insert_resp))
    get_resp = default_segment.get('Name')

    return jsonify(get_resp), 200
else:
    response = make_response('Unknown path')
    response.status_code = 400
    return response

URL de Function

Como se mencionó anteriormente, el endpoint de una función Advanced I/O es directamente accesible a través de una URL de invocación única. Puedes invocarla manualmente a través de su URL y obtener la respuesta. Puedes implementar esta URL en el código de tu aplicación, o usarla según lo requieras. Esta URL de función se genera automáticamente cuando se crea la función.

La URL de producción de una función Advanced I/O tiene el siguiente formato: https://project_domain_name.catalystserverless.com/server/function_name/

En el entorno de Development, la URL menciona la clave development como: https://project_domain_name.development.catalystserverless.com/server/function_name/

  • https://project_domain_name.catalystserverless.com es el App Domain de tu aplicación de Catalyst.
  • /server indica que es una función.
  • La URL identifica la función por su nombre.
  • La ausencia de la palabra clave /execute indica que es una función Advanced I/O.

Puedes obtener la URL de una función desde la consola, o en tu terminal después de desplegar la función desde el Catalyst CLI.

Puedes agregar rutas que hayas definido en el código de la función Advanced I/O después de esta URL base para ejecutar el comportamiento que hayas definido para ellas.

Por ejemplo, la siguiente definición de ruta obtiene todos los datos del Data Store cuando se accede a la ruta /item/all a través del método GET:

Functions- Advanced I/O Function URL

Cuando agregas la ruta a la URL base como: https://catly-687259092.development.catalystserverless.com/server/catly/item/all y la invocas, la función Advanced I/O obtendrá todos los elementos del Data Store.

Functions- Advanced I/O Function URL

Push a Logs

Catalyst Logs muestra los logs de todas las ejecuciones de tus funciones junto con los detalles necesarios. Las ejecuciones de funciones se registran automáticamente en los logs. Sin embargo, también puedes enviar los datos de respuesta de la ejecución de una función Advanced I/O a los logs manualmente.

Catalyst te permite escribir hasta 1500 caracteres en los logs. También puedes enviar las respuestas a diferentes niveles de log individualmente, como a Info o Warning.

Los datos de respuesta de una función Advanced I/O se pueden enviar a los logs usando el siguiente método: console.log().

Puedes ver esta instrucción en el código predeterminado con el que se inicializa una función Advanced I/O, donde los datos se envían a los logs y el nivel del logger también se establece manualmente.

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