AWS Solutions Architect · पाठ

Lambda@Edge और इवेंट-आधारित पैटर्न

CloudFront एज स्थानों पर फ़ंक्शन चलाइए और इवेंट-आधारित आर्किटेक्चर के लिए Lambda को SQS, SNS, DynamoDB Streams और Kinesis से जोड़िए।

पाठ 4, कुल 4 में से13 चरण

Lambda@Edge और इवेंट-आधारित पैटर्न, CoddyKit पर AWS Solutions Architect का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह AWS Solutions Architect सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। AWS Solutions Architect पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Lambda@Edge क्या है

Lambda@Edge आपको केंद्रीय Region के बजाय दुनिया भर में स्थित CloudFront edge locations पर—अंतिम उपयोगकर्ताओं के और निकट—Lambda फ़ंक्शन चलाने देता है। इससे CDN स्तर पर एक मिलीसेकंड से भी कम अतिरिक्त विलंबता के साथ HTTP अनुरोधों और प्रतिक्रियाओं को अनुकूलित किया जा सकता है। Lambda@Edge फ़ंक्शन विश्व स्तर पर परिनियोजित किए जाते हैं और प्रत्येक CloudFront cache hit या miss event पर चलाए जाते हैं, इसलिए ये हल्के अनुरोध-संशोधन कार्यों के लिए आदर्श हैं।

CloudFront के चार Trigger Points

Lambda@Edge, CloudFront अनुरोध जीवनचक्र के चार बिंदुओं पर ट्रैफ़िक को रोक सकता है:

  • Viewer Request: CloudFront को viewer (उपयोगकर्ता) से अनुरोध मिलने पर, cache जाँचने से पहले चलता है
  • Origin Request: जब CloudFront cache miss को origin पर भेजता है, तब चलता है
  • Origin Response: origin द्वारा प्रतिक्रिया लौटाने पर, उसे cache करने से पहले चलता है
  • Viewer Response: CloudFront द्वारा viewer को प्रतिक्रिया लौटाने से ठीक पहले चलता है

नियमित Lambda की तुलना में Lambda@Edge की सीमाएँ

Lambda@Edge में नियमित Lambda की तुलना में अधिक कड़ी सीमाएँ हैं: अधिकतम 128 MB memory (viewer events), 1 GB (origin events), अधिकतम 5 seconds का timeout (viewer) और 30 seconds (origin)। फ़ंक्शन us-east-1 में बनाए जाने चाहिए और CloudFront के माध्यम से edge पर परिनियोजित किए जाने चाहिए। VPC support, environment variables और Lambda Layers उपलब्ध नहीं हैं। इन सीमाओं का अर्थ है कि Lambda@Edge को भारी processing के लिए नहीं, बल्कि हल्के रूपांतरणों के लिए बनाया गया है।

Lambda@Edge के सामान्य उपयोग

Lambda@Edge इन कार्यों के लिए विशेष रूप से उपयोगी है: A/B testing (cookies के आधार पर URLs को अलग-अलग origin paths पर फिर से लिखना), authentication (origin पर भेजने से पहले edge पर JWTs को मान्य करना), HTTP header manipulation (HSTS, CSP, X-Frame-Options जैसे security headers जोड़ना), URL normalisation (www को non-www पर redirect करना या trailing slashes लागू करना) और personalisation ( CloudFront-Viewer-Country header में दिए viewer के देश के आधार पर अलग सामग्री दिखाना)।

// Viewer Request: Add security headers
exports.handler = async (event) => {
    const response = event.Records[0].cf.response;
    response.headers['strict-transport-security'] = [{
        key: 'Strict-Transport-Security',
        value: 'max-age=63072000; includeSubdomains; preload'
    }];
    response.headers['x-frame-options'] = [{
        key: 'X-Frame-Options',
        value: 'DENY'
    }];
    return response;
};

CloudFront Functions बनाम Lambda@Edge

