Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

AWS Lambda में Redis REST के साथ स्टेट प्रबंधन: एक व्यावहारिक गाइड

AWS Lambda ने सर्वरलेस क्षेत्र में अग्रणी भूमिका निभाई। कई डेवलपर्स मानते हैं कि सर्वरलेस विकास का भविष्य है। यह आपको वास्तविक पे-पर-यूज़ मॉडल देता है, बैकेंड इंफ्रास्ट्रक्चर के रखरखाव और स्केलिंग से मुक्त करता है। लेकिन यह चुनौतियों के साथ भी आता है। उनमें से एक है इसकी स्टेटलेसनेस। आपको स्टेट को बाहरी डेटा स्टोर में रखना होगा। दुर्भाग्य से, अधिकांश लोकप्रिय डेटा स्टोर कनेक्शन-आधारित हैं। लेकिन जैसा कि हमने इस पोस्ट में बताया, सर्वरलेस में कनेक्शन प्रबंधन दर्दनाक हो सकता है। इसलिए, हमने Upstash Redis के ऊपर एक उच्च प्रदर्शन REST API विकसित की है। इस ब्लॉग पोस्ट में, मैं AWS Lambda और Upstash Redis का उपयोग करके REST API के साथ एक बहुत ही बुनियादी स्टेटफुल API (पेज काउंटर) लागू करूंगा।

लाइव डेमो देखें: https://3jyz1n07o8.execute-api.us-east-1.amazonaws.com/count

कोड देखें: GitHub रिपॉजिटरी

प्रोजेक्ट सेटअप

हम अपने एप्लिकेशन को डेप्लॉय करने के लिए सर्वरलेस फ्रेमवर्क का उपयोग करेंगे।

git:(master) ✗ serverless
Serverless: No project detected. Do you want to create a new one? Yes
Serverless: What do you want to make? AWS Node.js
Serverless: What do you want to call this project? aws-lambda-redis-rest
Project successfully created in 'aws-lambda-redis-rest' folder.

कोड

npm install node-fetch के माध्यम से fetch इंस्टॉल करें। फिर Upstash कंसोल से एक डेटाबेस बनाएं। REST API बटन पर क्लिक करें और URL और टोकन कॉपी करें। handler.js को नीचे दिए अनुसार अपडेट करें:

const fetch = require("node-fetch");
module.exports.hello = async (event) => {
  const url = "https://us1-last-panther-33620.upstash.io/incr/counter?_token=AACQgMzYyNGM0OGMtZWQ3MC00OTRlLWFmOGEtODc3ZWQxYWQyZGJjZjgyOTlkM2JhNWIxE3OTJlNmE2NGVjNGM=";
  let data = await fetch(url);
  let result = await data.text();
  return {
    statusCode: 200,
    body: result
  };
};

serverless.yml में API एंडपॉइंट जोड़ें:

service: aws-lambda-redis-rest
frameworkVersion: '2'
provider:
  name: aws
  runtime: nodejs12.x
  lambdaHashingVersion: 20201221
functions:
  hello:
    handler: handler.hello
    events:
      - httpApi:
          path: /count
          method: get

चलाएं और डेप्लॉय करें

आप फ़ंक्शंस को स्थानीय रूप से चला सकते हैं:

serverless invoke local -f hello

आप डेप्लॉय कर सकते हैं:

serverless deploy

कमांड URL आउटपुट करेगा जिसे आप अपने ब्राउज़र में देख सकते हैं।

नोट्स

  • सर्वोत्तम प्रदर्शन के लिए, आपका डेटाबेस और AWS Lambda फ़ंक्शन एक ही क्षेत्र में होना चाहिए।
  • REST API की बदौलत, हमें डेटाबेस कनेक्शन प्रबंधित करने की आवश्यकता नहीं है और हमें किसी Redis क्लाइंट की आवश्यकता नहीं है।
  • अपना API टोकन सार्वजनिक रूप से साझा न करें। यदि गलती से लीक हो जाता है, तो आप अपने डेटाबेस का पासवर्ड रीसेट करके इसे रद्द कर सकते हैं।
  • यदि आप एक ही फ़ंक्शन में कई कमांड चलाना चाहते हैं, तो सर्वोत्तम प्रदर्शन के लिए पाइपलाइन API का उपयोग करें।
  1. फ्लटर, सर्वरलेस फ्रेमवर्क और अपस्टैश रेडिस के साथ फुल-स्टैक सर्वरलेस ऐप बनाएं - भाग 1 फ्लटर, सर्वरलेस फ्रेमवर्क और अपस्टैश रेडिस के साथ फुल-स्टैक सर्वरलेस ऐप बनाएं - भाग 1

    इस पोस्ट में, हम फ्लटर, सर्वरलेस फ्रेमवर्क, अपस्टैश और डेटा स्टोर करने के लिए रेडिस के साथ एक सर्वरलेस मोबाइल एप्लिकेशन बनाएंगे। अपस्टैश क्या है? अपस्टैश रेडिस के लिए एक सर्वरलेस डेटाबेस है। अपस्टैश के साथ, आप प्रति-रिक्वेस्ट भुगतान करते हैं। इसका मतलब है कि जब डेटाबेस उपयोग में नहीं होता है तो आपस

  1. पाइपलाइन REST API के साथ सर्वरलेस Redis एक्सेस को बढ़ाएं पाइपलाइन REST API के साथ सर्वरलेस Redis एक्सेस को बढ़ाएं

    Upstash नेटिव Redis API के अलावा REST API का समर्थन करता है। REST API डेवलपर्स को सर्वरलेस और एज फ़ंक्शंस से कनेक्शन समस्याओं के बिना अपने Redis तक पहुंचने में मदद करता है। लेकिन यदि आप एक ही फ़ंक्शन में कई Redis कमांड निष्पादित करते हैं तो इसका मतलब है कि आप डेटाबेस को कई बार कॉल करेंगे। हमारे समुद

  1. Cloudflare Workers के साथ एज पर Redis की शक्ति का उपयोग करें Cloudflare Workers के साथ एज पर Redis की शक्ति का उपयोग करें

    एज पर कंप्यूटिंग हाल के वर्षों में सबसे रोमांचक क्षमताओं में से एक है। CDN आपको अपनी फ़ाइलों को अपने उपयोगकर्ताओं के करीब रखने की अनुमति देता है। एज कंप्यूटिंग आपको अपने एप्लिकेशन को अपने उपयोगकर्ताओं के करीब चलाने की अनुमति देता है। यह डेवलपर्स को विश्व स्तर पर वितरित, उच्च-प्रदर्शन एप्लिकेशन बनाने