Serverless Plugin CloudFront Lambda@Edge 使用教程
1. 项目的目录结构及介绍
serverless-plugin-cloudfront-lambda-edge/
├── github/
│ └── workflows/
├── src/
│ ├── editorconfig
│ ├── eslintrc.json
│ ├── gitignore
│ ├── markdownlint.json
│ ├── nvmrc
│ ├── nycrc.json
│ ├── LICENSE
│ ├── README.md
│ ├── commitlint.config.js
│ ├── package-lock.json
│ └── package.json
目录结构介绍
- github/workflows/: 包含GitHub Actions的工作流配置文件。
- src/: 项目的源代码目录,包含配置文件、文档、许可证和包管理文件。
- editorconfig: 编辑器配置文件。
- eslintrc.json: ESLint配置文件。
- gitignore: Git忽略文件配置。
- markdownlint.json: MarkdownLint配置文件。
- nvmrc: Node版本管理配置文件。
- nycrc.json: NYC(代码覆盖工具)配置文件。
- LICENSE: 项目许可证。
- README.md: 项目说明文档。
- commitlint.config.js: CommitLint配置文件。
- package-lock.json: 锁定依赖版本的文件。
- package.json: 项目依赖和脚本配置文件。
2. 项目的启动文件介绍
项目的启动文件主要是package.json
中的脚本部分。以下是一些常用的脚本命令:
{
"scripts": {
"lint": "eslint .",
"test": "nyc mocha",
"coverage": "nyc report --reporter=text-lcov | coveralls"
}
}
启动文件介绍
- lint: 运行ESLint进行代码检查。
- test: 运行测试并生成代码覆盖报告。
- coverage: 生成代码覆盖报告并提交到Coveralls。
3. 项目的配置文件介绍
package.json
package.json
文件包含了项目的依赖、脚本和其他元数据。以下是一些关键部分:
{
"name": "serverless-plugin-cloudfront-lambda-edge",
"version": "2.0.0",
"description": "Serverless Plugin for CloudFront Lambda@Edge",
"main": "src/index.js",
"scripts": {
"lint": "eslint .",
"test": "nyc mocha",
"coverage": "nyc report --reporter=text-lcov | coveralls"
},
"dependencies": {
"aws-sdk": "^2.6.1",
"lodash": "^4.17.15"
},
"devDependencies": {
"eslint": "^6.8.0",
"mocha": "^7.1.1",
"nyc": "^15.0.0"
}
}
serverless.yml
serverless.yml
文件是Serverless框架的配置文件,用于定义Lambda函数和CloudFront分布的关联。以下是一个示例配置:
service: my-service
provider:
name: aws
runtime: nodejs12.x
plugins:
- '@silvermine/serverless-plugin-cloudfront-lambda-edge'
functions:
myFunction:
handler: handler.myHandler
events:
- cloudFront:
distributionId: 'YOUR_DISTRIBUTION_ID'
eventType: 'viewer-request'
pathPattern: 'index.html'
配置文件介绍
- service: 定义服务的名称。
- provider: 定义云服务提供商和运行时环境。
- plugins: 定义使用的插件。
- functions: 定义Lambda函数及其事件触发器。
通过以上配置,可以轻松地将Lambda函数与现有的CloudFront分布关联起来。