Tous les produits
Search
Centre de documentation

Function Compute:Créer une application web avec une fonction web

Dernière mise à jour :Sep 21, 2026

Les fonctions web de Function Compute vous permettent de créer facilement des applications web et des services API. Compatibles avec les frameworks web de nombreux langages populaires (Java SpringBoot, Python Flask, Node.js Express, etc.), elles facilitent la migration rapide de vos applications existantes. Function Compute gère pour vous les ressources de calcul sous-jacentes. Lorsqu'un navigateur ou une URL accède à votre service, le système provisionne et met à l'échelle automatiquement les instances pour répondre à la demande. En l'absence de trafic, les instances sont libérées automatiquement : vous ne payez que les ressources consommées.

Présentation

Cette rubrique explique comment déployer une application Flask à l'aide d'une fonction web dans Function Compute. Voici les étapes principales :

  1. Développer et tester l'application web : Créez un projet sur votre machine locale à partir de l'exemple de code. Modifiez et testez le code de l'API pour garantir son bon fonctionnement. Si vous migrez une application existante, ignorez cette étape.

  2. Générer un package de code : Installez les dépendances requises dans le répertoire local du projet, puis empaquetez-le dans un fichier ZIP en vue du déploiement sur Function Compute.

  3. Télécharger et déployer l'application : Configurez les paramètres de création de la fonction, puis téléchargez le package de code pour créer la fonction.

  4. Tester la fonction web : Appelez la fonction web pour vérifier que l'application Flask s'exécute correctement.

Prérequis

Créer un compte Alibaba Cloud

Créez un compte Alibaba Cloud et effectuez la vérification d'identité réelle.

Activer Function Compute

Si vous avez créé un compte Alibaba Cloud et effectué la vérification d'identité réelle après le 27 août 2024, vous pouvez utiliser Function Compute sans activation préalable. Lors de votre première connexion à la console Function Compute, suivez les instructions à l'écran pour obtenir un forfait de ressources gratuit. Pour plus d'informations, consultez la section Essai gratuit.

Si vous avez créé votre compte Alibaba Cloud avant le 27 août 2024, activez le service en suivant les étapes ci-dessous.

  1. Accédez à la page du produit Function Compute.

  2. Cliquez sur Console pour ouvrir la page d'activation. Cliquez sur Activate Now pour activer le service et ouvrir la console Function Compute.

    Remarque
    • Nous vous recommandons d'utiliser un compte Alibaba Cloud pour activer le service et un utilisateur RAM pour gérer les ressources, telles que les fonctions. Accordez des autorisations à l'utilisateur RAM selon le principe du moindre privilège. Pour plus d'informations, consultez la section Accorder des autorisations à un utilisateur RAM.

  3. (Facultatif) Lors de votre première connexion à la console Function Compute, cliquez sur OK dans la boîte de dialogue Alibaba Cloud Service Authorization pour créer un rôle lié au service. Ce rôle permet à Function Compute d'accéder à d'autres services cloud.

    Une fois le rôle créé, Function Compute peut accéder à vos ressources depuis d'autres services, tels que VPC, ECS, Log Service (SLS) et Container Registry.

Procédure

Pour créer une fonction web et déployer votre code, choisissez l'une des méthodes suivantes.

  • Créer une fonction dans la console Function Compute : cette méthode permet de créer rapidement une fonction unique. Elle convient aux applications légères ou aux validations rapides.

  • Utiliser l'outil en ligne de commande Serverless Devs : cette méthode convient à la gestion de projets de production complexes et aux déploiements automatisés. Un fichier de configuration YAML permet de gérer plusieurs fonctions et leurs ressources cloud associées. Pour plus d'informations, consultez la section Démarrage rapide.

Pour simplifier la procédure, cette rubrique décrit la création d'une fonction via la console Function Compute.

Étape 1 : Développer et tester l'application

Remarque

