Todos los productos
Search
Centro de documentos

Function Compute:Cree una aplicación web con una función web

Última actualización: Sep 21, 2026

Las funciones web de Function Compute le permiten construir aplicaciones web y servicios de API de forma sencilla. Estas funciones son compatibles con los framework web de varios lenguajes populares, como Java SpringBoot, Python Flask y Node.js Express, lo que facilita la migración rápida de sus aplicaciones existentes. Function Compute gestiona los recursos de cómputo subyacentes por usted. Cuando se accede a su servicio mediante un navegador o una URL, el sistema aprovisiona y escala automáticamente las instancias para satisfacer la demanda. Si no hay tráfico, las instancias se liberan de manera automática y usted solo paga por los recursos que utiliza.

Descripción general

Este tema describe cómo desplegar una aplicación Flask mediante una función web en Function Compute. A continuación se muestra el proceso general:

  1. Desarrollar y probar la aplicación web: cree un proyecto en su computadora local con el código de ejemplo. Edite y pruebe el código de la API para asegurarse de que funcione correctamente. Si desea migrar una aplicación existente, omita este paso.

  2. Generar un paquete de código: instale las dependencias obligatorias en el directorio local del proyecto. Después, empaquete el proyecto en un archivo ZIP para desplegarlo en Function Compute.

  3. Cargar y desplegar la aplicación: configure los parámetros de creación de la función y cargue el paquete de código para crearla.

  4. Probar la función web: invoque la función web para comprobar que la aplicación Flask se ejecuta correctamente.

Requisitos previos

Cree una cuenta de Alibaba Cloud

Cree una cuenta de Alibaba Cloud y complete la verificación de nombre real.

Active Function Compute

Si registró una cuenta de Alibaba Cloud y completó la verificación de nombre real después del 27 de agosto de 2024, puede usar Function Compute sin necesidad de activarlo. La primera vez que inicie sesión en la consola de Function Compute, siga las instrucciones en pantalla para solicitar un paquete de recursos gratuito. Para obtener más información, consulte Free trial.

Si registró su cuenta de Alibaba Cloud antes del 27 de agosto de 2024, siga estos pasos para activar el servicio.

  1. Vaya a la página del producto Function Compute.

  2. Haga clic en Console para abrir la página de activación. Haga clic en Activate Now para activar el servicio y abrir la consola de Function Compute.

    Nota
    • Se recomienda usar una cuenta de Alibaba Cloud para activar el servicio y un usuario RAM para gestionar recursos como las funciones. Puede otorgar permisos al usuario RAM según el principio de privilegio mínimo. Para obtener más información, consulte Grant permissions to a RAM user.

  3. (Opcional) La primera vez que inicie sesión en la consola de Function Compute, haga clic en OK en el cuadro de diálogo Alibaba Cloud Service Authorization para crear un service-linked role. Este rol permite que Function Compute acceda a otros servicios en la nube.

    Una vez creado el rol, Function Compute puede acceder a sus recursos de otros servicios, como VPC, ECS, Log Service (SLS) y Container Registry.

Procedimiento

Utilice uno de los siguientes métodos para crear una función web y desplegar su código.

  • Crear una función en la consola de Function Compute: esta opción le permite crear rápidamente una sola función. Es ideal para construir aplicaciones ligeras o para validaciones rápidas.

  • Usar la herramienta de línea de comandos Serverless Devs: este método es adecuado para gestionar proyectos complejos en producción y automatizar despliegues. Con un archivo de configuración YAML, puede gestionar varias funciones y sus recursos en la nube asociados. Para obtener más información, consulte Quick start.

Para simplificar el proceso, este tema describe cómo crear una función en la consola de Function Compute.

Paso 1: Desarrollar y probar la aplicación

Nota

