如何在serverless.yml中禁用CloudFront缓存

Bla*_*ise 5 amazon-web-services aws-lambda serverless-framework

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

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

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

pom*_*nse 1

您是否尝试过根据Serverless 的参考 YMLcachePolicy定义under ,然后通过函数的 CloudFront 事件链接 ?直接来自无服务器框架示例 YML,如下所示:providercachePolicy

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
Run Code Online (Sandbox Code Playgroud)