How do I set cookies for CloudFront distribution using troposphere?

Using troposhphere, I am trying to create CloudFront distribution.

CacheBehaviors = [
                    TargetOriginId = Join("", ["cloudfront-", Ref("ParamOriginName")]),
                    PathPattern = '/en/Login/*',
                    AllowedMethods = ["GET", "HEAD", "OPTIONS", "PUT", "POST","PATCH"],
                    ForwardedValues = ForwardedValues(
                        QueryString = True,
                        Headers = ["user-agent",
                    MaxTTL = 86400,
                    MinTTL = 14400,
                    DefaultTTL = 43200,
                    ViewerProtocolPolicy = "redirect-to-https",
                    Compress = True,

This seems to build the json template fine. But I also need to forward cookies. After the line QueryString I inserted Cookies = "All" but this failed the build.

The error message:
TypeError: <class 'troposphere.cloudfront.ForwardedValues'>: None.Cookies is <class 'str'>, expected <class 'troposphere.cloudfront.Cookies'>

What do I need to add so that it does not fail the build and forwards cookies

1 answer

  • answered 2019-07-11 06:43 Jez D

    I worked it out after reading this document

    After the line QueryString = True, I added

    Cookies = Cookies(Forward = "all"), and it now builds without errors and adds the correct cookies value to the json template