internal MdsiteStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props)
        {
            var mdsitebucket = new Bucket(this, "md-site-bucket", new BucketProps
            {
                Versioned = true
            });

            new BucketDeployment(this, "DeployFiles", new BucketDeploymentProps()
            {
                Sources = new[] {
                    Source.Asset("mycontent/site")
                },
                DestinationBucket = mdsitebucket
            });

            Function cfFunction = new Function(this, "append-index-html", new FunctionProps
            {
                Code = FunctionCode.FromFile(new FileCodeOptions()
                {
                    FilePath = "cloudfrontfunction/append-index-html.js"
                })
            });

            var md_distribution = new Distribution(this, "md-site-distribution", new DistributionProps()
            {
                DefaultBehavior = new BehaviorOptions
                {
                    Origin = new S3Origin(mdsitebucket),
                    FunctionAssociations = new FunctionAssociation[]
                    {
                        new FunctionAssociation {
                            Function  = cfFunction,
                            EventType = FunctionEventType.VIEWER_REQUEST
                        }
                    }
                }
            });

            this.MdSiteUrl = new CfnOutput(this, "CloudFront URL", new CfnOutputProps
            {
                Value = string.Format("https://{0}", md_distribution.DomainName)
            });
        }