Todos os produtos
Search
Central de documentação

:Manage function resources by using Serverless Devs

Última atualização: Jul 04, 2026

O Serverless Devs é uma ferramenta de código aberto para desenvolver, compilar, testar e implantar projetos serverless durante todo o ciclo de vida. Este tópico descreve como usar o Serverless Devs para inicializar e implantar um projeto do Function Compute. Todos os exemplos usam Node.js 14.

Referência rápida de comandos

Comando

Descrição

sudo s

Inicia o assistente interativo de projeto (Método 1)

sudo s init <template>

Inicializa um projeto a partir de um modelo específico (Método 2)

sudo s build

Compila o projeto localmente

sudo s local start

Inicia um servidor local para funções HTTP

sudo s local invoke

Invoca uma função de evento localmente

sudo s deploy -y

Implanta o projeto no Function Compute

sudo s invoke -e '<payload>'

Invoca a função implantada remotamente

sudo s remove service

Exclui o serviço e todos os recursos associados

Pré-requisitos

Antes de começar, verifique se você tem:

Escolha um método

Método

Comando

Mais indicado para

Resultado obtido

Método 1: Configuração interativa

s

Usuários iniciantes

Assistente guiado para criação de projeto e implantação em uma única etapa

Método 2: Fluxo de trabalho passo a passo

s init

Controle granular

Compilação, depuração local, invocação remota e remoção de recursos

Método 1: Configuração interativa com s

Execute s para iniciar o assistente interativo:

sudo s

O assistente solicitará a configuração do projeto. O exemplo a seguir mostra uma sessão típica:

 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

Principais escolhas durante o fluxo interativo:

  1. Cloud vendor: Selecione Alibaba Cloud Serverless.

  2. Template: Escolha o tipo de função e o runtime, por exemplo, [Event] Node.js 14.

  3. Project name: Aceite o padrão ou insira um nome personalizado.

  4. Credential alias: Selecione o alias configurado durante a configuração do Serverless Devs.

  5. Deploy immediately: Selecione Yes para implantar em uma única etapa ou No para implantar posteriormente.

Método 2: Fluxo de trabalho passo a passo com s init

Inicialize o projeto

sudo s init devsapp/start-fc-http-nodejs14
Este exemplo implanta uma função HTTP em Node.js 14. Substitua http por outro tipo de gatilho, como event , para alterar o tipo da função. Substitua nodejs14 por outro identificador de runtime para alterar o ambiente de execução.

Saída de exemplo:

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

Após a inicialização, o diretório do projeto contém os seguintes arquivos:

Arquivo

Descrição

s.yaml

Define os recursos do Function Compute. Para mais informações, consulte Sintaxe YAML e gerenciamento de permissões.

s_en.yaml

Contém a mesma configuração que s.yaml. Por padrão, o sistema usa s.yaml. Para usar s_en.yaml em seu lugar, especifique o parâmetro -t: s deploy -t s_en.yaml -y.

code/

Contém index.js com a lógica da função.

readme.md

Documenta dependências, módulos e configurações do projeto.

Acesse o diretório do projeto

cd start-fc-http-nodejs14

Compile o projeto (opcional)

Execute s build para compilar e empacotar o projeto localmente:

sudo s build

Esse comando gera um diretório .s na raiz do projeto, que armazena os artefatos de compilação para depuração e implantação.

Depure localmente (opcional)

Após a compilação, teste a função na sua máquina antes de implantar.

Funções HTTP:

sudo s local start

Saída de exemplo:

[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!

Acione a função HTTP com cURL ou um navegador:

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

Ou abra a seguinte URL em um navegador:

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

Funções de evento:

sudo s local invoke

O resultado é retornado diretamente após a execução do comando.

Implante no Function Compute

sudo s deploy -y

Saída de exemplo:

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

Invoque a função remotamente (opcional)

Após a implantação, invoque a função na nuvem para verificar se ela funciona corretamente:

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

Saída de exemplo:

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

Você também pode acionar uma função HTTP com cURL:

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

Remova recursos (opcional)

Quando não precisar mais dos recursos implantados, exclua-os:

sudo s remove service

Saída de exemplo:

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

Este comando exclui gatilhos, funções e o serviço em sequência, além de limpar os recursos relacionados ao serviço NAS.

Referências