Skip to content

serverless-plus/cli

Repository files navigation

Serverless Plus CLI

npm NPM downloads Build Status semantic-release

CLI tool for Serverless Plus

Support Cloud Vendors

  • Tencent Cloud
  • AWS
  • Aliyun

Installation

$ npm i @slsplus/cli -g

Usage

$ slsplus -h
Usage: slsplus [options] [command]

Options:
  -v, --version                 output the current version
  -h, --help                    display help for command

Commands:
  config                        Config for slsplus cli
  clone <source> [destination]  clone a repository into a newly created directory
  parse [options]               parse serverless config file with costomize and environment variables replacement
  faas                          Operation for faas
  app                           Operation for serverless application
  migrate [options]             Migrate old serverless config to uniform config
  init [options]                Initialize command for serverless project
  bundle [options]              Bundle command for serverless project
  help [command]                display help for command

Example call:
  $ slsplus --help

Notice: Below examples will use sp instead of slsplus.

config

Config credentils for vendors:

$ sp config

init

Initialize command for serverless project:

$ sp init -u

It will start an UI config server for serverless project.

clone

$ sp clone https://github.com/serverless-plus/cli

faas

Before using faas command, you should run sp config to config tencent cloud credentilas.

faas logs

Get faas logs:

$ sp faas logs --name=scfdemo --limit=1

faas invoke

Invoke faas:

$ sp faas invoke --name=scfdemo

Invoke with event:

$ sp faas invoke --name=scfdemo --event=./event.json

faas warm

Warm up faas:

# name parameter is the name of cloud function
$ sp faas warm --name=scfdemo

bundle

Using bundle command, you can bundle your project with dependencies into one file, so you need not to upload node_modules directory.

$ sp bundle --input=app.js --file=./sls.js

If you do not pass --file option, it will be bundled to sls.prod.js by default.

app

Before using app command, you should run sp config to config tencent cloud credentilas.

app warm

Warm up serverless application:

# name parameter is the name configured in serverless.yml
$ sp app warm --app=appname --name=scfdemo --stage=dev

Parse serverless config file

$ sp parse -o -s '{"src":"./"}'

Parse command will parse serverless config file with costomize and environment variables replacement.

For example, before is:

inputs:
  region: ${env:REGION}

If process.env.REGION=ap-guangzhou, after parsing, the serverless.yml will be:

inputs:
  src: ./
  region: ap-guangzhou

Migrate serverless config file

$ slsplus migrate

This command will auto migrate your old yaml config to latest version.

Development

All git commit mesage must follow below syntax:

type(scope?): subject  #scope is optional

support type:

  • feat: add new feature
  • fix: fix bug or patch feature
  • ci: CI
  • chore: modify config, nothing to do with production code
  • docs: create or modifiy documents
  • refactor: refactor project
  • revert: revert
  • test: test

Most of time, we just use feat and fix.

Test

For CI test, should copy .env.example to .env.test, then config below environment variables to yours:

# tencent credentials
TENCENT_SECRET_ID=xxx
TENCENT_SECRET_KEY=xxx

# cos url for project code download in CI environment
CODE_URL_COS=xxx
# git ulr for git project
CODE_URL_GIT=xxx

# nextjs
CODE_URL_COS_NEXTJS=xxx
STATIC_URL_NEXTJS=xxx

# nuxtjs
CODE_URL_COS_NUXTJS=xxx
STATIC_URL_NUXTJS=xxx

License

MIT License

Copyright (c) 2020 Serverless Plus