fix : engines deploy

This commit is contained in:
GuillaumeSD
2025-04-20 16:53:24 +02:00
parent d5f2e096cd
commit 1e63556cae

View File

@@ -26,15 +26,22 @@ export class AppStack extends cdk.Stack {
super(scope, id, props); super(scope, id, props);
const { domainName } = props; const { domainName } = props;
const bucket = new Bucket(this, "Bucket", { const mainBucket = new Bucket(this, "Bucket", {
accessControl: BucketAccessControl.PRIVATE, accessControl: BucketAccessControl.PRIVATE,
removalPolicy: cdk.RemovalPolicy.DESTROY, removalPolicy: cdk.RemovalPolicy.DESTROY,
autoDeleteObjects: true, autoDeleteObjects: true,
publicReadAccess: false, publicReadAccess: false,
}); });
const mainDeployment = new BucketDeployment(this, "BucketDeployment", { const enginesBucket = new Bucket(this, "EnginesBucket", {
destinationBucket: bucket, accessControl: BucketAccessControl.PRIVATE,
removalPolicy: cdk.RemovalPolicy.DESTROY,
autoDeleteObjects: true,
publicReadAccess: false,
});
new BucketDeployment(this, "BucketDeployment", {
destinationBucket: mainBucket,
sources: [ sources: [
Source.asset(path.resolve(__dirname, "../out"), { Source.asset(path.resolve(__dirname, "../out"), {
exclude: ["engines"], exclude: ["engines"],
@@ -47,27 +54,31 @@ export class AppStack extends cdk.Stack {
], ],
}); });
const enginesDeployment = new BucketDeployment( new BucketDeployment(this, "BucketEnginesDeployment", {
this, destinationBucket: enginesBucket,
"BucketEnginesDeployment", sources: [Source.asset(path.resolve(__dirname, "../out/engines"))],
memoryLimit: 512,
ephemeralStorageSize: cdk.Size.gibibytes(1),
cacheControl: [
CacheControl.setPublic(),
CacheControl.maxAge(cdk.Duration.days(365)),
CacheControl.immutable(),
],
});
const mainOriginAccessControl = S3BucketOrigin.withOriginAccessControl(
mainBucket,
{ {
destinationBucket: bucket, originAccessLevels: [AccessLevel.READ],
destinationKeyPrefix: "engines/",
sources: [Source.asset(path.resolve(__dirname, "../out/engines"))],
memoryLimit: 512,
ephemeralStorageSize: cdk.Size.gibibytes(1),
cacheControl: [
CacheControl.setPublic(),
CacheControl.maxAge(cdk.Duration.days(365)),
CacheControl.immutable(),
],
} }
); );
enginesDeployment.node.addDependency(mainDeployment);
const originAccessControl = S3BucketOrigin.withOriginAccessControl(bucket, { const enginesOriginAccessControl = S3BucketOrigin.withOriginAccessControl(
originAccessLevels: [AccessLevel.READ], enginesBucket,
}); {
originAccessLevels: [AccessLevel.READ],
}
);
const responseHeadersPolicy = new ResponseHeadersPolicy( const responseHeadersPolicy = new ResponseHeadersPolicy(
this, this,
@@ -115,9 +126,15 @@ export class AppStack extends cdk.Stack {
}, },
], ],
defaultBehavior: { defaultBehavior: {
origin: originAccessControl, origin: mainOriginAccessControl,
responseHeadersPolicy, responseHeadersPolicy,
}, },
additionalBehaviors: {
"/engines/*": {
origin: enginesOriginAccessControl,
responseHeadersPolicy,
},
},
domainNames: [domainName], domainNames: [domainName],
certificate, certificate,
}); });