AWS SAM TypeScript 层示例项目教程
1. 项目的目录结构及介绍
aws-sam-typescript-layers-example/
├── Makefile
├── README.md
├── env.json.sample
├── layers/
│ └── common/
│ ├── package.json
│ ├── package-lock.json
│ └── src/
│ └── index.ts
├── samconfig.toml
├── template.yml
└── tests/
└── unit/
└── test_handler.test.ts
- Makefile: 包含项目的构建和部署命令。
- README.md: 项目说明文档。
- env.json.sample: 环境变量示例文件。
- layers/: 包含共享层的代码和配置文件。
- common/: 共享层目录。
- package.json: 共享层的依赖包配置。
- package-lock.json: 依赖包锁定文件。
- src/: 共享层的TypeScript源代码。
- index.ts: 共享层的主入口文件。
- common/: 共享层目录。
- samconfig.toml: AWS SAM配置文件。
- template.yml: AWS SAM模板文件。
- tests/: 单元测试目录。
- unit/: 单元测试代码。
- test_handler.test.ts: 测试处理函数的单元测试文件。
- unit/: 单元测试代码。
2. 项目的启动文件介绍
项目的启动文件位于 layers/common/src/index.ts
。这个文件是共享层的主入口文件,包含了共享层的初始化和导出逻辑。
// layers/common/src/index.ts
export const handler = async (event: any) => {
// 处理逻辑
};
3. 项目的配置文件介绍
3.1 template.yml
template.yml
是AWS SAM模板文件,定义了Lambda函数和共享层的配置。
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
YourLayer:
Type: AWS::Serverless::LayerVersion
Properties:
LayerName: YourLayer
Description: Some desc
ContentUri: 'layers/common/'
CompatibleRuntimes:
- nodejs18.x
Metadata:
BuildMethod: nodejs18.x
3.2 samconfig.toml
samconfig.toml
是AWS SAM的配置文件,包含了项目的部署配置。
version = 0.1
[default]
[default.deploy]
[default.deploy.parameters]
stack_name = "your-stack-name"
s3_bucket = "your-s3-bucket"
s3_prefix = "your-s3-prefix"
region = "your-region"
confirm_changeset = true
capabilities = "CAPABILITY_IAM"
3.3 package.json
package.json
位于 layers/common/
目录下,定义了共享层的依赖包。
{
"name": "common",
"version": "1.0.0",
"description": "Shared layer for AWS Lambda functions",
"main": "src/index.ts",
"scripts": {
"build": "tsc"
},
"dependencies": {
"some-dependency": "^1.0.0"
},
"devDependencies": {
"@types/node": "^18.0.0",
"typescript": "^4.0.0"
}
}
通过以上介绍,您可以更好地理解和使用 aws-sam-typescript-layers-example
项目。希望这份教程对您有所帮助!