slotdp02
slotdp02

Reputation: 438

Acceptable wildcards in PathPattern for AWS Cloudfront CacheBehavior

Trying to set the cache behaviors for a path in our app, AWS docs only show examples of trailing wildcards (i.e. /images/*, https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-pathpattern, and also https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern).

However we use a path pattern that implements language variables before the rest of the path so like (/{language}/product/{productId}).

Is it acceptable, in the cloud formation template to set the PathPattern with a wildcard in each variable spot?

I.e. /*/product/*.

If not and I use /product/* I believe only routes like https://website.com/product/{productId} will be picked up by cloudfront to analyze and a route like https://website.com/en/product/{productId} would be missed.

Upvotes: 6

Views: 4072

Answers (1)

Michael - sqlbot
Michael - sqlbot

Reputation: 179084

/*/product/* is valid, and correct, for https://example.com/en/product/{productId}.

Perhaps even more correct would be /??/product/* since ? matches exactly 1 character, while * matches 0 or more.

/product/* would not match the example given.

Remember also that CloudFront matches requests against path patterns in precedence order, so the "first match" (in precedence order) always wins -- there is not a concept of "best match" or ambuguous/non-deterministic path pattern matching.

Upvotes: 7

Related Questions