Tentative d'automatisation du déploiement d'un site Web statique à l'aide de boto3. J'ai un site Web statique (angular/javascript/html) assis dans un seau, et j'ai besoin d'utiliser le CDN aws cloudfront. Quoi qu'il en soit, cela ressemble à faire le seau s3 et la copie dans le html/js fonctionne très bien.Déploiement d'un site statique avec s3 et cloudfront à l'aide de python boto3
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)
)
)
Lorsque je tente de créer la distribution CloudFront, je reçois l'erreur suivante:
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.
Fait intéressant, il semble se plaindre de l'origine, mydomain.com.s3.amazonaws.com, Toutefois, lorsque je crée une distribution pour le compartiment s3 dans la console Web, il n'y a aucun problème avec le même nom de domaine d'origine.
Mise à jour: je peux obtenir ce travail avec Boto avec ce qui suit, mais préférez utiliser 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 ... le domaine mydomain.com ne devrait-il pas être le nom du compartiment? ne pense pas que les points sont autorisés dans les noms de seau ...? – gsaslis
Les points et les tirets sont autorisés. J'ai essayé un nom de seau sans '.' caractères bien, et j'ai eu la même erreur. Littéralement en utilisant la même chaîne de noms de domaine d'origine dans la console Web aws fonctionne. – Atifm
Existe-t-il cependant? Je veux dire .. le domaine que vous utilisez est-il réellement valide? – gsaslis