Serverless SAM 项目教程
1. 项目的目录结构及介绍
serverless-sam/
├── README.md
├── package.json
├── serverless.yml
├── src/
│ ├── handler.js
│ └── utils.js
└── tests/
└── handler.test.js
- README.md: 项目说明文档,包含项目的基本信息和使用指南。
- package.json: 项目的依赖管理文件,定义了项目的依赖和脚本命令。
- serverless.yml: 项目的主要配置文件,定义了服务的配置和部署信息。
- src/: 源代码目录,包含项目的业务逻辑代码。
- handler.js: 项目的入口文件,定义了Lambda函数的处理逻辑。
- utils.js: 工具函数文件,包含一些通用的辅助函数。
- tests/: 测试代码目录,包含项目的单元测试代码。
- handler.test.js: 针对
handler.js
的单元测试文件。
- handler.test.js: 针对
2. 项目的启动文件介绍
项目的启动文件是src/handler.js
,它定义了Lambda函数的处理逻辑。以下是该文件的示例代码:
'use strict';
module.exports.hello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify(
{
message: 'Go Serverless v1.0! Your function executed successfully!',
input: event,
},
null,
2
),
};
};
- hello: 这是一个Lambda函数,当被调用时,会返回一个包含成功消息和输入事件的响应。
3. 项目的配置文件介绍
项目的配置文件是serverless.yml
,它定义了服务的配置和部署信息。以下是该文件的示例内容:
service: my-serverless-service
provider:
name: aws
runtime: nodejs14.x
plugins:
- serverless-sam
functions:
hello:
handler: src/handler.hello
events:
- http:
path: hello
method: get
resources:
Resources:
HelloTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: HelloTable
AttributeDefinitions:
- AttributeName: id
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
- service: 定义了服务的名称。
- provider: 定义了云服务提供商和运行时环境。
- plugins: 定义了使用的插件,这里是
serverless-sam
。 - functions: 定义了Lambda函数及其触发事件。
- resources: 定义了AWS资源,如DynamoDB表。
以上是Serverless SAM项目的目录结构、启动文件和配置文件的介绍。希望这份文档能帮助你更好地理解和使用该项目。