Script python pour créer des invalidations de cloudfront

Script python pour créer des invalidations de cloudfront

La fonction d'invalidation Amazon CloudFront vous permet de supprimer un objet du cache CloudFront avant son expiration. Il vous permet de supprimer un objet spécifique du cache ou d'utiliser (*) un caractère générique pour supprimer plusieurs objets. Vous pouvez également invalider tous les objets en utilisant des paramètres «/ *» pour les demandes d'invalidation.

Script python pour créer une invalidation de cloudfront

Boto3 est le SDK AWS pour le langage de programmation Python. Il permet aux développeurs de Python d'écrire des programmes qui utilisent des services comme CloudFront, S3 et EC2, etc.

Tout d'abord, vous devez installer la bibliothèque Python Boto3 basée sur la version Python installée sur votre système. Nous avons recommandé d'utiliser Python 3 pour fonctionner sous les scripts.

pip install boto3 ## pour Python 2 ou par défaut  PIP3 Installer Boto3 ## pour Python 3  

Ensuite, créez un script Python avec le contenu suivant.

Importer Boto3 Importer Temps # Créer un client CloudFront CF = Boto3.client ('cloudfront') # Entrez le nom d'origine distribution_id = "ujs7s8d8fd8fdf" # création de cloudfront invalidation def create_invalidation (): res = cf.create_invalidation (DistributionId = Distribution_id, invalidationBatch = 'paths': 'quantité': 1, 'items': ['/ *'], 'callerreference': str (time.temps()).remplacer("."," ")) invalidation_id = res ['invalidation'] ['id'] return invalidation_id # create cloudfront invalidation id = create_invalidation () print (" invalidation créé avec succès avec id: "+ id)
123456789101112131415161718192021222324252627282930Importer Boto3Import Temps # Créer CloudFront Clientcf = Boto3.Client ('CloudFront') # Entrez le nom d'origine Distribution_ID = "UJS7S8D8FD8FDF" # Create CloudFront InvalidationDef Create_Invalidation (): Res = CF.create_invalidation (DistributionId = Distribution_id, invalidationBatch = 'paths': 'quantité': 1, 'items': ['/ *'], 'callerreference': str (time.temps()).remplacer("."," ")) invalidation_id = res ['invalidation'] ['id'] return invalidation_id # create cloudfront invalidationId = create_invalidation () print (" invalidation créé avec succès avec id: "+ id)

Vous devez avoir à modifier la valeur de distribution_id au nom de distribution CloudFront réel. Pour trouver le nom de distribution, visitez l'interface Web CloudFront. Vous pouvez y trouver un identifiant de distribution sous la colonne ID.

Maintenant, exécutez le script python d'un terminal pour créer une demande d'invalidation.

python3 create_invalidation.py 

Lors de l'exécution réussie, vous verrez un message à l'écran comme:

Invalidation créée avec succès avec ID: i3hhnhj0af0ilq 

La demande d'invalidation peut prendre un certain temps en fonction des données mises en cache. Vous pouvez voir l'état de la demande d'invalidation sur l'interface Web CloudFront.

Pour afficher l'état d'invalidation, accédez à l'interface Web CloudFront. Open CloudFront Distribution, puis accédez à l'onglet Invalidations. Voir l'état de l'ID de demande d'invalidation illustré dans la sortie ci-dessus.

Créer une invalidation pour toutes les distributions CloudFront

Vous pouvez également utiliser le script Python suivant pour créer une demande d'invalidation pour toutes les distributions CloudFront disponibles dans la région sélectionnée de votre compte AWS.

Importer Boto3 Importer Temps # Créer un client CloudFront CF = Boto3.Client ('CloudFront') # Créer CloudFront Invalidation Def Create_Invalidation (Distribution_id): Res = CF.create_invalidation (DistributionId = Distribution_id, invalidationBatch = 'paths': 'quantité': 1, 'items': ['/ *'], 'callerreference': str (time.temps()).remplacer("."," ")) invalidation_id = res ['invalidation'] ['id'] return invalidation_id # boucle via toutes les distributions distributions = cf.List_Distributions () If Distributions ['DistributionList'] ['Quantity']> 0: Pour la distribution dans les distributions ['DistributionList'] ['Items']: id = Create_Invalidation (distribution ['id']) print ("invalidation créé avec succès avec succès pour - "+ distribution ['id']) else: imprimer (" pas de distributions de cloudfront trouvées.")
12345678910111213141516171819202122232425262728293031323334Importer Boto3Import Temps # Créer CloudFront Clientcf = Boto3.Client ('CloudFront') # Créer CloudFront InvalidationDef Create_Invalidation (Distribution_ID): Res = CF.create_invalidation (DistributionId = Distribution_id, invalidationBatch = 'paths': 'quantité': 1, 'items': ['/ *'], 'callerreference': str (time.temps()).remplacer("."," ")) invalidation_id = res ['invalidation'] ['id'] return invalidation_id # boucle via toutes les distributionsDistributions = cf.List_Distributions () If Distributions ['DistributionList'] ['Quantity']> 0: Pour la distribution dans les distributions ['DistributionList'] ['Items']: id = Create_Invalidation (distribution ['id']) print ("invalidation créé avec succès avec succès pour - "+ distribution ['id']) else: imprimer (" pas de distributions de cloudfront trouvées.")

Conclusion

Ce tutoriel vous a aidé avec un script Python pour créer une demande d'invalidation CloudFront.