Si desea migrar una aplicación Flask existente, omita este paso y continúe con Step 2: Generate a code package.

  1. Abra una nueva ventana de línea de comandos en su computadora local y ejecute el siguiente comando para instalar las bibliotecas Flask y tabulate obligatorias.

    pip install Flask tabulate
  2. Cree una carpeta llamada code y, dentro de ella, un archivo llamado app.py. Pegue el siguiente código de ejemplo en el archivo. Este código implementa un servicio de calendario sencillo empaquetado como una API. La API recibe un año y un mes, por ejemplo, enero de 2025, y devuelve una tabla de calendario correspondiente a ese mes.

    import calendar
    from flask import Flask, request
    from tabulate import tabulate
    import logging
    import json
    
    logger = logging.getLogger()
    app = Flask(__name__)
    
    @app.route("/", methods=["POST"])
    def get_month_calendar():
        # Get the request ID and print the log.
        requestId = request.headers.get('x-fc-request-id', '')
        logger.info("FC Invoke Start RequestId: " + requestId)
        # Get the request content and check the request format.
        data = json.loads(request.stream.read().decode('utf-8'))
        if not ('year' in data and 'month' in data):
            message = "Request must be in format like {'year': '1999', 'month': '12'}"
            return message
    
        # Get the calendar table.
        result = print_calendar(year=int(data['year']), month=int(data['month']))
        # Print the log that indicates the function execution is complete before the result is returned.
        logger.info("FC Invoke End RequestId: " + requestId)
        return result
    
    def print_calendar(year, month):
        # Get the calendar matrix for the specified year and month.
        cal = calendar.monthcalendar(year, month)
        # Change the dates that do not belong to the month from 0 to empty strings.
        cal = list(map(lambda sublist: list(map(lambda x: '' if x == 0 else x, sublist)), cal))
        # Create table headers.
        headers = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"]
    
        # Use tabulate to print the calendar table.
        return tabulate(cal, headers=headers, tablefmt="grid", stralign='center', numalign='center')
    
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=9000)
    
  3. Ejecute el comando python3 app.py para iniciar su aplicación Flask. Si se muestra la salida Running on http://127.0.0.1:9000, la aplicación Flask se está ejecutando. Luego, use un comando cURL para probar la aplicación.

    python3 app.py 
     * Serving Flask app 'app'
     * Debug mode: off
    WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
     * Running on http://127.0.0.1:9000
     * Running on http://47.100.XX.XX:9000
    Press CTRL+C to quit
  4. Abra una nueva ventana de terminal y use cURL para enviar una solicitud de ejemplo. Si el comando se ejecuta correctamente, devolverá una tabla de calendario.

    curl -X POST http://127.0.0.1:9000 -d '{"year": "2000", "month": "1"}'

    image

Con esto, ha creado y probado el proyecto de manera local.

Paso 2: Generar un paquete de código