Si vous migrez une application Flask existante, ignorez cette étape et passez directement à l'Étape 2 : Générer un package de code.

  1. Ouvrez une nouvelle fenêtre de ligne de commande sur votre machine locale et exécutez la commande suivante pour installer les bibliothèques Flask et tabulate requises.

    pip install Flask tabulate
  2. Créez un dossier nommé code et, à l'intérieur, un fichier nommé app.py. Collez l'exemple de code suivant dans ce fichier. Il implémente un service de calendrier simple exposé via une API. L'API accepte une année et un mois (par exemple, janvier 2025) et renvoie le tableau du calendrier correspondant.

    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. Exécutez la commande python3 app.py pour lancer votre application Flask. Si la sortie Running on http://127.0.0.1:9000 s'affiche, l'application Flask est en cours d'exécution. Vous pouvez alors utiliser cURL pour tester l'application.

    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. Ouvrez une nouvelle fenêtre de terminal et utilisez cURL pour envoyer une requête d'exemple. Une commande réussie renvoie un tableau de calendrier.

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

    image

Le projet est désormais créé et testé localement.

Étape 2 : Générer un package de code

Construisez localement un package de code adapté à Function Compute. Celui-ci doit contenir les éléments suivants :

  • Les fichiers de projet requis par l'application web.

  • Les dépendances non incluses dans le runtime, le cas échéant. Pour connaître les dépendances intégrées aux runtimes, consultez la section Dépendances intégrées.

  1. Installer les dépendances : Dans le répertoire racine de votre projet d'application web, exécutez la commande suivante pour y installer les dépendances requises (dans cet exemple, tabulate).

    Remarque

    Le runtime de la fonction web Python inclut déjà la bibliothèque Flask. Il suffit d'installer la bibliothèque tabulate pour que l'exemple d'application fonctionne.

    pip install -t . tabulate
  2. Empaquetez tous les fichiers du répertoire racine du projet.

    Linux ou macOS

    Dans le répertoire racine du projet, exécutez la commande zip code.zip -r ./*. Cette commande empaquette les fichiers du projet et les dépendances dans un fichier ZIP, créant ainsi le package de code.

    Remarque

    Assurez-vous de disposer des autorisations de lecture et d'écriture sur le répertoire.

    Windows

    Accédez au répertoire du projet, sélectionnez tous les fichiers, faites un clic droit, puis empaquetez-les dans un fichier ZIP. Cela crée le package de code contenant les fichiers du projet et les dépendances.

Étape 3 : Créer et déployer la fonction

  1. Sélectionner le type de fonction web : Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, cliquez sur Function Management > Functions. Dans la barre de navigation supérieure, sélectionnez la région où créer la fonction. Sur la page qui s'affiche, cliquez sur Create Function, puis suivez les instructions à l'écran pour créer une Web Function.

  2. Sélectionner un runtime : Comme indiqué dans la figure suivante, sélectionnez Custom Runtime. Ce runtime dispose des dépendances requises par le framework Flask.image

    Remarque
    • Nous vous recommandons d'utiliser un Custom Runtime pour votre fonction web. Un Custom Runtime vous permet de spécifier une commande de démarrage et un port d'écoute, et prend en charge la gestion simultanée des requêtes. Les Built-in Runtimes ne proposent pas ces fonctionnalités et conviennent mieux à la gestion d'événements générés par d'autres services cloud.

    • Si vous préférez un déploiement conteneurisé, utilisez un Custom Container pour créer une fonction web. Ce runtime prend également en charge la gestion simultanée des requêtes, mais vous devez gérer vous-même les dépendances.

    • Pour une comparaison détaillée des runtimes, consultez la section Sélectionner un runtime.

  3. Déployer le package de code : Comme indiqué dans la figure, téléchargez le package de code ZIP créé à l'Étape 2. Définissez la commande de démarrage sur python3 app.py et le port d'écoute sur 9000. Si vous migrez une application Flask existante, adaptez la configuration à la commande de démarrage et au port réels. Par exemple, le port par défaut de Flask est 5000.

    Cliquez sur Create et attendez la création de la fonction.image

Étape 4 : Tester la fonction

  1. Obtenir l'URL de la fonction : Sur la page de détails de la fonction nouvellement créée, cliquez sur l'onglet Trigger. Dans la configuration du déclencheur HTTP, copiez le point de terminaison public.

    Si vous êtes dans un environnement de test et n'avez pas besoin d'authentification, modifiez la Authentication Method en No Authentication dans la configuration du déclencheur HTTP, lors de sa création ou ultérieurement.

    image

  2. Tester la fonction : Utilisez cURL, Postman ou tout client HTTP pour appeler la fonction et vérifier que l'application Flask fonctionne comme prévu. L'exemple suivant utilise cURL. Remplacez l'URL par le point de terminaison copié à l'étape précédente.

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

    L'API web renvoie les informations de calendrier pour janvier 2025. Voici un exemple de sortie.

    image

    Remarque
    • Avec la configuration par défaut du déclencheur HTTP, la commande renvoie une erreur « MissingRequiredHeader ». En environnement de test, modifiez la Authentication Method du déclencheur en No Authentication.

    • La commande d'exemple et la sortie de cette étape s'appliquent uniquement à l'exemple de code. Si vous migrez une application existante, appelez le service en fonction du nom de l'API et des paramètres réels. Pour plus d'informations, consultez la section Utiliser cURL pour tester une fonction.

  3. (Facultatif) Accéder à la fonction depuis un navigateur : Le point de terminaison public fourni par le déclencheur HTTP ne peut pas être ouvert directement dans un navigateur (cela peut déclencher un téléchargement forcé) et est destiné uniquement aux tests. Nous vous recommandons de lier un nom de domaine personnalisé à la fonction pour permettre l'accès via un navigateur et pour une utilisation en production. Pour plus d'informations, consultez la section Configurer un nom de domaine personnalisé.

(Facultatif) Étape 5 : Nettoyer les ressources

Function Compute est un service facturé à l'utilisation. Les fonctions inutilisées ne génèrent aucun coût. Toutefois, les ressources cloud associées, telles que les données stockées dans OSS et File Storage NAS, ainsi que les déclencheurs créés, peuvent être facturées.

Pour supprimer une fonction, connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, cliquez sur Function Management > Functions. Sélectionnez une région. Dans la colonne Actions de la fonction cible, cliquez sur Delete. Dans la boîte de dialogue qui s'affiche, confirmez que la fonction n'est liée à aucune ressource (telles que des déclencheurs), puis confirmez la suppression.

Opérations avancées

Une fois l'application web créée et déployée sur une fonction web, vous pouvez effectuer les opérations avancées suivantes selon vos besoins.

  • Développer du code dans la console : Bien que cette rubrique se concentre sur le développement local (utile pour migrer des applications existantes), vous pouvez simplifier le déploiement en utilisant WebIDE. Cette méthode évite de générer un package de code localement et convient aux itérations de développement rapides. Pour plus d'informations, consultez la section Utiliser WebIDE.

    Remarque

    WebIDE prend en charge uniquement Python, Node.js et PHP. Pour les autres langages, tels que Java et Go, vous devez télécharger des fichiers ZIP compilés et empaquetés ou des fichiers binaires.

  • Déployer continuellement des projets à l'aide de Serverless Application Center : Pour automatiser la construction et le déploiement (CI/CD) de votre code vers Function Compute, utilisez Serverless Application Center. Pour plus d'informations, consultez la section Mettre en œuvre un déploiement continu pour un projet Function Compute existant à l'aide de Serverless Application Center.

  • Configurer la journalisation : Pour faciliter le débogage, le dépannage ou l'audit de sécurité, nous vous recommandons de configurer la journalisation pour vos fonctions. Pour plus d'informations, consultez la section Configurer la fonctionnalité de journalisation.

Références

Pour plus d'informations sur l'ajout de packages de dépendances pour différents langages, consultez les rubriques suivantes :

Python

Déployer un package de code Python

Node.js

Déployer un package de code Node.js

Java

Compiler et déployer un package de code Java

Go

Compiler et déployer un package de code Go

C#

Compiler et déployer un package de code C#

PHP

Déployer un package de code PHP