CloudFront Functions अत्यंत हल्के JavaScript फ़ंक्शन होते हैं, जो केवल viewer request/response stages पर चलते हैं। इनकी execution time limit 2 ms होती है और लागत भी बहुत कम होती है। सरल उपयोगों (URL rewrites, header manipulation, cache key normalisation) के लिए CloudFront Functions को Lambda@Edge की तुलना में प्राथमिकता दी जाती है, क्योंकि वे तेज़ और सस्ते हैं। जब network calls, बड़े payloads या origin request/response trigger points तक पहुँच की आवश्यकता हो, तब Lambda@Edge का उपयोग करें।

Lambda के साथ Event-Driven Architecture

Event-driven architecture सेवाओं को events के माध्यम से जोड़ता है—ये ऐसे संदेश होते हैं जो घटित हुई किसी घटना का प्रतिनिधित्व करते हैं। AWS में Lambda मुख्य event consumer है: यह SQS, SNS, DynamoDB Streams, Kinesis, S3, EventBridge और अन्य सेवाओं से events प्राप्त करता है। प्रत्येक event Lambda execution को trigger करता है, जिससे systems बिना घनिष्ठ coupling के asynchronous और स्वतंत्र रूप से प्रतिक्रिया दे पाते हैं। यह pattern loose coupling, independent scaling और fault isolation संभव बनाता है।

SQS Consumer के रूप में Lambda

Lambda को SQS के लिए event source mapping के रूप में कॉन्फ़िगर किया जा सकता है। Lambda queue को poll करता है, अधिकतम batch size तक messages प्राप्त करता है (standard queues के लिए अधिकतम 10,000 और FIFO के लिए 10) और प्रत्येक batch के लिए फ़ंक्शन को एक बार चलाता है। यदि फ़ंक्शन विफल हो जाता है, तो पूरा batch queue में वापस कर दिया जाता है। चलाने से पहले अधिक messages की प्रतीक्षा करने के लिए batch window कॉन्फ़िगर करें, जिससे throughput बेहतर होता है। बार-बार विफल होने वाले messages के लिए source SQS queue पर DLQ का उपयोग करें।

aws lambda create-event-source-mapping \
  --function-name 'OrderProcessor' \
  --event-source-arn 'arn:aws:sqs:us-east-1:123456789012:OrderQueue' \
  --batch-size 10 \
  --maximum-batching-window-in-seconds 5

DynamoDB Streams के साथ Lambda

DynamoDB Streams प्रत्येक item-स्तरीय बदलाव (INSERT, MODIFY, REMOVE) को events के क्रमबद्ध अनुक्रम के रूप में capture करते हैं। Lambda event source mapping का उपयोग करके stream से पढ़ता है, जिसमें TRIM_HORIZON (सबसे पुराने से शुरू) या LATEST (सबसे नए से शुरू) चुना जा सकता है। Lambda in order within a partition records को process करता है। विफल batches का समाधान होने तक उसी partition की आगे की processing रुक जाती है—विफल batches को विभाजित करने और समस्याग्रस्त records को अलग करने के लिए bisect on error का उपयोग करें।

aws lambda create-event-source-mapping \
  --function-name 'StreamProcessor' \
  --event-source-arn 'arn:aws:dynamodb:us-east-1:123456789012:table/Orders/stream/...' \
  --starting-position TRIM_HORIZON \
  --batch-size 100 \
  --bisect-batch-on-function-error

Kinesis Data Streams के साथ Lambda

Lambda Kinesis records को DynamoDB Streams की तरह process करता है—प्रत्येक shard के लिए एक concurrent execution। मुख्य configuration options में parallelisation factor (प्रत्येक shard के लिए अधिकतम 10 concurrent Lambda invocations, जो sub-batches को parallel process करते हैं) और enhanced fan-out (Lambda consumer के लिए प्रत्येक shard को समर्पित 2 MB/s throughput) शामिल हैं। ये options shard count बढ़ाए बिना high-volume streams के throughput में बहुत वृद्धि करते हैं।

