Serverless-1.0.0允许部署 API 以通过具有自定义域的 AWS API 网关进行访问
问题:使用我的 serverless.yml,我需要禁用 CloudFront 的缓存(例如,通过为缓存标头设置一些零 TTL……还有其他方法吗?)
这可以从内部serverless.yml
或无服务器框架中完成吗?
Serverless-1.0.0允许部署 API 以通过具有自定义域的 AWS API 网关进行访问
问题:使用我的 serverless.yml,我需要禁用 CloudFront 的缓存(例如,通过为缓存标头设置一些零 TTL……还有其他方法吗?)
这可以从内部serverless.yml
或无服务器框架中完成吗?
您是否尝试过根据 Serverless 的参考 YML 定义cachePolicy
under provider
,然后cachePolicy
通过函数的 CloudFront 事件链接 ?直接来自无服务器框架示例 YML,如下所示:
provider:
cloudFront:
myCachePolicy1: # used as a reference in function.events[].cloudfront.cachePolicy.name
DefaultTTL: 60
MinTTL: 30
MaxTTL: 3600
Comment: my brand new cloudfront cache policy # optional
ParametersInCacheKeyAndForwardedToOrigin:
CookiesConfig:
CookieBehavior: whitelist # Possible values are 'none', 'whitelist', 'allExcept' and 'all'
Cookies:
- my-public-cookie
EnableAcceptEncodingBrotli: true # optional
EnableAcceptEncodingGzip: true
HeadersConfig:
HeadersBehavior: whitelist # Possible values are 'none' and 'whitelist'
Headers:
- authorization
- content-type
QueryStringsConfig:
QueryStringBehavior: allExcept # Possible values are 'none', 'whitelist', 'allExcept' and 'all'
QueryStrings:
- not-cached-query-string
functions:
yourFunction:
events:
- cloudFront:
eventType: viewer-response
includeBody: true
pathPattern: /docs*
cachePolicy:
# Note, you can use only one of name or id
name: myCachePolicy1 # Refers to a Cache Policy defined in provider.cloudFront.cachePolicies
id: 658327ea-f89d-4fab-a63d-7e88639e58f6 # Refers to any external Cache Policy id
origin:
DomainName: serverless.com
OriginPath: /framework
CustomOriginConfig:
OriginProtocolPolicy: match-viewer