Tous les produits
Search
Centre de documentation

:Gérer les ressources de fonction avec Serverless Devs

Dernière mise à jour :Aug 12, 2026

Serverless Devs est un outil open source dédié au développement, à la compilation, aux tests et au déploiement de projets serverless tout au long de leur cycle de vie. Cette rubrique explique comment initialiser et déployer un projet Function Compute à l'aide de Serverless Devs. Tous les exemples utilisent Node.js 14.

Référence rapide des commandes

Commande Description
sudo s Lancer l'assistant interactif de projet (Méthode 1)
sudo s init <template> Initialiser un projet à partir d'un modèle spécifique (Méthode 2)
sudo s build Compiler le projet localement
sudo s local start Démarrer un serveur local pour les fonctions HTTP
sudo s local invoke Appeler une fonction événementielle en local
sudo s deploy -y Déployer le projet sur Function Compute
sudo s invoke -e '<payload>' Appeler la fonction déployée à distance
sudo s remove service Supprimer le service et toutes les ressources associées

Prérequis

Avant de commencer, assurez-vous que :

Choisir une méthode

Méthode Commande Idéal pour Résultat obtenu
Méthode 1 : Configuration interactive s Nouveaux utilisateurs Assistant guidé pour la création de projet et déploiement en une étape
Méthode 2 : Flux de travail pas à pas s init Contrôle granulaire Compilation, débogage local, appel distant et suppression des ressources

Méthode 1 : Configuration interactive avec s

Exécutez s pour lancer l'assistant interactif :

sudo s

L'assistant vous invite à configurer le projet. L'exemple suivant illustre une session type :

 No Serverless-Devs project is currently detected. Do you want to create a new project? Yes

 Serverless Awesome: https://github.com/Serverless-Devs/Serverless-Devs/blob/master/docs/zh/awesome.md

 Hello Serverless for Cloud Vendors Alibaba Cloud Serverless
 Hello, serverlesser. Which template do you like? Quick start [Deploy a Hello World function to FaaS]
 Which template do you like? [Event] Node.js 14

 Create application command: [s init devsapp/start-fc-event-nodejs14]

 Please input your project name (init dir) start-fc-event-nodejs14
 file decompression completed

     ____  _     _ ___  _ _     _        _____ ____
    /  _ \/ \   / \\  \/// \ /\/ \  /|  /    //   _\
    | / \|| |   | | \  / | | ||| |\ ||  |  __\|  /
    | |-||| |_/\| | / /  | \_/|| | \||  | |   |  \__
    \_/ \|\____/\_//_/   \____/\_/  \|  \_/   \____/
 please select credential alias default

    Welcome to the Aliyun FC start application
     This application requires to open these services:
         FC : https://fc.console.alibabacloud.com/

     * The project is initialized. You can go to the project directory and run the s deploy command to deploy the project.

 Thanks for using Serverless-Devs
 You could [cd /test/start-fc-event-nodejs14] 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

 Do you want to deploy the project immediately? Yes
 ......
helloworld:
  region:   cn-hangzhou
  service:
    name: hello-world-service
  function:
    name:       event-nodejs14
    runtime:    nodejs14
    handler:    index.handler
    memorySize: 128
    timeout:    60

Options clés lors du flux interactif :

  1. Cloud vendor : Sélectionnez Alibaba Cloud Serverless.

  2. Template : Choisissez le type de fonction et le runtime, par exemple [Event] Node.js 14.

  3. Project name : Acceptez la valeur par défaut ou saisissez un nom personnalisé.

  4. Credential alias : Sélectionnez l'alias configuré lors de la configuration de Serverless Devs.

  5. Deploy immediately : Sélectionnez Yes pour déployer en une seule étape, ou No pour différer le déploiement.

Méthode 2 : Flux de travail pas à pas avec s init

Initialiser le projet

sudo s init devsapp/start-fc-http-nodejs14
Cet exemple déploie une fonction HTTP sous Node.js 14. Remplacez http par un autre type de déclencheur, tel que event , pour modifier le type de fonction. Remplacez nodejs14 par un autre identifiant de runtime pour changer de runtime.

Exemple de sortie :

Serverless Awesome: https://github.com/Serverless-Devs/Serverless-Devs/blob/master/docs/zh/awesome.md
 Please input your project name (init dir) start-fc-http-nodejs14
 file decompression completed

     ____  _     _ ___  _ _     _        _____ ____
    /  _ \/ \   / \\  \/// \ /\/ \  /|  /    //   _\
    | / \|| |   | | \  / | | ||| |\ ||  |  __\|  /
    | |-||| |_/\| | / /  | \_/|| | \||  | |   |  \__
    \_/ \|\____/\_//_/   \____/\_/  \|  \_/   \____/
 please select credential alias default

    Welcome to the Aliyun FC start application
     This application requires to open these services:
         FC : https://fc.console.alibabacloud.com/

     * The project is initialized. You can go to the project directory and run the s deploy command to deploy the project.

 Thanks for using Serverless-Devs
 You could [cd /test/start-fc-http-nodejs14] 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

 Do you want to deploy the project immediately? No

Après l'initialisation, le répertoire du projet contient les fichiers suivants :

Fichier Description
s.yaml Définit les ressources Function Compute. Pour plus d'informations, consultez Syntaxe YAML et gestion des autorisations.
s_en.yaml Contient la même configuration que s.yaml. Par défaut, le système utilise s.yaml. Pour utiliser s_en.yaml à la place, spécifiez le paramètre -t : s deploy -t s_en.yaml -y.
code/ Contient index.js avec la logique de la fonction.
readme.md Documente les dépendances, les modules et la configuration du projet.

Accéder au répertoire du projet

