Configuration de CloudFront à l’aide de Python / Blogs / Perficient

Python est un langage de programmation open source, nous pouvons utiliser Python pour créer / activer les services AWS tels que Terraform ou un autre code IAC. Dans ce blog, nous allons discuter de la mise en place du service CloudFront à l’aide de Python.
Pourquoi nous utilisons Python:
Comme nous le savons, Python est une langue impérative, cela signifie que vous pouvez écrire des scripts plus personnalisés qui peuvent effectuer des opérations complexes avancées, gérer les erreurs, interagir avec les API, etc. et vous avez accès à AWS SDK comme Boto3 qui vous permettent d’effectuer une opération AWS que vous désirez, y compris celles personnalisées qui pourraient ne pas encore être prises en charge par Terraform.
Comment ça marche:
Nous avons défini la méthode et les classes dans la bibliothèque Boto3 pour les services AWS que nous pouvons utiliser pour créer / modifier / mettre à jour les services AWS.
Condition préalable:
Nous n’avons besoin que de la bibliothèque Python et Boto3.
Comment écrire du code:
Comme nous le savons, Boto3 a des fonctions différentes pour gérer les services AWS, nous avons beaucoup de fonctions mais ci-dessous est une fonction de base pour gérer le service CloudFront:
- create_distribution est utilisé pour créer une distribution CloudFront,
- Update_distribution est utilisé pour mettre à jour la distribution CloudFront,
- Delete_Distribution est utilisé pour supprimer la distribution CloudFront,
- create_cache_policy est utilisé pour créer une politique de cache,
- create_invalidation est utilisé pour créer des demandes d’invalidation.
create_distribution, update_distribution requise également les valeurs de configuration des lots, vous pouvez utiliser la variable de dictionnaire Python et peut passer pour fonctionner, ou vous pouvez le passer en JSON, mais vous devez également effectuer l’analyse pour cela.
Permettez-moi de partager avec vous un exemple de base de la création de la distribution CloudFront à l’aide de Python et Boto3:
import boto3 import os s3_origin_domain_name="<s3bucketname>.s3.amazonaws.com" origin_id = 'origin-id' distribution_config = { 'CallerReference': str(hash("unique-reference")), 'Comment': 'My CloudFront Distribution', 'Enabled': True, 'Origins': { 'Items': [ { 'Id': origin_id, 'DomainName': s3_origin_domain_name, 'S3OriginConfig': { 'OriginAccessIdentity': '' }, 'CustomHeaders': { 'Quantity': 0, 'Items': [] } } ], 'Quantity': 1 }, 'DefaultCacheBehavior': { 'TargetOriginId': origin_id, 'ViewerProtocolPolicy': 'redirect-to-https', 'AllowedMethods': { 'Quantity': 2, 'Items': ['GET', 'HEAD'], 'CachedMethods': { 'Quantity': 2, 'Items': ['GET', 'HEAD'] } }, 'ForwardedValues': { 'QueryString': False, 'Cookies': { 'Forward': 'none' } }, 'MinTTL': 3600 }, 'ViewerCertificate': { 'CloudFrontDefaultCertificate': True }, 'PriceClass': 'PriceClass_100' } try: aws_access_key = os.getenv('AWS_ACCESS_KEY_ID') aws_secret_key = os.getenv('AWS_SECRET_ACCESS_KEY') session = boto3.Session( aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key, region_name="us-east-1" ) client = session.client('cloudfront') response = client.create_distribution(DistributionConfig=distribution_config) print("CloudFront Distribution created successfully!") print(response) except Exception as e: print(f"Error creating CloudFront distribution: {e}")
Comme vous pouvez le voir ci-dessus, un exemple de code après l’importation du module Boto3, nous avons pris la variable Distribution_Config où toutes les configurations stockées après cela, nous appelons la fonction CREATE_DIRTTIBUTION à la distribution CDN:
response = client.create_distribution(DistributionConfig=distribution_config)
Ainsi, comme une manière similaire, vous pouvez également écrire le code Python plus complexe pour implémenter votre infrastructure AWS complexe et faire l’automatisation pour configurer le pipeline de demande d’invalidation du cache, qui donnera à l’utilisateur une fonctionnalité ainsi que pour effacer le cache CDN sans enregistrer dans la console AWS.
Source link