CachePolicy
The CachePolicy resource lets you manage AWS CloudFront CachePolicys which define how CloudFront caches content based on request and response headers, cookies, and query strings.
Minimal Example
Section titled “Minimal Example”Create a basic cache policy with default settings.
import AWS from "alchemy/aws/control";
const basicCachePolicy = await AWS.CloudFront.CachePolicy("basicCachePolicy", { CachePolicyConfig: { Name: "BasicCachePolicy", Comment: "A basic cache policy for demonstration purposes.", DefaultTtl: 86400, // 1 day in seconds MaxTtl: 31536000, // 1 year in seconds MinTtl: 0, ParametersInCacheKeyAndForwardedToOrigin: { CookiesConfig: { CookieBehavior: "none" }, EnableAcceptEncodingGzip: true, EnableAcceptEncodingBrotli: false, HeadersConfig: { HeaderBehavior: "none" }, QueryStringsConfig: { QueryStringBehavior: "none" } } }});
Advanced Configuration
Section titled “Advanced Configuration”Configure a cache policy with advanced settings including query string and header configurations.
const advancedCachePolicy = await AWS.CloudFront.CachePolicy("advancedCachePolicy", { CachePolicyConfig: { Name: "AdvancedCachePolicy", Comment: "An advanced cache policy with specific query string and header settings.", DefaultTtl: 3600, // 1 hour in seconds MaxTtl: 86400, // 1 day in seconds MinTtl: 0, ParametersInCacheKeyAndForwardedToOrigin: { CookiesConfig: { CookieBehavior: "all" }, EnableAcceptEncodingGzip: true, EnableAcceptEncodingBrotli: true, HeadersConfig: { HeaderBehavior: "whitelist", Headers: ["Authorization", "X-Custom-Header"] }, QueryStringsConfig: { QueryStringBehavior: "all" } } }});
Caching for Dynamic Content
Section titled “Caching for Dynamic Content”Create a cache policy designed for dynamic content that needs more frequent updates.
const dynamicCachePolicy = await AWS.CloudFront.CachePolicy("dynamicCachePolicy", { CachePolicyConfig: { Name: "DynamicCachePolicy", Comment: "A cache policy optimized for dynamic content.", DefaultTtl: 300, // 5 minutes in seconds MaxTtl: 3600, // 1 hour in seconds MinTtl: 0, ParametersInCacheKeyAndForwardedToOrigin: { CookiesConfig: { CookieBehavior: "all" }, EnableAcceptEncodingGzip: true, EnableAcceptEncodingBrotli: false, HeadersConfig: { HeaderBehavior: "all" }, QueryStringsConfig: { QueryStringBehavior: "whitelist", QueryStrings: ["sessionId", "userId"] } } }});