import boto3 import base64 import os def create_cloudfront_distribution(cloudfront_client, bucket_name): # Create CloudFront distribution for the S3 static website response = cloudfront_client.create_distribution( DistributionConfig={ 'CallerReference': str(base64.b64encode(os.urandom(32))), 'Origins': { 'Items': [ { 'Id': bucket_name, 'DomainName': f'{bucket_name}.s3.amazonaws.com', 'S3OriginConfig': { 'OriginAccessIdentity': '' }, } ], 'Quantity': 1 }, 'Enabled': True, 'DefaultCacheBehavior': { 'TargetOriginId': bucket_name, 'ViewerProtocolPolicy': 'redirect-to-https', 'AllowedMethods': { 'Items': ['GET', 'HEAD'], 'Quantity': 2, }, }, 'DefaultRootObject': 'index.html', } ) distribution_id = response['Distribution']['Id'] distribution_domain = response['Distribution']['DomainName'] print(f"CloudFront distribution created with ID: {distribution_id}") print(f"CloudFront URL: http://{distribution_domain}") return distribution_domain def main(): cloudfront_client = boto3.client('cloudfront', region_name='us-east-1') bucket_name = 's464863-bucket' create_cloudfront_distribution(cloudfront_client, bucket_name)