在开发无服务器应用的时候,通过纯手工方式创建各种资源的话,效率会非常低,因此需要借助一些框架来提高开发效率。下面介绍一个流行的无服务器框架:serverless来开发AWS应用。

serverless教程
基本概念
在serverless中,有几个重要的概念:
Functions
Functions其实对应的就是AWS中的Lambda。在serverless中支持Node.js, Python, Java, C#等多种编程语言。
Events
在Events中可以定义相应的事件,比如:http event代表一个http请求。通常当一个event被触发时,会调用一个function。
Resources
这是用来定义各种AWS资源的,比如DynamoDB,S3等。
Services
这个service用来定义和functions, events及resources相关的配置信息。
Plugins
这里定义可以在serverless中使用的各种插件,比如支持TypeScript的插件。
安装serverless框架
运行如下命令:
bash
npm install -g serverless
然后在AWS中创建一个用户,获取其key/secret。之后配置serverless:
bash
serverless config credentials --provider aws --key XXXX --secret XXX --profile serverlessUser
创建一个serverless项目
运行:
bash
sls create --template aws-nodejs --path 01
编辑serverless.yml文件:
yaml
service: service-01
provider:
name: aws
region: eu-west-1
runtime: nodejs14.x
lambdaHashingVersion: 20201221
profile: default
在上面可以看到,能够使用不同的profile。
部署:
bash
sls deploy
其输出信息:
bash
Serverless: Packaging service...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
........
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
...
Serverless: Stack update finished...
Service Information
service: service-01
stage: dev
region: eu-west-1
stack: service-01-dev
resources: 2
api keys:
None
endpoints:
functions:
None
layers:
None
其实可以看到,在.serverless目录中会创建用于创建/更新AWS资源的cloudformation模板。
使用完毕后要注意清除资源:
bash
sls remove