Script de Python para crear invalidaciones de Cloudfront

Script de Python para crear invalidaciones de Cloudfront

La función de invalidación de Amazon CloudFront le permite eliminar un objeto del caché de CloudFront antes de que expire. Le permite eliminar un objeto específico de la caché o usar (*) carácter comodín para eliminar múltiples objetos. También puede invalidar todos los objetos utilizando parámetros "/*" a solicitudes de invalidación.

Script de Python para crear una invalidación de Cloudfront

Boto3 es el AWS SDK para el lenguaje de programación de Python. Permite a los desarrolladores de Python escribir programas que utilicen servicios como CloudFront, S3 y EC2, etc.

Primero, debe instalar Boto3 Python Library basada en la versión de Python instalada en su sistema. Recomendamos usar Python 3 para ejecutar a continuación los scripts.

PIP Instalar Boto3 ## para Python 2 o predeterminado  PIP3 Instalar Boto3 ## para Python 3  

A continuación, cree un script de Python con el siguiente contenido.

Importar Boto3 Tiempo de importación # Crear Cliente CloudFront cf = Boto3.Client ('CloudFront') # Ingrese el nombre original distribution_id = "UJS7S8D8FD8FDF" # Crear invalidación CloudFront def create_invalidation (): res = cf.create_invalidation (distributionId = distribution_id, invalidationBatch = 'rutas': 'cantidad': 1, 'elementos': ['/*'], 'callerReference': str (tiempo.tiempo()).reemplazar("."," ")) invalidation_id = res ['invalidation'] ['id'] return Invalidation_id # Crear CloudFront Invalidation id = create_invalidation () print (" Invalidación creada con éxito con ID: " + id)
123456789101112131415161718192021222324252627282930Importar Boto3Import Time # Crear CloudFront ClientCF = Boto3.Client ('CloudFront') # Ingrese el nombre original distribución_id = "UJS7S8D8FD8FDF" # Crear invalidación de CloudFrontDef create_invalidation (): res = cf.create_invalidation (distributionId = distribution_id, invalidationBatch = 'rutas': 'cantidad': 1, 'elementos': ['/*'], 'callerReference': str (tiempo.tiempo()).reemplazar("."," ")) invalidation_id = res ['invalidation'] ['id'] return Invalidation_id # Crear CloudFront InvalidationId = create_invalidation () print (" Invalidación creada con éxito con ID: " + ID)

Debe tener que cambiar el valor de distribución_id al nombre real de distribución de CloudFront. Para encontrar el nombre de la distribución, visite la interfaz web CloudFront. Allí puede encontrar ID de distribución en la columna ID.

Ahora, ejecute el script de Python de un terminal para crear una solicitud de invalidación.

python3 create_invalidation.py 

En la ejecución exitosa, verá un mensaje en la pantalla como:

Invalidación creada con éxito con ID: i3hhnhj0af0ilq 

La solicitud de invalidación puede llevar algún tiempo en función de los datos en caché. Puede ver el estado de la solicitud de invalidación en la interfaz web de CloudFront.

Para ver el estado de invalidación, vaya a la interfaz web de CloudFront. Abra la distribución de Cloudfront, luego navegue a la pestaña Invalidaciones. Consulte el estado de la ID de solicitud de invalidación que se muestra en la salida anterior.

Crear invalidación para todas las distribuciones de Cloudfront

También puede usar el siguiente script de Python para crear una solicitud de invalidación para todas las distribuciones de Cloudfront disponibles en la región seleccionada de su cuenta de AWS.

Importar Boto3 Tiempo de importación # Crear Cliente CloudFront cf = Boto3.Client ('CloudFront') # Crear invalidación de CloudFront def create_invalidation (distribución_id): res = cf.create_invalidation (distributionId = distribution_id, invalidationBatch = 'rutas': 'cantidad': 1, 'elementos': ['/*'], 'callerReference': str (tiempo.tiempo()).reemplazar("."," ")) invalidation_id = res ['invalidation'] ['id'] return Invalidation_id # bucle a través de todas las distribuciones de distribuciones = cf.list_distributions () if distribuciones ['distributionList'] ['cantidad']> 0: para distribución en distribuciones ['distributionList'] ['elementos']: id = create_invalidation (distribución ['id']) print ("Invalidación creada con éxito para - " + distribución ['id']) else: imprimir (" No se encontraron distribuciones de nubefront.")
12345678910111213141516171819202122232425262728293031323334Importar Boto3Import Time # Crear CloudFront ClientCF = Boto3.Client ('CloudFront') # Crear Invalidation de CloudFront Create_inValidation (distribución_id): res = cf.create_invalidation (distributionId = distribution_id, invalidationBatch = 'rutas': 'cantidad': 1, 'elementos': ['/*'], 'callerReference': str (tiempo.tiempo()).reemplazar("."," ")) invalidation_id = res ['invalidation'] ['id'] return invalidation_id # bucle a través de todas las distribuciones de distribución = cf.list_distributions () if distribuciones ['distributionList'] ['cantidad']> 0: para distribución en distribuciones ['distributionList'] ['elementos']: id = create_invalidation (distribución ['id']) print ("Invalidación creada con éxito para - " + distribución ['id']) else: imprimir (" No se encontraron distribuciones de nubefront.")

Conclusión

Este tutorial te ayudó con un script de Python para crear una solicitud de invalidación de CloudFront.