StreamingDistribution
The StreamingDistribution resource allows you to create and manage AWS CloudFront StreamingDistributions for delivering streaming content to viewers.
Minimal Example
Section titled “Minimal Example”Create a basic streaming distribution with required properties and a couple of common optional settings.
import AWS from "alchemy/aws/control";
const basicStreamingDistribution = await AWS.CloudFront.StreamingDistribution("basicStreamingDist", { StreamingDistributionConfig: { Comment: "Basic Streaming Distribution for educational content", Enabled: true, Origins: [{ DomainName: "example-origin.com", Id: "exampleOrigin", OriginPath: "/path/to/content" }], DefaultCacheBehavior: { TargetOriginId: "exampleOrigin", ViewerProtocolPolicy: "redirect-to-https", AllowedMethods: ["GET", "HEAD"], CachedMethods: ["GET", "HEAD"], ForwardedValues: { QueryString: false }, MinTtl: 0, MaxTtl: 86400, DefaultTtl: 3600 } }, Tags: [ { Key: "Environment", Value: "Development" }, { Key: "Project", Value: "StreamingService" } ]});
Advanced Configuration
Section titled “Advanced Configuration”Configure a streaming distribution with advanced settings such as custom error responses and additional caching behaviors.
const advancedStreamingDistribution = await AWS.CloudFront.StreamingDistribution("advancedStreamingDist", { StreamingDistributionConfig: { Comment: "Advanced Streaming Distribution with custom settings", Enabled: true, Origins: [{ DomainName: "advanced-origin.com", Id: "advancedOrigin", OriginPath: "/advanced/path" }], DefaultCacheBehavior: { TargetOriginId: "advancedOrigin", ViewerProtocolPolicy: "https-only", AllowedMethods: ["GET", "HEAD", "OPTIONS"], CachedMethods: ["GET", "HEAD"], ForwardedValues: { QueryString: true, Cookies: { Forward: "all" } }, MinTtl: 0, MaxTtl: 31536000, DefaultTtl: 86400 }, CustomErrorResponses: [{ ErrorCode: 404, ResponsePagePath: "/404.html", ResponseCode: "404", ErrorCachingMinTtl: 300 }] }, Tags: [ { Key: "Environment", Value: "Production" }, { Key: "Project", Value: "StreamingApp" } ]});
Dynamic Content Delivery
Section titled “Dynamic Content Delivery”Create a streaming distribution optimized for dynamic content delivery and enhanced security settings.
const dynamicStreamingDistribution = await AWS.CloudFront.StreamingDistribution("dynamicStreamingDist", { StreamingDistributionConfig: { Comment: "Streaming Distribution for dynamic content with security", Enabled: true, Origins: [{ DomainName: "dynamic-origin.com", Id: "dynamicOrigin", OriginPath: "/dynamic/content" }], DefaultCacheBehavior: { TargetOriginId: "dynamicOrigin", ViewerProtocolPolicy: "redirect-to-https", AllowedMethods: ["GET", "HEAD"], CachedMethods: ["GET", "HEAD"], ForwardedValues: { QueryString: true, Cookies: { Forward: "none" } }, MinTtl: 0, MaxTtl: 3600, DefaultTtl: 1800 }, ViewerCertificate: { CloudFrontDefaultCertificate: true } }, Tags: [ { Key: "Environment", Value: "Staging" }, { Key: "Project", Value: "DynamicStreaming" } ]});