Пытается автоматизировать развертывание статического веб-сайта с помощью boto3. У меня есть статический веб-сайт (угловой/javascript/html), сидящий в ведре, и вам нужно использовать облачный CDN aws.Развертывание статического сайта с s3 и облачным использованием python boto3
В любом случае, похоже, что создание ведра s3 и копирование в html/js работает нормально.
import boto3
cf = boto3.client('cloudfront')
cf.create_distribution(DistributionConfig=dict(CallerReference='firstOne',
Aliases = dict(Quantity=1, Items=['mydomain.com']),
DefaultRootObject='index.html',
Comment='Test distribution',
Enabled=True,
Origins = dict(
Quantity = 1,
Items = [dict(
Id = '1',
DomainName='mydomain.com.s3.amazonaws.com')
]),
DefaultCacheBehavior = dict(
TargetOriginId = '1',
ViewerProtocolPolicy= 'redirect-to-https',
TrustedSigners = dict(Quantity=0, Enabled=False),
ForwardedValues=dict(
Cookies = {'Forward':'all'},
Headers = dict(Quantity=0),
QueryString=False,
QueryStringCacheKeys= dict(Quantity=0),
),
MinTTL=1000)
)
)
Когда я пытаюсь создать распределение CloudFront, я получаю следующее сообщение об ошибке:
InvalidOrigin: An error occurred (InvalidOrigin) when calling the CreateDistribution operation: The specified origin server does not exist or is not valid. An error occurred (InvalidOrigin) when calling the CreateDistribution operation: The specified origin server does not exist or is not valid.
Интересно, что выглядит жалуясь о происхождении, mydomain.com.s3.amazonaws.com, однако, когда я создаю дистрибутив для ведра s3 в веб-консоли, у него нет проблем с тем же именем домена происхождения.
Update: я могу получить эту работу с Бото со следующими, но предпочел бы использовать boto3:
import boto
c = boto.connect_cloudfront()
origin = boto.cloudfront.origin.S3Origin('mydomain.com.s3.amazonaws.com')
distro = c.create_distribution(origin=origin, enabled=False, comment='My new Distribution')
hmmm ... не следует ли «mydomain.com» быть именем ведра? не думал, что точки разрешены в именах ковша ...? – gsaslis
Допускаются точки и тире. Я попробовал имя ведра без «.». однако, и я получил ту же ошибку. Буквально используется одна и та же начальная строка имени домена в веб-консоли aws. – Atifm
Существует ли это? Я имею в виду, что домен, который вы используете, действительно действителен? – gsaslis