A continuación, compilará localmente un paquete de código compatible con Function Compute. El paquete debe contener lo siguiente:

  • Los archivos de proyecto que requiere la aplicación web.

  • Si su aplicación tiene dependencias que no están incluidas en el entorno de ejecución, debe agregarlas al paquete de código. Para conocer las dependencias integradas de cada entorno de ejecución, consulte Built-in dependencies.

  1. Instalar las dependencias: en el directorio raíz del proyecto de su aplicación web, ejecute el siguiente comando para instalar las dependencias obligatorias (en este ejemplo, tabulate) directamente en ese directorio. Este comando instala las dependencias en el directorio raíz de su proyecto.

    Nota

    El entorno de ejecución de la función web de Python ya incluye la biblioteca Flask. Solo necesita instalar la biblioteca tabulate para que la aplicación de ejemplo funcione.

    pip install -t . tabulate
  2. Empaquete todos los archivos del directorio raíz del proyecto.

    Linux o macOS

    En el directorio raíz del proyecto, ejecute el comando zip code.zip -r ./*. Este comando empaqueta los archivos del proyecto y las dependencias en un archivo ZIP, con lo que se crea el paquete de código.

    Nota

    Asegúrese de tener permisos de lectura y escritura sobre el directorio.

    Windows

    Vaya al directorio del proyecto, seleccione todos los archivos, haga clic derecho sobre ellos y empaquételos en un archivo ZIP. De esta forma, los archivos del proyecto y las dependencias se comprimen en un archivo ZIP, lo que genera el paquete de código.

Paso 3: Crear y desplegar la función

  1. Seleccione el tipo de función web: inicie sesión en la consola de Function Compute. En el panel de navegación izquierdo, haga clic en Function Management > Functions. En la barra de navegación superior, seleccione la región donde desea crear la función. En la página que aparece, haga clic en Create Function y siga las instrucciones en pantalla para crear una Web Function.

  2. Seleccione un entorno de ejecución: como se muestra en la siguiente figura, seleccione Custom Runtime. Este entorno de ejecución incluye las dependencias que requiere el framework Flask.image

    Nota
    • Se recomienda usar un Custom Runtime para su función web. Un Custom Runtime le permite especificar un comando de inicio y un puerto de escucha, además de admitir el manejo simultáneo de solicitudes. Los Built-in Runtimes no ofrecen estas funciones y son más adecuados para procesar eventos generados por otros servicios en la nube.

    • Si prefiere un despliegue en contenedores, utilice un Custom Container para crear la función web. Este entorno de ejecución también admite el manejo simultáneo de solicitudes, pero usted debe gestionar las dependencias manualmente.

    • Para consultar una comparación detallada de los entornos de ejecución, vea Select a runtime.

  3. Despliegue el paquete de código: como se muestra en la figura, cargue el paquete de código ZIP que creó en Step 2. Establezca el comando de inicio en python3 app.py y el puerto de escucha en 9000. Si está migrando una aplicación Flask existente, modifique la configuración según el comando de inicio y el puerto reales. Por ejemplo, el puerto predeterminado de Flask es el 5000.

    Haga clic en Create y espere a que se cree la función.image

Paso 4: Probar la función

  1. Obtenga la URL de la función: en la página de detalles de la función recién creada, haga clic en la pestaña Trigger. En la configuración del disparador HTTP, copie el endpoint público.

    Si trabaja en un entorno de pruebas y no necesita autenticación, cambie el Authentication Method a No Authentication en la configuración del disparador HTTP, ya sea durante o después de su creación.

    image

  2. Pruebe la función: utilice cURL, Postman o cualquier cliente HTTP para invocar la función y comprobar que la aplicación Flask funciona correctamente. El siguiente ejemplo usa un comando cURL. Reemplace la URL por el endpoint que copió en el paso anterior.

    curl https://******.cn-hangzhou.fcapp.run -d '{"year": "2025", "month": "1"}' 

    La API web devuelve la información del calendario de enero de 2025. La siguiente salida es un ejemplo.

    image

    Nota
    • Si utiliza la configuración predeterminada del disparador HTTP, el comando devolverá un error "MissingRequiredHeader". Si está en un entorno de pruebas, cambie el Authentication Method del disparador a No Authentication.

    • El comando y la salida de ejemplo de este paso aplican únicamente al código de muestra. Si migra una aplicación existente, invoque el servicio con el nombre de la API y los parámetros reales. Para obtener más información, consulte Use cURL to test a function.

  3. (Opcional) Acceda a la función desde un navegador: el endpoint público proporcionado por el disparador HTTP no se puede abrir directamente en un navegador (podría desencadenar una descarga forzosa) y está diseñado solo para fines de prueba. Se recomienda vincular un nombre de dominio personalizado a la función para habilitar el acceso desde el navegador y utilizarla en un entorno de producción. Para obtener más información, consulte Configure a custom domain name.

(Opcional) Paso 5: Limpiar los recursos

Function Compute es un servicio pay-as-you-go. No se le cobra por las funciones que no utiliza. Sin embargo, podrían generarse cargos por los recursos en la nube asociados, como los datos almacenados en OSS y File Storage NAS, o los disparadores creados.

Si necesita eliminar una función, inicie sesión en la consola de Function Compute. En el panel de navegación izquierdo, haga clic en Function Management > Functions. Seleccione una región. En la columna Actions de la función objetivo, haga clic en Delete. En el cuadro de diálogo que aparece, confirme que la función no esté vinculada a ningún recurso, como disparadores, y luego confirme la eliminación.

Operaciones avanzadas

Ahora que ha creado y desplegado una aplicación web en una función web, puede ejecutar las siguientes operaciones avanzadas según sus necesidades.

  • Desarrollar código en la consola: aunque este tema se centra en el desarrollo local, muy útil para migrar aplicaciones existentes, también puede simplificar el despliegue mediante WebIDE. Este método elimina la necesidad de generar un paquete de código localmente y es ideal para iteraciones rápidas de desarrollo. Para obtener más información, consulte How to use WebIDE.

    Nota

    WebIDE solo es compatible con Python, Node.js y PHP. Para otros lenguajes, como Java y Go, únicamente puede cargar archivos ZIP compilados y empaquetados, o archivos binarios.

  • Desplegar proyectos de forma continua con Serverless Application Center: para automatizar la compilación y el despliegue (CI/CD) de su código en Function Compute, utilice Serverless Application Center. Para obtener más información, consulte Implement continuous deployment for an existing Function Compute project by using Serverless Application Center.

  • Configurar el registro de logs: para facilitar la depuración, la resolución de problemas o la auditoría de seguridad, se recomienda configurar el registro de logs para sus funciones. Para obtener más información, consulte Configure the logging feature.

Referencias

Para obtener más información sobre cómo agregar paquetes de dependencias para distintos lenguajes, consulte los siguientes temas:

Python

Deploy a Python code package

Node.js

Deploy a Node.js code package

Java

Compile and deploy a Java code package

Go

Compile and deploy a Go code package

C#

Compile and deploy a C# code package

PHP

Deploy a PHP code package