Tous les produits
Search
Centre de documentation

Function Compute:Premiers pas avec Function Compute à l'aide de Serverless Devs

Dernière mise à jour :Sep 22, 2026

Serverless Devs est une CLI serverless open source. Utilisez-la pour déployer une fonction Python sur Function Compute, l'invoquer, puis nettoyer les ressources créées.

Prérequis

Assurez-vous de disposer des éléments suivants :

  • Un compte Alibaba Cloud associé à une paire d'AccessKey. Conservez précieusement la valeur AccessKeySecret lors de sa création. Créer une paire d'AccessKey

  • Node.js 14 ou version ultérieure. Téléchargez-le depuis le site web Node.js.

Vérifiez votre version de Node.js :

node --version

Étape 1 : Installer Serverless Devs

Vous pouvez installer Serverless Devs via npm, par téléchargement binaire ou par script. Ce guide utilise npm.

sudo npm install @serverless-devs/s -g

Vérifiez l'installation :

sudo s -v

Résultat attendu :

@serverless-devs/s: 3.0.1, s-home: /root/.s, linux-x64, node-v14.17.4

Étape 2 : Configurer votre paire d'AccessKey

Remarque

Votre AccessKeyID et votre AccessKeySecret accordent un accès complet à votre compte Alibaba Cloud. Veillez à les conserver en lieu sûr.

  1. Lancez l'assistant de configuration :

    sudo s config add

    La CLI affiche la liste des fournisseurs cloud pris en charge :

    > Alibaba Cloud (alibaba)
      AWS (aws)
      Azure (azure)
      Baidu Cloud (baidu)
      Google Cloud (google)
      Huawei Cloud (huawei)
      Tencent Cloud (tencent)
    (Move up and down to reveal more choices)
  2. Sélectionnez Alibaba Cloud (alibaba) et appuyez sur Entrée.

  3. Saisissez votre paire d'AccessKey lorsque vous y êtes invité.

    Please select a provider: Alibaba Cloud (alibaba)
     Refer to the document for alibaba key:  http://config.devsapp.net/account/alibaba
     AccountID 188077086902****
     AccessKeyID yourAccessKeyID
     AccessKeySecret yourAccessKeySecret
     Please create alias for key pair. If not, please enter to skip default
    
        Alias: default
        AccountID: 188077086902****
        AccessKeyID: yourAccessKeyID
        AccessKeySecret: yourAccessKeySecret
    
    Configuration successful

Étape 3 : Initialiser une fonction d'exemple

  1. Créez un projet Hello World en Python :

    sudo s init start-fc3-python

    Suivez les invites pour sélectionner une région, un nom de fonction et un environnement d'exécution :

    More applications: https://registry.serverless-devs.com
    ? Please input your project name (init dir) start-fc3-python
    Downloading[/v3/packages/start-fc3-python/zipball/0.0.8]...
    Download start-fc3-python successfully
    
    ...
    Region where the application is created
    ? Region cn-huhehaote
    Must contain only letters, digits, underscores (_), and hyphens (-). Cannot start with a digit or a hyphen. The length must be 1 to 128 characters.
    ? Function name start-python-8i32
    Region where the application is created
    ? python runtime python3.9
    ? please select credential alias default
    
        * Before using, please check whether the actions command in Yaml file is available
        * Carefully reading the notes in s.yaml is helpful for the use of the tool
        * If need help in the use process, please apply to join the Dingtalk Group: 33947367
    
       Thanks for using Serverless-Devs
       You could [cd /start-fc3-python] and enjoy your serverless journey!
       If you need help for this example, you can use [s -h] after you enter folder.
       Document Star: https://github.com/Serverless-Devs/Serverless-Devs
       More applications: https://registry.serverless-devs.com

    Cette opération crée un dossier start-fc3-python contenant les fichiers suivants :

    Fichier Description
    s.yaml Définition des ressources Function Compute au format YAML.
    code/index.py Point d'entrée du code de la fonction
    readme.md Décrit les modules et la configuration du projet
  2. Accédez au dossier du projet :

    cd start-fc3-python

Étape 4 : Déployer la fonction

Déployez la fonction. Les métadonnées telles que le nom, l'environnement d'exécution et la mémoire sont définies dans s.yaml.

sudo s deploy

Résultat attendu :

   Steps for [deploy] of [hello-world-app]
====================

✔ [hello_world] completed (3.1s)

   Result for [deploy] of [hello-world-app]
====================
region:         cn-huhehaote
description:    hello world by serverless devs
functionName:   start-python-8i32
handler:        index.handler
internetAccess: true
memorySize:     128
role:
runtime:        python3.9
timeout:        30

A complete log of this run can be found in: /Users/x1/.s/logs/0229164849

Vérifiez que le résultat affiche bien le nom de votre fonction ainsi que la région correspondante.

Étape 5 : Invoquer la fonction

Envoyez un événement de test à la fonction :

sudo s invoke -e "test"

Résultat attendu :

   Steps for [invoke] of [hello-world-app]
====================
========= FC invoke Logs begin =========
FunctionCompute python3 runtime inited.
FC Invoke Start RequestId: 1-65e045b1-123e1745-79e146cd8b01
2024-02-29T08:52:01.317Z 1-65e045b1-123e1745-79e146cd8b01 [INFO] b'test'
FC Invoke End RequestId: 1-65e045b1-123e1745-79e146cd8b01

Duration: 2.38 ms, Billed Duration: 3 ms, Memory Size: 128 MB, Max Memory Used: 8.78 MB
========= FC invoke Logs end =========

Invoke instanceId: c-65e045b1-12f566fe-ca21d8fe46f1
Code Checksum: 3418420950487476908
Qualifier: LATEST
RequestId: 1-65e045b1-123e1745-79e146cd8b01

Invoke Result:
test
✔ [hello_world] completed (0.46s)

A complete log of this run can be found in: /Users/x1/.s/logs/0229165200

La section Invoke Result affiche test, ce qui confirme que la fonction a correctement traité l'entrée.

Étape 6 : Nettoyer les ressources (facultatif)

Supprimez la fonction lorsqu'elle n'est plus nécessaire :

sudo s remove

Sélectionnez yes lorsque vous y êtes invité pour confirmer la suppression.

Résultat attendu :

   Steps for [remove] of [hello-world-app]
====================
Remove function: cn-huhehaote/start-python-8i32

     ? Are you sure you want to delete the resources listed above yes
✔ [hello_world] completed (11.67s)

A complete log of this run can be found in: /Users/x1/.s/logs/0229165500