5 dakikada otomatik güncelleme kurulumu
Tamam arkadaşlar. Otomatik CloudFront güncellemesini (geçersiz kılma) gerçekleştirmenin şimdilik mümkün olan en iyi yolu, S3 klasörüne herhangi bir dosya yüklendiğinde (yeni bir tane veya yeniden yazıldığında) her seferinde tetiklenecek olan Lambda işlevi oluşturmaktır.
Daha önce hiç lambda işlevlerini kullanmamış olsanız bile, bu gerçekten çok kolay - adım adım talimatlarımı izleyin ve yalnızca 5 dakika sürecektir:
Aşama 1
Https://console.aws.amazon.com/lambda/home adresine gidin ve lambda işlevi oluştur'u tıklayın.
Adım 2
Boş İşlevi tıklayın (özel)
Aşama 3
Boş (konturlu) kutuya tıklayın ve açılan menüden S3'ü seçin
4. adım
Senin seçin Bucket (CloudFront dağıtımı için aynı)
Adım 5
Bir ayarlama Olay türü "Nesne düzenlendi (All)" için
6. Adım
Önek ve Sonek'i ayarlayın veya ne olduğunu bilmiyorsanız boş bırakın.
7. Adım
Kontrol tetik etkinleştirme onay kutusunu tıklamanız İleri
8. Adım
İşlevinizi adlandırın (örneğin: YourBucketNameS3ToCloudFrontOnCreateAll )
9. Adım
Çalışma Zamanı olarak Python 2.7 (veya üstü) seçin
10. adım
Varsayılan python kodu yerine aşağıdaki kodu yapıştırın:
from __future__ import print_function
import boto3
import time
def lambda_handler(event, context):
for items in event["Records"]:
path = "/" + items["s3"]["object"]["key"]
print(path)
client = boto3.client('cloudfront')
invalidation = client.create_invalidation(DistributionId='_YOUR_DISTRIBUTION_ID_',
InvalidationBatch={
'Paths': {
'Quantity': 1,
'Items': [path]
},
'CallerReference': str(time.time())
})
11. adım
Yeni bir tarayıcı sekmesinde https://console.aws.amazon.com/cloudfront/home sayfasını açın ve sonraki adımda kullanmak üzere CloudFront dağıtım kimliğinizi kopyalayın.
Adım 1/2
Lambda sekmesine dönün ve Python kodunda _YOUR_DISTRIBUTION_ID_ yerine dağıtım kimliğinizi yapıştırın. Çevreleyen alıntıları koruyun.
Adım 13
İşleyiciyi ayarla : lambda_function.lambda_handler
14. adım
Rol birleşik giriş kutusunu tıklayın ve Özel bir rol oluştur'u seçin . Tarayıcıda yeni sekme açılacaktır.
Adım 15
Click görünüm politikası belgesi tıklayın düzenlemek için tıklayın, OK ve (gibidir) Aşağıdaki ile rol tanımını değiştirin:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"cloudfront:CreateInvalidation"
],
"Resource": [
"*"
]
}
]
}
16. adım
İzin ver'i tıklayın . Bu sizi lambdaya geri döndürecektir. Yeni oluşturduğunuz rol adının Mevcut rol birleşik giriş kutusunda seçili olduğunu iki kez kontrol edin .
17. Adım
Set Bellek (MB) 128 ve Zaman Aşımı 5 sn.
Adım 18
Click İleri , ardından işlevi oluşturma
Adım 19
Senin gitmen iyidir! Artık herhangi bir dosyayı S3'e her yüklediğinizde / yeniden yüklediğinizde, tüm CloudFront Edge konumlarında değerlendirilecektir.
Not - Test ederken, tarayıcınızın görüntüleri yerel önbellekten değil, CloudFront'tan yüklediğinden emin olun.
PSS - Lütfen, ayda sadece ilk 1000 dosyanın geçersiz kılınmasının ücretsiz olduğunu, limit aşımının her bir geçersiz kılmanın 0,005 USD tutarında olduğunu unutmayın. Ayrıca Lambda işlevi için ek ücretler uygulanabilir, ancak son derece ucuzdur.