Skip to content

Latest commit

 

History

History

操作场景

您可以通过如下几步,使用 Serverless Framework 开源 CLI 在腾讯云上部署一个服务,完成配置、创建、测试、部署等步骤。

前提条件

在使用之前,请确保如下软件已经安装:

如果这些条件已经满足,您可以跳过此步骤,直接 开始部署一个服务

安装 Node.js 和 NPM

  • 参考 Node.js 安装指南 根据您的系统环境进行安装。
  • 安装完毕后,通过node -v 命令,查看安装好的 Node.js 版本信息:
$ node -v
vx.x.x
  • 通过 npm -v 命令,查看安装好的 npm 版本信息:
$ npm -v
x.x.x

安装 Serverless Framework CLI

  • 在命令行中运行如下命令:
npm install -g serverless
  • 安装完毕后,通过运行 serverless -v 命令,查看 Serverless Framework CLI 的版本信息。
$ serverless -v
x.x.x

操作步骤

完成上述安装准备后,通过如下步骤开始部署一个 Serverless 服务。

通过模板创建服务

  1. 使用 Serverless Framework 的 tencent-nodejs 模板创建一个新的服务。 通过运行如下命令进行创建,--path可以指定服务的路径:
# 创建一个serverless服务
$ serverless create --template tencent-nodejs --path my-service
  1. 安装依赖。 进入服务所在路径,运行如下命令安装依赖:
$ cd my-service
$ npm install

配置触发器

云函数需要通过触发器的事件调用进行触发,因此可以在serverless.yml中增加对触发器的配置,以 API 网关触发器为例,配置如下:

service: my-service # service name

provider: # provider information
  name: tencent
  runtime: Nodejs8.9
  credentials: ~/credentials  #如不使用二维码一键登录,密钥字段需要和credentials文件路径一致

plugins:
  - serverless-tencent-scf

functions:
  hello_world:   # function name
    handler: index.main_handler
    runtime: Nodejs8.9
    events:
        - apigw:
           name: hello_world_apigw
           parameters:
             stageName: release
             serviceId:
             httpMethod: ANY

注,Serverless Framework会为控制台中实际部署的函数增加前缀组成函数名称,前缀规范为service-stage-function,默认的stage为dev。以上述配置为例,配置文件中的函数名称hello_world在控制台中的函数名称对应为my-service-dev-hello_world

部署服务

通过该命令部署或更新您创建的函数和触发器,资源配置会和serverless.yml中保持一致。

serverless deploy

如您的账号未登陆注册腾讯云,您可以在运行该命令后,直接用微信扫描命令中弹出的二维码,对云账户进行授权登陆和注册。

更多部署详情参考 部署服务 文档。

测试服务

替换如下命令中的链接地址,通过 curl 对其进行测试,该链接可以在sls deploy命令执行后获取得到。

$ curl -X POST https://service-xxxx-1300000000.ap-guangzhou.apigateway.myqcloud.com/release/

云端调用

通过以下命令云端调用函数并且获得日志信息的返回。

serverless invoke -f hello_world

更多部署详情参考 云端调用

获取函数日志

单独开启一个命令行,输入如下命令,再次云端调用函数,并实时获取函数hello_world的云端调用日志信息。

serverless logs -f hello_world -t

移除服务

如果您不再需要此服务,可以通过如下命令一键移除服务,该命令会清理相应函数和触发器资源。

serverless remove

配置账户信息

当前默认支持CLI扫描二维码登录,如您希望配置持久的环境变量/秘钥信息,也可以参考 配置账号 文档。