7

Serverless-1.0.0 enables deploying an API to be accessible via a AWS API Gateway with a custom domain

The question: With my serverless.yml I need to disable CloudFront's caching (e.g. by setting some zero TTL for caching headers... is there any other way?)

Can that be done from within serverless.yml or serverless framework?

Community
  • 1
  • 1
Blaise
  • 7,230
  • 6
  • 43
  • 53

1 Answers1

1

Have you tried defining a cachePolicy under provider, as per Serverless's reference YML, and then linking the cachePolicy via a function's CloudFront event? Straight from Serverless Frameworks sample YML like this:

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
pomSense
  • 29
  • 7