serverless教程一:简介


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

serverless教程
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

文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !