1. 安装 serverless
yarn global add serverless
或 npm install serverless -g
,安装完后,输入serverless -h
,查看更多命令信息:
Commands
* You can run commands with "serverless" or the shortcut "sls"
* Pass "--verbose" to this command to get in-depth plugin info
* Pass "--no-color" to disable CLI colors
* Pass "--help" after any <command> for contextual help
Framework
* Documentation: https://serverless.com/framework/docs/
config ........................ Configure Serverless
config credentials ............ Configures a new provider profile for the Serverless Framework
create ........................ Create new Serverless service
install ....................... Install a Serverless service from GitHub balabala...
package ....................... Packages a Serverless service
deploy ........................ Deploy a Serverless service
deploy function ............... Deploy a single function from the service
deploy list ................... List deployed version of your Serverless Service
deploy list functions ......... List all the deployed functions and their versions
invoke ........................ Invoke a deployed function
invoke local .................. Invoke function locally
info .......................... Display information about the service
logs .......................... Output the logs of a deployed function
metrics ....................... Show metrics for a specific function
print ......................... Print your compiled and resolved config file
remove ........................ Remove Serverless service and all resources
rollback ...................... Rollback the Serverless service to a specific deployment
rollback function ............. Rollback the function to the previous version
slstats ....................... Enable or disable stats
plugin ........................ Plugin management for Serverless
plugin install ................ Install and add a plugin to your service
plugin uninstall .............. Uninstall and remove a plugin from your service
plugin list ................... Lists all available plugins
plugin search ................. Search for plugins
Plugins
AwsConfigCredentials, Config, Create, Deploy,
Info, Install, Invoke, Logs, Metrics, Package, Plugin,
PluginInstall, PluginList, PluginSearch,
PluginUninstall, Print, Remove, Rollback, SlStats
2. 配置证书
使用如下命令配置证书:
serverless config credentials --provider aws --key AWS_ACCESS_KEY_ID --secret AWS_SECRET_ACCESS_KEY
配置完成后,会生成这个文件: ~/.aws/credentials
,内容如下:
3. 创建 HelloWorld
serverless create --template aws-nodejs --path hello-world
成功后会出现:
Serverless: Generating boilerplate...
Serverless: Generating boilerplate in "/Users/kenny/Desktop/hello-world"
_______ __
| _ .-----.----.--.--.-----.----| .-----.-----.-----.
| |___| -__| _| | | -__| _| | -__|__ --|__ --|
|____ |_____|__| \___/|_____|__| |__|_____|_____|_____|
| | | The Serverless Application Framework
| | serverless.com, v1.38.0
-------'
Serverless: Successfully generated boilerplate for template: "aws-nodejs"
4. 部署 hello-world
cd hello-world && serverless deploy -v
,注:这里的-v
不是显示版本,而是 --verbose
详细信息
成功后会出现:
Serverless: Packaging service...
.... 省略好多行
Service Information
service: hello-world
stage: dev
region: us-east-1
stack: hello-world-dev
resources: 5
api keys:
None
endpoints:
None
functions:
hello: hello-world-dev-hello
layers:
None
Stack Outputs
HelloLambdaFunctionQualifiexxx173xxxello-world-dev-hello:1
ServerlessDeploymentBucketName: hxxx03dam9553lxq
5. 调用服务
sls invoke -f hello -l -d Kenny锅
{
"statusCode": 200,
"body": "{
\"message\":\"Go Serverless v1.0! Your function executed successfully!\",
\"input\":\"Kenny锅\"
}"
}
--------------------------------------------------------------------
START RequestId: d1d42540-f776-4399-b39f-1742178ecec6 Version: $LATEST
END RequestId: d1d42540-f776-4399-b39f-1742178ecec6
REPORT RequestId: d1d42540-f776-4399-b39f-1742178ecec6
Duration: 2.45 ms Billed Duration: 100 ms Memory Size: 1024 MB
Max Memory Used: 72 MB
上述命令的解释:
-
sls
是 serverless 的缩写 -
invoke
是调用服务 -
-f
的 f 表示 function 名 -
-l
的 l 表示 log(日志) -
-d
的 d 表示传入的 data (数据)
更多 invoke 解释,只需 sls invoke -h
invoke ........................ Invoke a deployed function
invoke local .................. Invoke function locally
--function / -f (required) ......... The function name
--stage / -s ....................... Stage of the service
--region / -r ...................... Region of the service
--path / -p ............ Path to JSON or YAML file holding input data
--type / -t ........................ Type of invocation
--log / -l ......................... Trigger logging data output
--data / -d ........................ Input data
--raw ...................... Flag to pass input data as a raw string
是不是很简单,行动起来吧!
6. 是不是还有两个文件没讲?
├── handler.js
└── serverless.yml
等您点赞、评论后,留着下次讲 ^ _ ^
相关文章
- Serverless 入门(一) - 创建 IAM https://www.jianshu.com/p/9fb731a799e2
- Serverless 入门(二) - HelloWord https://www.jianshu.com/p/ddf2ffda5f63
- Serverless 入门(三)- 初始项目解读 https://www.jianshu.com/p/8baba2a8fe9f
网友评论