AWS Lambda 域模型示例项目教程
1. 项目的目录结构及介绍
aws-lambda-domain-model-sample/
├── src/
│ ├── recipient.py
│ └── ...
├── tests/
│ └── ...
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── README_ja.md
├── ReservationReporter-Page-1.drawio.png
├── ReservationReporter-Page-2.drawio.png
├── __init__.py
├── hexagonal_architecture.png
└── template.yaml
src/
: 包含项目的源代码文件,如recipient.py
。tests/
: 包含项目的测试代码文件。.gitignore
: 指定Git版本控制系统忽略的文件和目录。CODE_OF_CONDUCT.md
: 项目的行为准则。CONTRIBUTING.md
: 贡献指南。LICENSE
: 项目的许可证。README.md
: 项目的英文介绍文档。README_ja.md
: 项目的日文介绍文档。ReservationReporter-Page-1.drawio.png
和ReservationReporter-Page-2.drawio.png
: 项目相关的图表。__init__.py
: 初始化文件。hexagonal_architecture.png
: 六边形架构图。template.yaml
: AWS SAM 配置文件。
2. 项目的启动文件介绍
项目的启动文件通常是 src/recipient.py
。这个文件包含了Lambda函数的入口点,负责处理请求和调用相关的域模型对象。
# src/recipient.py
def lambda_handler(event, context):
# 处理请求的逻辑
pass
3. 项目的配置文件介绍
项目的配置文件是 template.yaml
,这是一个AWS SAM (Serverless Application Model) 配置文件,定义了Lambda函数和其他AWS资源。
# template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
Handler: src/recipient.lambda_handler
Runtime: python3.8
CodeUri: .
Timeout: 30
MemorySize: 128
Policies:
- AWSLambdaBasicExecutionRole
AWSTemplateFormatVersion
: 定义了AWS CloudFormation模板的版本。Transform
: 指定了AWS SAM的转换。Resources
: 定义了AWS资源,如Lambda函数。MyFunction
: 定义了一个Lambda函数资源。Handler
: 指定了Lambda函数的处理程序。Runtime
: 指定了Lambda函数的运行时环境。CodeUri
: 指定了代码的位置。Timeout
: 指定了Lambda函数的超时时间。MemorySize
: 指定了Lambda函数的内存大小。Policies
: 指定了Lambda函数的执行角色策略。