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

Redis REST . के साथ स्टेटफुल AWS लैम्ब्डा

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

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

कोड देखें:https://github.com/upstash/examples/tree/master/aws-lambda-redis-rest

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

हम अपने एप्लिकेशन को परिनियोजित करने के लिए सर्वर रहित ढांचे का उपयोग करेंगे।


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 via के माध्यम से फ़ेच इंस्टॉल करें . फिर Upstash कंसोल से एक डेटाबेस बनाएं। REST API बटन पर क्लिक करें और url और टोकन को कॉपी करें। नीचे के रूप में हैंडलर.जेएस अपडेट करें:

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 लैम्ब्डा फ़ंक्शन एक ही क्षेत्र में होना चाहिए।
  • आरईएसटी एपीआई के लिए धन्यवाद, हमें डेटाबेस कनेक्शन प्रबंधित करने की आवश्यकता नहीं है और हमें किसी रेडिस क्लाइंट की आवश्यकता नहीं है।
  • अपना एपीआई टोकन सार्वजनिक रूप से साझा न करें। यदि गलती से लीक हो गया है, तो आप अपने डेटाबेस का पासवर्ड रीसेट करके इसे निरस्त कर सकते हैं।
  • यदि आप एक ही फ़ंक्शन में एकाधिक कमांड चलाना चाहते हैं, तो सर्वोत्तम प्रदर्शन के लिए पाइपलाइन API का उपयोग करें।

  1. फ़्लटर, सर्वरलेस फ्रेमवर्क और अपस्टैश (REDIS) के साथ फुलस्टैक सर्वर रहित ऐप - भाग 1

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

  1. सर्वर रहित रेडिस पर पाइपलाइन रेस्ट एपीआई

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

  1. रेडिस @ एज विद क्लाउडफ्लेयर वर्कर्स

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