Serverless API Cloudfront 项目教程
1、项目的目录结构及介绍
serverless-api-cloudfront/
├── README.md
├── package.json
├── serverless.yml
└── resources.yml
- README.md: 项目说明文档,包含项目的基本介绍和使用方法。
- package.json: 项目依赖管理文件,定义了项目所需的npm包。
- serverless.yml: 项目的主要配置文件,定义了Serverless框架的配置和插件设置。
- resources.yml: 项目的资源配置文件,定义了AWS CloudFront的详细配置。
2、项目的启动文件介绍
项目的启动文件主要是serverless.yml
。该文件是Serverless框架的核心配置文件,包含了以下主要部分:
- plugins: 定义了使用的插件,例如
serverless-api-cloudfront
。 - custom: 自定义配置,例如API CloudFront的域名、证书、WAF、压缩、日志等设置。
plugins:
- serverless-api-cloudfront
custom:
apiCloudFront:
domain: my-custom-domain.com
certificate: arn:aws:acm:us-east-1:000000000000:certificate/00000000-1111-2222-3333-444444444444
waf: 00000000-0000-0000-0000-000000000000
compress: true
logging:
bucket: my-bucket.s3.amazonaws.com
prefix: my-prefix
cookies: none
headers:
- x-api-key
querystring:
- page
- per_page
priceClass: PriceClass_100
minimumProtocolVersion: TLSv1
3、项目的配置文件介绍
项目的配置文件主要是resources.yml
。该文件定义了AWS CloudFront的详细配置,包括:
- CloudFront Distribution: 定义了CloudFront的域名、证书、WAF、压缩、日志等设置。
- IAM Policy: 定义了CloudFront相关的IAM策略。
resources:
Resources:
CloudFrontDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Aliases:
- my-custom-domain.com
ViewerCertificate:
AcmCertificateArn: arn:aws:acm:us-east-1:000000000000:certificate/00000000-1111-2222-3333-444444444444
SslSupportMethod: sni-only
DefaultCacheBehavior:
TargetOriginId: apiGateway
ViewerProtocolPolicy: redirect-to-https
AllowedMethods:
- GET
- HEAD
CachedMethods:
- GET
- HEAD
ForwardedValues:
QueryString: true
Cookies:
Forward: none
Headers:
- x-api-key
PriceClass: PriceClass_100
Logging:
IncludeCookies: false
Bucket: my-bucket.s3.amazonaws.com
Prefix: my-prefix
Enabled: true
DefaultRootObject: index.html
Origins:
- Id: apiGateway
DomainName: api.example.com
CustomOriginConfig:
OriginProtocolPolicy: https-only
以上是Serverless API Cloudfront项目的详细教程,包含了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助!