cd start-fc-http-nodejs14

Compiler le projet (facultatif)

Exécutez s build pour compiler et empaqueter le projet localement :

sudo s build

Cette commande génère un répertoire .s à la racine du projet. Ce répertoire stocke les artefacts de compilation nécessaires au débogage et au déploiement.

Déboguer localement (facultatif)

Une fois la compilation terminée, testez la fonction sur votre machine avant de la déployer.

Fonctions HTTP :

sudo s local start

Exemple de sortie :

[2021-12-16 07:17:05] [INFO] [FC-LOCAL-INVOKE] - Using trigger for start: name: httpTrigger
type: http
config:
  authType: anonymous
  methods:
    - GET

[2021-12-16 07:17:05] [INFO] [FC-LOCAL-INVOKE] - HttpTrigger httpTrigger of hello-world-service/http-trigger-nodejs14 was registered
        url: http://localhost:7013/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/
        methods: GET
        authType: anonymous

Tips: You can also use these commands to run or debug custom domain resources:

Start with customDomain:
* s local start auto

Debug with customDomain:
* s local start -d 3000 auto

Tips for next step
======================
* Deploy Resources: s deploy
helloworld:
  status: succeed
function compute app listening on port 7013!

Appelez la fonction HTTP via cURL ou un navigateur :

curl http://localhost:7013/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/

Vous pouvez également ouvrir l'URL suivante dans un navigateur :

http://localhost:7013/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/

Fonctions événementielles :

sudo s local invoke

Le résultat s'affiche directement après l'exécution de la commande.

Déployer sur Function Compute

sudo s deploy -y

Exemple de sortie :

Checking Service, Function, Triggers (0.82s)
 Creating Service, Function, Triggers (0.6s)
 Creating custom domain (0.31s)

Tips for next step
======================
* Display information of the deployed resource: s info
* Display metrics: s metrics
* Display logs: s logs
* Invoke remote function: s invoke
* Remove Service: s remove service
* Remove Function: s remove function
* Remove Trigger: s remove trigger
* Remove CustomDomain: s remove domain

helloworld:
  region:   cn-hangzhou
  service:
    name: hello-world-service
  function:
    name:       http-trigger-nodejs14
    runtime:    nodejs14
    handler:    index.handler
    memorySize: 128
    timeout:    60
  url:
    custom_domain:
      -
        domain: http://http-trigger-nodejs14.hello-world-service.188077086902****.cn-hangzhou.fc.devsapp.net
  triggers:
    -
      type: http
      name: httpTrigger

Appeler la fonction à distance (facultatif)

Après le déploiement, appelez la fonction dans le cloud pour vérifier son bon fonctionnement :

sudo s invoke -e '{"body": "","method":"GET","headers":{"header_1":"v1"},"queries":{"key":"value"},"path":"/"}'

Exemple de sortie :

Request url: https://188077086902****.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/
========= FC invoke Logs begin =========
FC Invoke Start RequestId: 6a3adedb-5d5d-4ac5-aa0b-2d43f4ace65c
load code for handler:index.handler
2022-03-04T08:39:14.770Z 6a3adedb-5d5d-4ac5-aa0b-2d43f4ace65c [verbose] hello world
FC Invoke End RequestId: 6a3adedb-5d5d-4ac5-aa0b-2d43f4ace65c

Duration: 66.23 ms, Billed Duration: 67 ms, Memory Size: 128 MB, Max Memory Used: 42.48 MB
========= FC invoke Logs end =========

FC Invoke Result[Code: 200]:
{
  path: '//',
  queries: { key: 'value' },
  headers: {
    accept: 'application/json',
    authorization: 'FC yourAccessKeyID:yourAccessKeySecret',
    date: 'Fri, 04 Mar 2022 08:39:14 GMT',
    header_1: 'v1',
    host: '188077086902****.cn-hangzhou.fc.aliyuncs.com',
    'user-agent': 'Node.js(v14.17.4) OS(linux/x64) SDK(@alicloud/fc2@v2.5.0)',
    'x-forwarded-proto': 'http'
  },
  method: 'GET',
  requestURI: '/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14//?key=value',
  clientIP: '47.97.XX.XX',
  body: ''
}

End of method: invoke

Vous pouvez également déclencher une fonction HTTP avec cURL :

curl https://188077086902****.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/

Supprimer les ressources (facultatif)

Si les ressources déployées ne sont plus nécessaires, supprimez-les :

sudo s remove service

Exemple de sortie :

Need to delete the resource in the cn-hangzhou area, the operation service is hello-world-service:
 ......
 Delete trigger hello-world-service/http-trigger-nodejs14/httpTrigger success.
 Delete function hello-world-service/http-trigger-nodejs14 success.
 Delete service hello-world-service success.
[2022-03-04 08:40:26] [INFO] [FC] - Getting list on-demand: _FC_NAS_hello-world-service-ensure-nas-dir-exist-service
[2022-03-04 08:40:26] [INFO] [FC] - Getting list provision: _FC_NAS_hello-world-service-ensure-nas-dir-exist-service
[2022-03-04 08:40:26] [INFO] [FC] - Getting listAliases: _FC_NAS_hello-world-service-ensure-nas-dir-exist-service
[2022-03-04 08:40:26] [INFO] [FC] - Getting list on-demand: _FC_NAS_hello-world-service
[2022-03-04 08:40:26] [INFO] [FC] - Getting list provision: _FC_NAS_hello-world-service
[2022-03-04 08:40:26] [INFO] [FC] - Getting listAliases: _FC_NAS_hello-world-service
End of method: remove

Cette commande supprime séquentiellement les déclencheurs, les fonctions et le service. Elle nettoie également les ressources NAS associées.

Références