您可以通过如下几步,使用 Serverless Framework 开源 CLI 在腾讯云上部署一个服务,完成配置、创建、测试、部署等步骤。
在使用之前,请确保如下软件已经安装:
- Node.js(6.x或以上的版本)
- Serverless Framework CLI(1.57.0或以上的版本)
如果这些条件已经满足,您可以跳过此步骤,直接 开始部署一个服务。
- 参考 Node.js 安装指南 根据您的系统环境进行安装。
- 安装完毕后,通过
node -v
命令,查看安装好的 Node.js 版本信息:
$ node -v
vx.x.x
- 通过
npm -v
命令,查看安装好的 npm 版本信息:
$ npm -v
x.x.x
- 在命令行中运行如下命令:
npm install -g serverless
- 安装完毕后,通过运行
serverless -v
命令,查看 Serverless Framework CLI 的版本信息。
$ serverless -v
x.x.x
完成上述安装准备后,通过如下步骤开始部署一个 Serverless 服务。
- 使用 Serverless Framework 的
tencent-nodejs
模板创建一个新的服务。 通过运行如下命令进行创建,--path
可以指定服务的路径:
# 创建一个serverless服务
$ serverless create --template tencent-nodejs --path my-service
- 安装依赖。 进入服务所在路径,运行如下命令安装依赖:
$ 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扫描二维码登录,如您希望配置持久的环境变量/秘钥信息,也可以参考 配置账号 文档。