Ten en cuenta lo siguiente:
- Desplegar funciones una a una no está limitado a 50. Una sola solicitud que reemplace todas las funciones de tu proyecto sigue teniendo un límite de 50.
- Las funciones de backend tienen un tiempo máximo de ejecución de 5 minutos, aplicado de la misma forma tanto si la función se llama directamente, si la activa una automatización, o si se invoca como un paso de un workflow. Las solicitudes que superan este límite se terminan.
Crear funciones
Crea funciones de backend como archivos TypeScript en el directorio de funciones de tu proyecto. Por defecto, el directorio de funciones esbase44/functions/, pero puedes personalizar la ruta en tu configuración del proyecto.
Cada función vive en su propio subdirectorio con un archivo entry.ts o entry.js:
functions
<function-name>
entry.ts
functions/sendWelcomeEmail/entry.ts crea una función llamada sendWelcomeEmail. También puedes anidar funciones en subdirectorios para organizarlas. functions/email/send/entry.ts crea una función llamada email/send.
Añadir un archivo de configuración
Para necesidades avanzadas como nombres de función personalizados o automatizaciones, añade un archivofunction.jsonc:
functions
<function-name>
entry.ts
function.jsonc
entry.ts
El archivo de código contiene la lógica de tu función. Las funciones deben usar el wrapperDeno.serve() y devolver objetos Response:
Varios archivos por función
Una función no se limita a un soloentry.ts. Divide la lógica en varios archivos dentro del directorio de la función e impórtalos con rutas relativas. Cada archivo .js, .ts, .json y .jsonc del directorio de la función se despliega con la función.
functions
process-order
entry.ts
validate.ts
types.ts
Compartir código entre funciones
Para reutilizar código entre funciones, colócalo en un directorioshared dentro de tu carpeta base44/.
Cuando despliegas una función, el CLI sube el directorio shared junto con ella, y el servidor empaqueta solo los archivos compartidos que esa función importa. Cada función se despliega con su propia copia del código compartido que usa. Esto significa que:
- Cualquier función puede importar desde
sharedcon una ruta relativa. - Distintas funciones pueden acabar ejecutando versiones distintas del mismo archivo compartido. Cambiar un archivo compartido y desplegar una sola función actualiza solo la copia de esa función. Las demás mantienen la versión anterior hasta que las vuelvas a desplegar. Para aplicar un cambio compartido en todas partes, ejecuta
base44 functions deploysin argumentos para volver a desplegar todas las funciones a la vez.
base44
shared
response.ts
functions
greet
entry.ts
farewell
entry.ts
Probar localmente
Ejecuta tus funciones localmente conbase44 dev para probar los cambios sin desplegar. Consulta Desarrollo local para más detalles.
Desplegar funciones
Despliega funciones confunctions deploy o deploy para enviar todos los recursos del proyecto a la vez. Puedes desplegar funciones específicas por nombre con functions deploy <names...>, o usar --force para eliminar funciones remotas que no se encuentren localmente.
Para descargar funciones desplegadas en tu proyecto local, usa functions pull. Para ver qué hay desplegado actualmente, usa functions list.
Llamar a funciones
Llama a las funciones de backend desde tu frontend usando el SDK, o vía HTTP para webhooks e integraciones externas.Vía el SDK
Usabase44.functions.invoke() para llamar a funciones desde tu frontend. El SDK se encarga de la autenticación automáticamente, pasando las credenciales del usuario actual a tu función.
Vía HTTP
Cada función desplegada obtiene un endpoint HTTP en:- Webhooks: Recibe callbacks de servicios externos como Stripe o GitHub.
- Integraciones externas: Permite que otros sistemas interactúen con tu app.
- Pruebas: Llama a las funciones directamente con herramientas como cURL o Postman.
Al llamar a las funciones vía HTTP directo (como cURL o webhooks), no hay
contexto de usuario autenticado. Usa
asServiceRole para todas las operaciones en estos
casos.Usar el SDK en funciones
Dentro de tus funciones de backend, puedes acceder a los datos, la autenticación y las integraciones de tu app a través del SDK de Base44. UsacreateClientFromRequest() para crear un cliente a partir de la solicitud entrante.
El contexto de autenticación depende de cómo se llamó a la función:
-
Cuando se llama vía el SDK desde tu frontend: La autenticación del usuario se transmite automáticamente. Puedes acceder al usuario actual con
base44.auth.me()y realizar operaciones con sus permisos. Para operaciones de nivel administrador, usaasServiceRole. -
Cuando se llama vía HTTP directo (cURL, webhooks, servicios externos): No hay un usuario autenticado, así que usa
asServiceRolepara todas las operaciones.
Conectarse a APIs de terceros
Las funciones de backend son una de las varias formas de conectarse a APIs de terceros. Son ideales cuando necesitas control total sobre las solicitudes o quieres almacenar claves de API de forma segura como variables de entorno. Usasecrets set para configurar variables de entorno desde el CLI.
Ver logs
Durante el desarrollo local, la salida de la función se imprime directamente en tu terminal sin necesidad del comandologs.
Para funciones desplegadas, visualiza los logs con el comando logs. Los logs incluyen la salida de la consola, los errores y la información de tiempos. Puedes filtrar por nombre de función o rango de tiempo. Si usas un agente de IA para programación, la skill base44-troubleshooter puede obtener y analizar estos logs automáticamente.
Tipos de TypeScript
Genera tipos de TypeScript a partir de las configuraciones de tus funciones para obtener seguridad de tipos y autocompletado para los nombres de funciones en el código de tu SDK. Aprende más sobre los tipos dinámicos.Ver también
- Automatizaciones: Programa funciones o actívalas en eventos de la base de datos
- Módulo
functions: Referencia del SDK para invocar funciones createClientFromRequest: Crear un cliente en funciones de backendfunctions deploy: Despliega funciones locales en Base44functions pull: Descarga funciones desplegadas en tu proyecto localfunctions list: Lista todas las funciones desplegadasfunctions delete: Elimina funciones desplegadaslogs: Visualiza los logs de funcionesexec: Prueba funciones de forma aislada desde scripts independientes
Esta página fue traducida con IA. Para obtener la información más precisa y actualizada, consulta la versión en inglés.