in provision/lib/frontend-stack.ts [8:55]
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const bucket = new s3.Bucket(this, 'Bucket', {
websiteIndexDocument: '',
blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
});
const originAccessIdentity = new cloudfront.OriginAccessIdentity(this, 'AccessIdentity');
const distribution = new cloudfront.CloudFrontWebDistribution(this, 'Distribution', {
originConfigs: [
{
s3OriginSource: {
s3BucketSource: bucket,
originAccessIdentity,
},
behaviors: [
{ isDefaultBehavior: true },
],
}
],
errorConfigurations: [
{
errorCode: 404,
errorCachingMinTtl: 0,
responseCode: 200,
responsePagePath: '/',
},
{
errorCode: 403,
errorCachingMinTtl: 0,
responseCode: 200,
responsePagePath: '/',
}
],
});
new s3Deployment.BucketDeployment(this, 'Deployment', {
sources: [s3Deployment.Source.asset(path.join(__dirname, '..', '..', 'marketplace', 'dist'))],
destinationBucket: bucket,
distribution,
distributionPaths: ['/*'],
});
new cdk.CfnOutput(this, 'CfnEndpoint', {
value: `https://${distribution.domainName}`,
});
}