5 मिनट में स्वचालित अद्यतन सेटअप
ठीक है दोस्तों। स्वचालित क्लाउडफ़ॉरेस्ट अपडेट (अमान्यकरण) करने के लिए अब तक का सबसे अच्छा तरीका लैम्ब्डा फ़ंक्शन बनाना है जो हर बार ट्रिगर किया जाएगा जब कोई भी फ़ाइल S3 बाल्टी (एक नया या फिर से लिखा गया) पर अपलोड हो।
यहां तक कि अगर आपने पहले कभी लैम्ब्डा फ़ंक्शन का उपयोग नहीं किया है, तो यह वास्तव में आसान है - बस मेरे चरण-दर-चरण निर्देशों का पालन करें और इसमें सिर्फ 5 सेकंड का समय लगेगा:
चरण 1
Https://console.aws.amazon.com/lambda/home पर जाएं और Create a lambda फ़ंक्शन पर क्लिक करें
चरण 2
रिक्त फ़ंक्शन (कस्टम) पर क्लिक करें
चरण 3
खाली (स्ट्रॉक्ड) बॉक्स पर क्लिक करें और कॉम्बो से S3 चुनें
चरण 4
अपने बकेट का चयन करें (CloudFront वितरण के लिए समान)
चरण 5
"ऑब्जेक्ट क्रिएट (ऑल)" के लिए एक ईवेंट प्रकार सेट करें
चरण 6
उपसर्ग और प्रत्यय सेट करें या इसे खाली छोड़ दें यदि आप नहीं जानते कि यह क्या है।
चरण 7
ट्रिगर चेकबॉक्स सक्षम करें चेक करें और अगला क्लिक करें
चरण 8
अपने फ़ंक्शन को नाम दें (कुछ इस तरह: YourBucketNameS3ToCloudFrontOnCreateAll )
चरण 9
पाइथन 2.7 का चयन करें (या बाद में) रनटाइम के रूप में
चरण 10
डिफ़ॉल्ट अजगर कोड के बजाय निम्नलिखित कोड चिपकाएँ:
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
एक नए ब्राउज़र टैब में https://console.aws.amazon.com/cloudfront/home खोलें और अगले चरण में उपयोग के लिए अपने CloudFront वितरण आईडी की प्रतिलिपि बनाएँ।
चरण 12
पैंथन कोड में _YOUR_DISTRIBUTION_ID_ के बजाय लैम्ब्डा टैब पर लौटें और अपनी वितरण आईडी पेस्ट करें। आसपास के उद्धरण रखें।
चरण 13
सेट हैंडलर : lambda_function.lambda_handler
चरण 14
कॉम्बोक्स की भूमिका पर क्लिक करें और एक कस्टम भूमिका बनाएँ चुनें । ब्राउज़र में नया टैब खोला जाएगा।
चरण 15
क्लिक करें दृश्य नीति दस्तावेज क्लिक करें, संपादित करें , क्लिक करें ठीक है और निम्न (के रूप में है) के साथ भूमिका परिभाषा बदल देते हैं:
{
"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
अनुमति पर क्लिक करें । यह आपको एक मेमने को लौटा देगा। डबल रोल जो आपके द्वारा अभी-अभी बनाया गया है उसका नाम मौजूदा रोल कॉम्बोक्स में चुना गया है ।
चरण 17
मेमोरी (MB) को 128 पर सेट करें और 5 सेकंड के लिए टाइमआउट करें।
चरण 18
अगला क्लिक करें , फिर फ़ंक्शन बनाएं पर क्लिक करें
चरण 19
तुम तैयार हो! अब, हर बार जब आप किसी फ़ाइल को S3 में अपलोड / पुनः लोड करेंगे, तो इसका मूल्यांकन सभी CloudFront Edge स्थानों में किया जाएगा।
पुनश्च - जब आप परीक्षण कर रहे हैं, तो सुनिश्चित करें कि आपका ब्राउज़र क्लाउडफ़ास्ट से छवियों को लोड कर रहा है, स्थानीय कैश से नहीं।
PSS - कृपया ध्यान दें, कि प्रति माह केवल पहली 1000 फाइलें अमान्य हैं, मुफ्त में, प्रत्येक अमान्यता की सीमा $ 0.005 USD से अधिक है। इसके अलावा लैम्ब्डा फ़ंक्शन के लिए अतिरिक्त शुल्क लागू हो सकते हैं, लेकिन यह बेहद सस्ता है।