Skip to content
GitHubXDiscordRSS

StreamingDistribution

Learn how to create, update, and manage AWS CloudFront StreamingDistributions using Alchemy Cloud Control.

The StreamingDistribution resource allows you to create and manage AWS CloudFront StreamingDistributions for delivering streaming content to viewers.

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" }
]
});

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" }
]
});

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" }
]
});