Skrip Python untuk membuat cloudfront tidak validasi

Skrip Python untuk membuat cloudfront tidak validasi

Fitur Invalidasi Amazon Cloudfront memungkinkan Anda menghapus objek dari cache cloudfront sebelum kedaluwarsa. Ini memungkinkan Anda untuk menghapus objek tertentu dari cache atau menggunakan (*) karakter wildcard untuk menghapus banyak objek. Anda juga dapat membatalkan semua objek dengan menggunakan parameter “/*” untuk permintaan yang tidak validasi.

Skrip Python untuk membuat cloudfront Invalidation

Boto3 adalah AWS SDK untuk bahasa pemrograman Python. Ini memungkinkan pengembang Python untuk menulis program yang memanfaatkan layanan seperti CloudFront, S3 dan EC2 dll.

Pertama, Anda perlu menginstal Perpustakaan Boto3 Python berdasarkan versi Python yang diinstal pada sistem Anda. Kami merekomendasikan untuk menggunakan Python 3 untuk menjalankan skrip di bawah.

Pip Instal Boto3 ## untuk Python 2 atau default  Pip3 Pasang Boto3 ## untuk Python 3  

Selanjutnya, buat skrip Python dengan konten berikut.

Impor Boto3 Impor Waktu # Buat CloudFront Client CF = Boto3.Client ('CloudFront') # Masukkan nama asli distribusi_id = "UJS7S8D8FD8FDF" # Buat CloudFront Invalidation Def create_invalidation (): res = cf.create_invalidation (distributionId = distribusi_id, tidak validasibatch = 'paths': 'kuantitas': 1, 'item': ['/*'], 'callerreference': str (waktu.waktu()).mengganti("."," ")) Invalidation_id = res ['Invalidation'] ['id'] return Invalidation_ID # Buat cloudFront Invalidation ID = create_invalidation () print (" Invalidasi dibuat dengan sukses dengan ID: " + ID)
123456789101112131415161718192021222324252627282930Impor Boto3Import Time # Buat CloudFront ClientCf = Boto3.Client ('CloudFront') # Masukkan nama asli distribusi_id = "UJS7S8D8FD8FDF" # Buat CloudFront InvalidationDef create_invalidation (): res = cf.create_invalidation (distributionId = distribusi_id, tidak validasibatch = 'paths': 'kuantitas': 1, 'item': ['/*'], 'callerreference': str (waktu.waktu()).mengganti("."," ")) Invalidation_id = res ['Invalidation'] ['id'] return Invalidation_id # Buat cloudFront InvalidationID = create_invalidation () print (" Invalidasi dibuat dengan sukses dengan ID: " + ID)

Anda harus mengubah nilai distribusi_id ke nama distribusi cloudfront yang sebenarnya. Untuk menemukan nama distribusi, kunjungi antarmuka web CloudFront. Di sana Anda dapat menemukan ID distribusi di bawah kolom ID.

Sekarang, jalankan skrip Python dari terminal untuk membuat permintaan pembatalan.

python3 create_invalidation.py 

Pada eksekusi yang berhasil, Anda akan melihat pesan di layar seperti:

Invalidasi berhasil dibuat dengan ID: i3hhnhj0af0ilq 

Permintaan pembatalan mungkin membutuhkan waktu berdasarkan data yang di -cache. Anda dapat melihat status Permintaan Invalidasi di CloudFront Web Interface.

Untuk melihat status pembatalan, buka antarmuka web CloudFront. Buka distribusi cloudfront, lalu navigasikan ke tab Invalidations. Lihat status ID Permintaan Invalidasi yang ditunjukkan pada output di atas.

Buat Invalidasi untuk Semua Distribusi CloudFront

Anda juga dapat menggunakan skrip Python berikut untuk membuat permintaan pembatalan untuk semua distribusi cloudfront yang tersedia di wilayah terpilih dari akun AWS Anda.

Impor Boto3 Impor Waktu # Buat CloudFront Client CF = Boto3.Client ('CloudFront') # Buat CloudFront Invalidation Def Create_invalidation (Distribution_id): res = cf.create_invalidation (distributionId = distribusi_id, tidak validasibatch = 'paths': 'kuantitas': 1, 'item': ['/*'], 'callerreference': str (waktu.waktu()).mengganti("."," ")) Invalidation_id = res ['Invalidation'] ['id'] Return Invalidation_ID # loop melalui semua distribusi distribusi = CF.list_distributions () Jika distribusi ['DistributionList'] ['kuantitas']> 0: Untuk distribusi dalam distribusi ['DistributionList'] ['item']: id = create_invalidasi (distribusi ['id']) cetak ("Invalidasi yang berhasil dibuat dengan berhasil untuk - " + distribusi ['id']) else: cetak (" Tidak ada distribusi cloudfront ditemukan.")
12345678910111213141516171819202122232425262728293031323334Impor Boto3Import Time # Buat CloudFront ClientCf = Boto3.Client ('CloudFront') # Buat CloudFront InvalidationDef create_invalidation (distribusi_id): res = cf.create_invalidation (distributionId = distribusi_id, tidak validasibatch = 'paths': 'kuantitas': 1, 'item': ['/*'], 'callerreference': str (waktu.waktu()).mengganti("."," ")) Invalidation_id = res ['Invalidation'] ['id'] Return Invalidation_ID # loop melalui semua distribusiDistribusi = CF.list_distributions () Jika distribusi ['DistributionList'] ['kuantitas']> 0: Untuk distribusi dalam distribusi ['DistributionList'] ['item']: id = create_invalidasi (distribusi ['id']) cetak ("Invalidasi yang berhasil dibuat dengan berhasil untuk - " + distribusi ['id']) else: cetak (" Tidak ada distribusi cloudfront ditemukan.")

Kesimpulan

Tutorial ini membantu Anda dengan skrip Python untuk membuat permintaan cloudfront tidak validasi.