इस ब्लॉग पोस्ट में, आप सीखेंगे कि AWS लैम्ब्डा और रेडिस एंटरप्राइज क्लाउड को कैसे एकीकृत किया जाए। एक नमूना मूवी-डेटाबेस एप्लिकेशन का उपयोग करके, आप पाएंगे कि दो लैम्ब्डा फ़ंक्शंस को कैसे बनाया और तैनात किया जाए, एक Node.js में, एक पायथन में। इन दो लैम्ब्डा फ़ंक्शंस का उपयोग रेडिस डेटाबेस के साथ इंटरैक्ट करने, अपडेट करने, हटाने और क्वेरी करने के लिए किया जाता है। एप्लिकेशन RediSearch API का उपयोग करता है जो समृद्ध क्वेरी और खोज कार्यक्षमता प्रदान करता है। सर्वर रहित, AWS लैम्ब्डा का उपयोग करते हुए, माइक्रोसर्विस आर्किटेक्चर की ओर बढ़ते रुझान में फिट बैठता है क्योंकि यह डेवलपर्स को एक व्यवसाय "सेवा" के दायरे को एक छोटी परियोजना में कम करने की अनुमति देता है जिसे उनकी पसंद की प्रोग्रामिंग भाषा का उपयोग करके लागू किया जा सकता है। अधिक जानने के लिए, नीचे दिए गए वीडियो को देखें और एडब्ल्यूएस लैम्ब्डा के त्वरित अवलोकन के लिए पढ़ें और रेडिस एंटरप्राइज क्लाउड और लैम्ब्डा का उपयोग करके एप्लिकेशन बनाने के तरीके के बारे में गहराई से जानें:
AWS लैम्ब्डा पर एक त्वरित नज़र
यदि आप पहले से ही AWS लैम्ब्डा से परिचित नहीं हैं - कंपनी का सर्वर रहित कंप्यूट रनटाइम, जिसे फंक्शन-एज़-ए-सर्विस (FaaS) के रूप में भी जाना जाता है - तो ये मूल बातें हैं जिन्हें आपको जानना आवश्यक है। (लैम्ब्डा विशेषज्ञ अगले भाग पर जा सकते हैं।) एडब्ल्यूएस लैम्ब्डा अनुप्रयोगों को किसी विशेष घटना के जवाब में मांग पर एक फ़ंक्शन चलाने की अनुमति देता है, जिससे यह ईवेंट-संचालित आर्किटेक्चर (ईडीए) अनुप्रयोगों के निर्माण का एक अच्छा तरीका बन जाता है। AWS लैम्ब्डा फ़ंक्शंस, पूरी तरह से AWS द्वारा प्रबंधित, विभिन्न प्रोग्रामिंग भाषाओं का उपयोग करके बनाया जा सकता है। शायद AWS लैम्ब्डा का सबसे अच्छा हिस्सा यह है कि डेवलपर्स को आमतौर पर इसका उपयोग करने के लिए एप्लिकेशन जीवनचक्र को पूरी तरह से समझने की आवश्यकता नहीं होती है।
AWS लैम्ब्डा को कई अलग-अलग तरीकों का उपयोग करके लागू किया जा सकता है:सीधे AWS कंसोल से, अन्य AWS सेवाओं जैसे SNS, SQS, या Kinesis, या यहां तक कि AWS कंसोल, CloudWatch, या S3 ईवेंट से ईवेंट का उपयोग करके। हमारे नमूना मूवी-डेटाबेस एप्लिकेशन में, लैम्ब्डा फ़ंक्शंस को HTTP REST एंडपॉइंट का उपयोग करके लागू किया जाएगा, यह AWS API गेटवे का उपयोग करके किया जाता है। (आप दस्तावेज़ीकरण में एडब्ल्यूएस लैम्ब्डा फ़ंक्शन आमंत्रण के बारे में अधिक जानकारी प्राप्त कर सकते हैं।)
AWS लैम्ब्डा HTTP निष्पादन प्रक्रिया
विशेष रूप से, HTTP के माध्यम से अनुरोध AWS के API गेटवे प्रबंधन टूल पर भेजे जाते हैं, जो बॉडी, हेडर और पैरामीटर को पार्स करता है, और फिर इस पेलोड के साथ हमारे लैम्ब्डा फ़ंक्शन को ट्रिगर करता है:
एक डेवलपर के रूप में, आप बस आरईएसटी एंडपॉइंट को बेनकाब करने के लिए कोड लिखते हैं और एडब्ल्यूएस एपीआई गेटवे के अंदर इसे बेनकाब करने के लिए परिनियोजन को कॉन्फ़िगर करते हैं। (हम अपने नमूना मूवी-डेटाबेस एप्लिकेशन को कवर करते हुए अगले भाग में इस पर और चर्चा करेंगे।)
सर्वर रहित अनुप्रयोगों में राज्य और डेटा प्रबंधन
एडब्ल्यूएस लैम्ब्डा एक स्टेटलेस वातावरण है। कई अनुप्रयोगों में, हालांकि, आप अभी भी सेवाओं या कॉल के बीच राज्य साझा करना चाहते हैं, और रेडिस मदद कर सकता है। सरल राज्य प्रबंधन के लिए, AWS डेवलपर्स अक्सर ElastiCache का उपयोग करते हैं, लेकिन कई अनुप्रयोगों के लिए राज्य प्रबंधन से अधिक की आवश्यकता होती है, उन्हें दृढ़ता, समृद्ध डेटा, उच्च प्रदर्शन और एक क्वेरी मॉडल की भी आवश्यकता होती है। Redis Enterprise Cloud AWS पर पूरी तरह से प्रबंधित सेवा प्रदान करता है (Google क्लाउड और Microsoft Azure भी समर्थित हैं)।
Redis मूवी-डेटाबेस नमूना अनुप्रयोग
अब हम रेडिस एंटरप्राइज क्लाउड और एडब्ल्यूएस लैम्ब्डा का उपयोग करके एप्लिकेशन बनाने के प्रमुख चरणों को देखने के लिए अपने नमूना मूवी-डेटाबेस एप्लिकेशन को देखने के लिए तैयार हैं।
एप्लिकेशन उस डेटासेट का उपयोग करता है जिसे रेडिसर्च गेटिंग स्टार्टेड ट्यूटोरियल में प्रलेखित किया गया है, जिसमें रेडिस हैश से बना मूवी कैटलॉग शामिल है। जैसा कि नीचे दिए गए चार्ट में दिखाया गया है, फ्रंटएंड Vue.js का उपयोग करके बनाया गया है, जो REST एंडपॉइंट को कॉल करता है:
- फ़िल्मों की सूची बनाएं, क्रम से लगाएं और फ़िल्टर करें
- फ़िल्में संपादित करें और टिप्पणियां जोड़ें/हटाएं
- पूर्ण-पाठ खोज और पहलू खोज का उपयोग करके मूवी खोजें
जैसा कि ऊपर उल्लेख किया गया है, एप्लिकेशन डेटास्टोर के लिए एडब्ल्यूएस एपीआई गेटवे, एडब्ल्यूएस लैम्ब्डा और रेडिस एंटरप्राइज क्लाउड का लाभ उठाता है। इसके अलावा, पायथन सेवा रेडिस डेटाबेस पासवर्ड को संग्रहीत और एन्क्रिप्ट करने के लिए एडब्ल्यूएस कुंजी प्रबंधन सेवा का उपयोग करती है।
प्रदर्शन एप्लिकेशन इंस्टॉल करें और चलाएं
आरंभ करने के लिए, आपको कुछ पूर्वापेक्षाओं की आवश्यकता होगी:
- एक एडब्ल्यूएस खाता सेटअप, क्रेडेंशियल, सीएलआई स्थापित के साथ
- एक Redis Enterprise Cloud खाता और डेटाबेस, जिसमें RediSearch मॉड्यूल सक्षम है
- गिट
- नोड.जेएस
- पायथन
- रेडिस कमांड लाइन इंटरफेस (सीएलआई)
एक बार जब आप सब कुछ इकट्ठा कर लेते हैं, तो नमूना एप्लिकेशन को स्थापित करने और चलाने की प्रक्रिया पर चलते हैं।
चरण 1:Redis Enterprise Cloud डेटाबेस जानकारी प्राप्त करें
यदि आपने अभी तक Redis Enterprise Cloud पर डेटाबेस नहीं बनाया है, तो कृपया हमारे Redis मॉड्यूल के साथ आरंभ करें मार्गदर्शिका में दी गई जानकारी का उपयोग करके ऐसा करें।
जब आप रेडिस एंटरप्राइज क्लाउड से जुड़े होते हैं, तो आप वेब कंसोल में डेटाबेस कनेक्शन की जानकारी पा सकते हैं; सुनिश्चित करें कि आप डेटाबेस में "RediSearch 2" मॉड्यूल जोड़ते हैं।
लैम्ब्डा फ़ंक्शन को अपने रेडिस डेटाबेस से जोड़ने के लिए आपको निम्नलिखित गुणों की आवश्यकता होगी:
- REDIS_HOST:redis-18541.xxx.xxxx.xxx.cloud.redis.com
- REDIS_PORT:18541
- REDIS_PASSWORD :<पासवर्ड स्क्रीन पर दिखाया गया है>
चरण 2:GitHub से प्रोजेक्ट प्राप्त करें
अपने स्थानीय वातावरण में रिपॉजिटरी को क्लोन करें, और इसे प्रोजेक्ट डायरेक्टरी में ले जाएँ
> git clone https://github.com/redis-developer/aws-redis-cloud-demo.git > cd aws-redis-cloud-demo
परियोजना निर्देशिका संरचना यहां दिखाई गई है:
aws-redis-cloud-demo ├── README.md ├── front-end => Vue.js project │ ├── .env.development => to set the Lambda URLs in dev mode │ ├── .env.production => to set the Lambda URLs in production mode │ ├── ... │ └── vue.config.js │ └── ... ├── movie-comments-microservice => The Python, comments service │ ├── .chalice │ │ └── config.json => Lambda & Service configuration │ ├── app.py │ ├── chalicelib => Contains application code and lib │ │ └── …. │ ├── readme.md │ └── requirements.txt └── movies-list-microservice => The Node.js, movie service ├── import_movies.redis => Dataset file ├── ... ├── serverless.yml => Lambda & Service configuration ├── src │ └── ... └── ...
चरण 3:मूवी-डेटाबेस डेटासेट को अपने एप्लिकेशन में आयात करें
फ़ाइल aws-redis-cloud-demo/movies-list-microservice/import_movies.redis डेटाबेस में मूवी डालने के लिए सभी रेडिस कमांड शामिल हैं। उपयोग किए गए आदेश हैं:
- हर फिल्म के लिए HSET
- RediSearch अनुक्रमणिका बनाने के लिए FT.CREATE।
डेटासेट आयात करने के लिए, एक टर्मिनल खोलें और निम्न कमांड चलाएँ:
> export REDISCLI_AUTH=<YOUR_DB_PASSWORD> > redis-cli -h redis-18541.xxx.xxxx.xxx.cloud.redis.com \ -p 18541 < movies-list-microservice/import_movies.redis
चरण 4:अपने Redis Enterprise Cloud उदाहरण का उपयोग करने के लिए एप्लिकेशन को कॉन्फ़िगर करें
एप्लिकेशन का परीक्षण करने से पहले, आपको अपने Redis Enterprise Cloud डेटाबेस इंस्टेंस के साथ Node.js और Python सेवाओं को कॉन्फ़िगर करना होगा। ये फ़ाइलें खोलें:
- ./movies-list-microservice/serverless.yml
- ./movie-comments-microservice/.chalice/config.json
फिर रेडिस होस्ट, पोर्ट और पासवर्ड सेट करें:(REDIS_HOST, REDIS_PORT, REDIS_PASSWORD )
चरण 5: मूवी माइक्रोसर्विस (Node.js) बनाएं और चलाएं
प्रोजेक्ट बनाने और चलाने के लिए यहां सूचीबद्ध चरणों का पालन करें। (आप प्रोजेक्ट की रीडमी फ़ाइल में भी सारी जानकारी पा सकते हैं।)
- सर्वर रहित ढांचा स्थापित करें
> npm install -g serverless
2. चलचित्र-सूची-माइक्रोसर्विस निर्देशिका पर जाएँ
> cd movies-list-microservice
3. निर्भरता स्थापित करें
> npm install
4. लैम्ब्डा फ़ंक्शन को स्थानीय रूप से चलाएँ
> npm start
5. REST सेवा के लिए ब्राउज़र कॉल खोलकर सेवा का परीक्षण करें:https://localhost:3000/api/movies/1
6. अपने AWS परिवेश में फ़ंक्शन को परिनियोजित करने के लिए निम्न आदेश चलाकर, AWS को सेवा परिनियोजित करें:
> serverless deploy ................................ Serverless: Stack update finished... Service Information service: movies-list-microservice stage: api region: us-east-1 stack: movies-list-microservice-api resources: 33 api keys: None endpoints: GET - https://<xxx>.execute-api.<reg>.amazonaws.com/api/movies/search GET - https://<xxx>.execute-api.<reg>.amazonaws.com/api/movies/group_by/{field} GET - https://<xxx>.execute-api.<reg>.amazonaws.com/api/movies/{id} POST - https://<xxx>.execute-api.<reg>.amazonaws.com/api/movies/{id} functions: listMovies: movies-list-microservice-api-listMovies searchMovies: movies-list-microservice-api-searchMovies getMovie: movies-list-microservice-api-getMovie saveMovie: movies-list-microservice-api-saveMovie layers: None
7. अपने ब्राउज़र को https://
नोट:यदि आपको कोई त्रुटि प्राप्त होती है, तो क्या हुआ यह देखने के लिए AWS CloudWatch में फ़ंक्शन लॉग की जाँच करें।
कोड पर गहराई से नज़र डालें:
- package.json फ़ाइल में इस Node.js प्रोजेक्ट द्वारा उपयोग की जाने वाली निर्भरताएँ हैं। यह परियोजना काफी सरल है, और निम्नलिखित निर्भरताओं का उपयोग करती है:
- द <मार्क>रेडिस और redis-redissearch पुस्तकालयों का उपयोग Redis से कनेक्ट करने और RediSearch कमांड को उजागर करने के लिए किया जाता है।
- द aws-lambda पुस्तकालय का उपयोग आपके एडब्ल्यूएस वातावरण में नोड एप्लिकेशन को परिनियोजित करने के लिए सभी एडब्ल्यूएस लैम्ब्डा कार्यों को कॉल करने के लिए किया जाता है।
- serverless.yml फ़ाइल सर्वर रहित फ़ंक्शन को परिभाषित करती है जो HTTP क्रियाओं को जावास्क्रिप्ट फ़ंक्शन में मैप करता है जिसे कहा जाएगा (handler.ts में परिभाषित) ), और इसमें पर्यावरण चर शामिल हैं (इस प्रदर्शन में ज्यादातर रेडिस कनेक्शन स्ट्रिंग)।
- द handler.ts फ़ाइल वह वर्ग है जो एडब्ल्यूएस गेटवे से आने वाली घटना को कैप्चर करता है और एप्लिकेशन लाइब्रेरी को कॉल करता है SearchService , जो रेडिस डेटाबेस को सभी कॉल कर रहा है।
- SearchService.ts फ़ाइल में Redis डेटाबेस के साथ इंटरैक्ट करने और Redis और RediSearch API का उपयोग करने के सभी तरीके शामिल हैं:client.ft_search() , client.aggregate() , client.hmset() , और अधिक। (आप Redis विश्वविद्यालय में Redis और RediSearch कमांड के बारे में और GitHub पर RediSearch 2.0 ट्यूटोरियल के साथ शुरुआत करने के बारे में अधिक जान सकते हैं।
चरण 6: टिप्पणियां बनाएं और चलाएं माइक्रोसर्विस (पायथन)
यहां प्रोजेक्ट बनाने और चलाने के चरण दिए गए हैं। (आप प्रोजेक्ट की रीडमी फ़ाइल में भी सारी जानकारी पा सकते हैं।)
- पायथन प्रोजेक्ट पर जाएं और वर्चुअल वातावरण बनाएं:
> cd movie-comments-microservice > python3 -m venv chalice-env > source chalice-env/bin/activate
2. निर्भरता स्थापित करें:
> pip install -r requirements.txt
3. AWS परिवेश सेट करें, निम्न आदेश चलाएँ, और अपनी आईडी और गुप्त कॉन्फ़िगर करें:
> aws configure AWS Access Key ID [None]: ****************ABCD AWS Secret Access Key [None]: ****************abCd Default region name [None]: us-west-2 Default output format [None]:
4. फ़ंक्शन को अपने AWS परिवेश में परिनियोजित करने के लिए निम्न आदेश चलाकर, AWS में सेवा परिनियोजित करें:
> chalice deploy Reusing existing deployment package. Updating policy for IAM role: movie-comments-microservice-dev Creating lambda function: movie-comments-microservice-dev Creating Rest API Resources deployed: - Lambda ARN: arn:aws:lambda:us-east-1:11111111111:function:movie-comments-microservice-dev - Rest API URL: https://XXXXXXX.execute-api.us-east-1.amazonaws.com/api/
कोड पर गहराई से नज़र डालें:
- Requirements.txt फ़ाइल में इस पायथन प्रोजेक्ट द्वारा उपयोग की जाने वाली निर्भरताएँ हैं। यह परियोजना काफी सरल है, और निम्नलिखित निर्भरताओं का उपयोग करती है:
- चलिया AWS फ्रेमवर्क है जिसका उपयोग Python में सर्वर रहित एप्लिकेशन बनाने के लिए किया जाता है
- रेडिस और <चिह्न>फिर से खोज करें Redis तक पहुंचें और RediSearch API का उपयोग करें
- द config.json फ़ाइल सर्वर रहित एप्लिकेशन को परिभाषित करती है और इसका उपयोग पर्यावरण चर को परिभाषित करने के लिए किया जाता है - इस एप्लिकेशन में, रेडिस डेटाबेस कनेक्शन जानकारी।
- द app.py फ़ाइल एप्लिकेशन एंट्री पॉइंट है जो विभिन्न मार्गों का उपयोग करके सभी आरईएसटी एंडपॉइंट्स को परिभाषित करता है। एप्लिकेशन विभिन्न निर्भरताओं को आयात करता है, विशेष रूप से CommentService जिसका उपयोग रेडिस के साथ बातचीत करने के लिए किया जाता है। जब आप कई फाइलों का उपयोग करना चाहते हैं तो आपको फाइलों को chalicelib . में रखना होगा फ़ोल्डर।
- टिप्पणी_service.py फ़ाइल में रेडिस के साथ टिप्पणियों को बनाने, क्वेरी करने और हटाने के लिए सभी इंटरैक्शन शामिल हैं। टिप्पणी विशेषता के लिए एक दिलचस्प बिंदु है खोज () तरीका। इस विधि का उपयोग search_client.search() का उपयोग करके निर्माण की तारीख के अनुसार क्रमबद्ध मूवी के लिए टिप्पणियों को पुनः प्राप्त करने के लिए किया जाता है कॉल करें।
वैकल्पिक रूप से, आप Redis डेटाबेस पासवर्ड को . में स्टोर कर सकते हैं एडब्ल्यूएस कुंजी प्रबंधन सेवा . आप प्रोजेक्ट में कॉन्फ़िगरेशन चरण पा सकते हैं दस्तावेज़ीकरण .
चरण 7:फ़्रंटएंड एप्लिकेशन चलाएँ
- फ्रंटएंड डायरेक्टरी में जाएं और डिपेंडेंसीज इंस्टॉल करें:
> cd front-end > npm install
2. .env.Development संपादित करें फ़िल्म और टिप्पणी सेवाओं का URL सेट करने के लिए फ़ाइल:
VUE_APP_MOVIES_SERVICE=https://<xxx>.execute-api.<reg>.amazonaws.com/api VUE_APP_COMMENTS_SERVICE=https://<xxx>..execute-api.<reg>.amazonaws.com/api
3. एप्लिकेशन चलाएँ:
> npm run serve
4. अपना ब्राउज़र खोलें, और https://localhost:8084 . पर जाएं
अब आप एप्लिकेशन में नेविगेट कर सकते हैं, मूवी अपडेट कर सकते हैं और खोज सकते हैं, और टिप्पणियां जोड़/हटा सकते हैं।
वैकल्पिक रूप से, आप S3 और . का उपयोग कर सकते हैं क्लाउडफ्रंट अपने AWS परिवेश में Vue एप्लिकेशन को परिनियोजित करने के लिए और इसे अपने उपयोगकर्ताओं के लिए सार्वजनिक रूप से प्रस्तुत करने के लिए। यह परियोजना में समझाया गया है दस्तावेज़ीकरण .
निष्कर्ष
एडब्ल्यूएस लैम्ब्डा और रेडिस एंटरप्राइज क्लाउड के साथ काम करना आपकी सेवाओं की तैनाती को सरल करता है। RediSearch के साथ Redis Enterprise Cloud का उपयोग करके, आप मूल्यों का उपयोग करके Redis डेटा को आसानी से क्वेरी कर सकते हैं, जिससे आप Redis को अपनी सेवाओं के मुख्य डेटाबेस के रूप में उपयोग कर सकते हैं।
Redis Enterprise Cloud, Redis के साथ संगत है, जिससे आप अपने मौजूदा Redis परिनियोजन, OSS और प्रबंधित सेवाओं दोनों को आसानी से माइग्रेट कर सकते हैं। आपको बस कनेक्शन पैरामीटर्स (जैसे डेटाबेस एंडपॉइंट्स) को बदलने की जरूरत है। लाइव माइग्रेशन करने के कई तरीके हैं, जिनमें शामिल हैं:
- नीले-हरे रंग की तैनाती
- एक्टिव पैसिव जियो-डिस्ट्रीब्यूशन का उपयोग करके Amazon ElastiCache और Redis Enterprise Cloud को सिंक्रोनाइज़ करना
- अपना डेटा माइग्रेट करने के लिए हमारे ओपन सोर्स RIOT टूल का उपयोग करना
RediSearch के अलावा, Redis Enterprise Cloud आपको ग्राफ़, JSON, टाइम सीरीज़ और ब्लूम फ़िल्टर जैसे अन्य आशाजनक डेटा मॉडल का उपयोग करने देता है, और उच्च उपलब्धता, मापनीयता, दृढ़ता सहित उत्पादन वातावरण में महत्वपूर्ण अन्य डेटाबेस सुविधाओं की एक विस्तृत विविधता प्रदान करता है। सुरक्षा, और सक्रिय-सक्रिय भू-वितरण।
अधिक सीखना चाहते हैं? हमारे AWS री:इन्वेंट होम पेज को देखें और इन ट्यूटोरियल्स और ब्लॉग पोस्ट्स को पढ़ें:
- AWS पर रेडिस मॉड्यूल के साथ शुरुआत करें
- डीबीएएएस प्रदाता चुनते समय विचार करने के लिए 6 मुख्य विशेषताएं
- Redis Enterprise Cloud AWS पर परिपक्व होने वाले एंटरप्राइज़ ग्राहकों की ज़रूरतों को कैसे पूरा करता है