2012-10-08 27 views
9

मुझे प्रलेखन में एक स्पष्ट उत्तर दिखाई नहीं दे रहा है।क्या अमेज़ॅन एस 3 क्लाउडफ्रंट को अमान्यता संकेत भेजता है?

जब मैं S3 पर एक फ़ाइल को अद्यतन करने और मैं CloudFront सक्षम किया गया है, एस 3 CloudFront के लिए एक अमान्यकरण संकेत भेजता है? या मुझे फाइल को अपडेट करने के बाद इसे खुद भेजने की ज़रूरत है?

उत्तर

17

एस 3 क्लाउडफ्रंट को कोई अमान्य जानकारी नहीं भेजता है। डिफ़ॉल्ट रूप से क्लाउडफ्रंट कैश कंट्रोल हेडर द्वारा निर्दिष्ट अधिकतम समय तक जानकारी रखेगा जो मूल से डेटा पुनर्प्राप्त करते समय सेट किए गए थे (यदि यह ऐसा लगता है तो इससे पहले कैश से आइटम्स को हटाया जा सकता है)।

आप अमान्यता बैच बनाकर कैश प्रविष्टियों को अमान्य कर सकते हैं। इससे आपको पैसे मिलेंगे: एक महीने में पहले 1000 अनुरोध निःशुल्क हैं, लेकिन इसके अतिरिक्त यह $ 0.005 प्रति अनुरोध है - यदि आप एक दिन में 1000 फाइलों को अमान्य कर रहे थे तो यह आपको $ 150 प्रति माह खर्च करेगा (जब तक कि आप वाइल्डकार्ड सुविधा का उपयोग नहीं कर सकते)। आप निश्चित रूप से एक अमेज़ॅन Lambda समारोह का उपयोग कर एक एस 3 घटना के जवाब में इसे ट्रिगर कर सकते हैं।

ऑब्जेक्ट में परिवर्तन होने पर एक अलग पथ का उपयोग करना एक और तरीका है (असल में एक पीढ़ी के कैश कुंजी)। इसी प्रकार आप यूआरएल में एक क्वेरी पैरामीटर जोड़ सकते हैं और उस क्वेरी पैरामीटर को बदल सकते हैं जब आप क्लाउडफ्रंट को ताजा प्रतिलिपि लाने के लिए चाहते हैं (ऐसा करने के लिए आपको क्लाउडफ्रंट को क्वेरी स्ट्रिंग पैरामीटर का उपयोग करने के लिए बताना होगा - डिफ़ॉल्ट रूप से यह उन्हें अनदेखा करता है)।

एक और तरीका यदि आप केवल कम (लेकिन बड़े) परिवर्तन करते हैं तो बस एक नया क्लाउडफ़्रंट वितरण बनाना है।

+0

मुझे इस मामले में एक भयानक भावना थी। ऐसा लगता है कि वे एक फीचर चूक गए। क्या आप इसके लिए एक संदर्भ प्रदान कर सकते हैं या यह अभी निर्दिष्ट नहीं है? धन्यवाद। – Joe

+0

यह एक दोषपूर्ण धारणा होगी कि S3 के लिए एक नया संस्करण अपलोड करने का अर्थ है कि आप क्लाउडफ्रंट में कैश साफ़ करना चाहते हैं। हां, यह वह व्यवहार हो सकता है जिसे आप ढूंढ रहे हैं, लेकिन यह एडब्ल्यूएस से _assume_ के लिए अजीब होगा कि यह वही है जो आप चाहते हैं। कई मामलों में, मैं क्लाउडफ्रंट में सामग्री को कैश करूँगा यह जानकर कि यह मेरी सेटिंग्स के अनुसार समाप्त हो जाएगा, और समय से पहले S3 में अद्यतन सामग्री को चरणबद्ध करेगा। मेरे मामले में, और स्वचालित अमान्यता जो मैं चाहता हूं उसके विपरीत है। –

+0

मानते नहीं, लेकिन ऐसा लगता है कि यह एक उपयोगी पैरामीटर है। – Joe

3

जहाँ तक मुझे पता है, सभी सीडीएन इस तरह काम करते हैं।

यह कारण है कि आप आम तौर पर एक CDN संस्करण परिसंपत्तियों को foo-x.y.z.ext की तरह कुछ का उपयोग है। मैं foo.ext?x.y.z का उपयोग नहीं करता क्योंकि कुछ ब्राउज़रों और प्रॉक्सी के बारे में कुछ ऐसा नहीं था जो ?QUERY_STRING के साथ संपत्तियों को कैश नहीं करता था।

सामान्य तौर पर आपको यह देखना चाहेंगे: https://developers.google.com/speed/docs/best-practices/caching

यह सर्वोत्तम प्रथाओं के बहुत सारे शामिल है और विवरण क्या करना है और कैसे यह काम करता है में चला जाता है।

S3 और CloudFront के संबंध में, मैं कैश अमान्यकरण साथ सुपर परिचित नहीं हूँ, लेकिन क्या फ्रेडरिक चेउंग उल्लिखित सभी सही है।

कुछ प्रदाता आपको सीधे कैश साफ़ करने की अनुमति देते हैं लेकिन सीडीएन की प्रकृति के कारण ये परिवर्तन लगभग कभी नहीं होते हैं। एक और तरीका एक छोटा टीटीएल (समाप्ति शीर्षलेख) सेट करना है ताकि परिसंपत्तियों को अधिक बार ताज़ा किया जा सके। लेकिन मुझे लगता है कि सीडीएन के उद्देश्य को भी हरा देता है।

हमारे मामले (Edgecast) में, कैश अमान्यकरण संभव (एक मैनुअल प्रक्रिया) और नि: शुल्क है, लेकिन हम शायद ही कभी क्योंकि हम संस्करण हमारी संपत्ति के हिसाब से यह करते हैं।

+0

उत्तर देने के लिए धन्यवाद। मैं एस 3 और क्लाउडफ्रंट (और अन्य) दोनों से परिचित हूं, मैं इन दो अमेज़ॅन उत्पादों के बीच विशिष्ट एकीकरण के बारे में पूछ रहा था। – Joe

+0

ठीक है, मुझे यह विशेष रूप से नहीं मिला। तो हाँ - मेरी सिफारिश अभी भी संस्करण संपत्तियों और ऑब्जेक्ट पर 'कैश-कंट्रोल' हेडर सेट करने के लिए होगी। – Till

+0

धन्यवाद ऐसा लगता है कि मुझे बस इसके आसपास काम करना होगा। मुझे अभी भी लगता है कि यह एक आवश्यक और आसान-लागू करने वाली सुविधा है जिसे वे याद करते हैं। – Joe