Event Router के रूप में EventBridge

Amazon EventBridge AWS सेवाओं और custom applications को जोड़ने के लिए अनुशंसित event bus है। Events bus में आते हैं और rules pattern के आधार पर events को filter करके उन्हें Lambda, SQS, Step Functions और अन्य targets तक route करते हैं। EventBridge event producers और consumers को पूरी तरह अलग रखता है—दोनों में से किसी को दूसरे के बारे में जानकारी नहीं होती। Default event bus AWS सेवाओं से events प्राप्त करता है; अपने application events के लिए custom event bus बनाएँ।

aws events put-rule \
  --name 'OrderPlacedRule' \
  --event-pattern '{"source": ["com.myapp.orders"], "detail-type": ["OrderPlaced"]}' \
  --state ENABLED

aws events put-targets \
  --rule 'OrderPlacedRule' \
  --targets 'Id=LambdaTarget,Arn=arn:aws:lambda:us-east-1:123456789012:function:InventoryUpdater'

Fan-Out Pattern: एक SNS से कई Lambdas

एक सामान्य event-driven pattern fan-out है: एक event कई parallel processing pipelines को trigger करता है। SNS topic पर Publish करें, और कई Lambda function subscriptions स्वतंत्र रूप से प्रतिक्रिया देंगी। उदाहरण के लिए, order placed event अलग-अलग रूप से इन कार्यों को शुरू कर सकता है: पुष्टि ईमेल भेजने वाला Lambda, inventory अपडेट करने वाला Lambda और warehouse को सूचित करने वाला Lambda। प्रत्येक consumer स्वतंत्र होता है और अलग-अलग scale होता है—कोई भी एक consumer दूसरे consumers को रोक नहीं सकता।

त्वरित जाँच

इस lesson में सिखाई गई AWS Solutions Architect (SAA-C03) की अवधारणाओं के बारे में अपनी समझ जाँचें।

Lesson का पुनरावलोकन

इस lesson में आपने सीखा: Lambda@Edge CloudFront edge locations पर चार trigger points (viewer request/response और origin request/response) के साथ फ़ंक्शन चलाता है, जिनका उपयोग authentication, URL rewriting और header manipulation जैसे कार्यों के लिए किया जाता है; CloudFront Functions सरल viewer-stage transformations के लिए कम लागत और कम विलंबता वाला विकल्प हैं; और SQS, DynamoDB Streams, Kinesis, EventBridge तथा SNS fan-out का उपयोग करने वाले event-driven patterns ऐसी loosely coupled architectures सक्षम करते हैं, जिनमें Lambda real-time events पर प्रतिक्रिया करता है। अगले भाग में हम SQS Standard बनाम FIFO Queues का अध्ययन करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ AWS Solutions Architect सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “Lambda@Edge और इवेंट-आधारित पैटर्न” पाठ निःशुल्क है?

हाँ — AWS Solutions Architect अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Lambda@Edge और इवेंट-आधारित पैटर्न” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। AWS Solutions Architect पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Lambda@Edge और इवेंट-आधारित पैटर्न” में मैं क्या सीखूँगा?

CloudFront एज स्थानों पर फ़ंक्शन चलाइए और इवेंट-आधारित आर्किटेक्चर के लिए Lambda को SQS, SNS, DynamoDB Streams और Kinesis से जोड़िए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ AWS Solutions Architect का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या AWS Solutions Architect शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर AWS Solutions Architect शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“Lambda@Edge और इवेंट-आधारित पैटर्न” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस AWS Solutions Architect पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर AWS Solutions Architect पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Lambda फ़ंक्शन: रनटाइम, ट्रिगर और हैंडलर
  2. समवर्तीता, थ्रॉटलिंग और आरक्षित समवर्तीता
  3. Lambda लेयर और डिप्लॉयमेंट पैकेज
  4. Lambda@Edge और इवेंट-आधारित पैटर्न
← AWS Solutions Architect पर वापस जाएँ