diff --git a/packages/sst/src/constructs/SsrSite.ts b/packages/sst/src/constructs/SsrSite.ts index f3109576f..67d0678da 100644 --- a/packages/sst/src/constructs/SsrSite.ts +++ b/packages/sst/src/constructs/SsrSite.ts @@ -63,6 +63,7 @@ import { S3OriginProps, HttpOrigin, OriginGroup, + HttpOriginProps, } from "aws-cdk-lib/aws-cloudfront-origins"; import { Rule, Schedule } from "aws-cdk-lib/aws-events"; import { LambdaFunction } from "aws-cdk-lib/aws-events-targets"; @@ -134,6 +135,13 @@ export type OriginGroupConfig = { fallbackOriginName: string; fallbackStatusCodes?: number[]; }; + +export type HttpOriginConfig = { + type: "http"; + domainName: string; + httpOriginProps?: HttpOriginProps; +}; + type OriginsMap = Record; export type Plan = ReturnType; @@ -1114,6 +1122,10 @@ function handler(event) { return new HttpOrigin(Fn.parseDomainName(fnUrl.url)); } + function createHttpOrigin(props: HttpOriginConfig) { + return new HttpOrigin(props.domainName, props.httpOriginProps); + } + function createOrigins() { const origins: OriginsMap = {}; @@ -1129,6 +1141,9 @@ function handler(event) { case "image-optimization-function": origins[name] = createImageOptimizationFunctionOrigin(props); break; + case "http": + origins[name] = createHttpOrigin(props); + break; } }); @@ -1588,6 +1603,7 @@ function handler(event) { | ImageOptimizationFunctionOriginConfig | S3OriginConfig | OriginGroupConfig + | HttpOriginConfig > >(input: { cloudFrontFunctions?: CloudFrontFunctions;