7

Serverless-1.0.0允许部署 API 以通过具有自定义域的 AWS API 网关进行访问

问题:使用我的 serverless.yml,我需要禁用 CloudFront 的缓存(例如,通过为缓存标头设置一些零 TTL……还有其他方法吗?)

这可以从内部serverless.yml或无服务器框架中完成吗?

4

1 回答 1

0

您是否尝试过根据 Serverless 的参考 YML 定义cachePolicyunder 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
于 2021-12-07T21:51:35.243 回答