Serverless 入门(二) - HelloWord

1. 安装 serverless

yarn global add serverlessnpm install -g serverless,安装完后,输入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,内容如下:

《Serverless 入门(二) - HelloWord》

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

等您点赞、评论后,留着下次讲 ^ _ ^

相关文章

    原文作者:Kenny锅
    原文地址: https://www.jianshu.com/p/ddf2ffda5f63
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