अमेज़ॅन एपीआई गेटवे के साथ काम करना
AWS लाम्बा समारोह पर आमंत्रित किया जा सकता है HTTPSयूआरएल। यह GET, POST, PUT पर किया जा सकता है। जब HTTPS url का आह्वान किया जाता है, तो AWS लैम्ब्डा फ़ंक्शन भी ट्रिगर हो सकता है और HTTPS का उपयोग करते हुए डेटा पास हो जाता हैget/post AWS लैम्ब्डा के अंदर उपलब्ध कराया जा सकता है, जिसका उपयोग डायनमोबडी में डालने या मेल भेजने के लिए किया जा सकता है।
इस अध्याय में AWS लैम्ब्डा और एपीआई गेटवे के साथ काम में शामिल विभिन्न प्रक्रियाओं के बारे में विस्तार से चर्चा की गई है।
प्रक्रियाएं शामिल हैं
निम्नलिखित प्रक्रियाएं AWS लैम्ब्डा और एपीआई गेटवे के साथ काम करने में शामिल हैं -
- अनुमति के लिए IAM भूमिका बनाएँ
- AWS लंबो फ़ंक्शन बनाएँ
- एपीआई गेटवे बनाएं
- लिंक लाम्बा फंक्शन को एपी गेटवे तक
- एपीआई गेटवे के लिए डेटा पास करना
एक मूल आरेख जो एपीआई गेटवे और AWS लैम्ब्डा के कामकाज की व्याख्या करता है, उसे यहां दिया गया है -

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

IAM पर जाएं और सेलेक्ट करें Roles नीचे दिखाए गए अनुसार बाईं ओर अनुभाग -

क्लिक करें Create role लाम्बा समारोह के लिए।

लैम्ब्डा चुनें और क्लिक करें Permissionsतल पर। एपीआई गेटवे और लैंबडा के लिए आवश्यक अनुमति का चयन करें।

खोज में एपीआई गेटवे की खोज करें और यह आपको सभी संबंधित अनुमतियों को सूचीबद्ध करेगा। हमने नीचे दिखाए गए अनुसार एपीआई गेटवे तक पूर्ण पहुंच को चुना है -

अब, एपीआई गेटवे की खोज करें और यह आपको सभी संबंधित अनुमतियों को सूचीबद्ध करेगा। हमने नीचे दिखाए गए अनुसार एपीआई गेटवे तक पूर्ण पहुंच को चुना है -

आपको नीतियों के लिए भी यही प्रक्रिया दोहरानी होगी।

एक बार जब आप आवश्यक नीतियां चुन लेते हैं, तो क्लिक करें Reviewअगले कदम के लिए। अपनी पसंद के अनुसार भूमिका का नाम नीचे दिखाए अनुसार दर्ज करें -

यह भूमिका से जुड़ी नीतियों को प्रदर्शित करता है। क्लिक करेंCreate role और हम भूमिका निर्माण के साथ किए जाते हैं और लंबोदर फ़ंक्शन के साथ आगे बढ़ सकते हैं।
AWS लाम्बा फंक्शन बनाएं
AWS सेवाओं पर जाएं और इसे एपीआई गेटवे से जोड़ने के लिए एक फ़ंक्शन बनाने के लिए lambda सेवा पर क्लिक करें।

लैम्बडा फ़ंक्शन के लिए यूआई स्क्रीन नीचे दिखाया गया है। क्लिक करेंCreate function लैम्बडा फ़ंक्शन के निर्माण के लिए आगे बढ़ने के लिए बटन।

फ़ंक्शन का नाम दर्ज करें और मौजूदा भूमिका चुनें जो हमने ऊपर बनाई है।

यह एक संदेश फ्लैश करता है कि नाम के साथ फ़ंक्शन lambdawithapigateway सफलतापूर्वक बनाया गया है।

ध्यान दें कि यहां हम उपयोग करेंगे nodejsकोड लिखने के लिए रनटाइम। AWS कोड के साथhelloworld संदेश नीचे दिखाया गया है -

AWS लैम्ब्डा कोड में मौजूद है index.jsफ़ाइल। हैंडलर नाम के फंक्शन का नाम परम हैevents, context तथा callback।
कॉलबैक फ़ंक्शन में मूल रूप से त्रुटि और सफलता संदेश है। ध्यान दें कि यहां हमारे पास कोई त्रुटि से संबंधित कोड नहीं है, इसलिए अशक्त है और सफलता संदेश हैHelloWorld from lambda.
अंत में, जोड़े गए परिवर्तनों को सहेजें और हमें एपीआई गेटवे में लैम्ब्डा फ़ंक्शन जोड़ने के लिए आगे बढ़ें।
एपीआई गेटवे बनाएं
अपने AWS खाते में लॉगिन करें और नीचे दिखाए अनुसार API गेटवे खोलें -

एपीआई गेटवे पर क्लिक करें और यह आपको स्क्रीन पर ले जाएगा जहां नया एपीआई गेटवे बनाया जा सकता है।

क्लिक करें Create API और नीचे दिखाए अनुसार विवरण जोड़ें -

दबाएं Create APIस्क्रीन के दाईं ओर बटन। यह स्क्रीन के बाईं ओर नव निर्मित एपीआई प्रदर्शित करेगा।

दबाएं Actions एपीआई के लिए एक नया संसाधन बनाने के लिए ड्रॉपडाउन।

अब, नीचे दिखाए अनुसार एक नया संसाधन बनाएं -

प्रवेश करें Resource Nameजैसा की नीचे दिखाया गया। आपको अंत में बनाए गए url में दर्ज किए गए संसाधन का नाम दिखाई देगा। क्लिक करेंCreate Resource और आप इसे स्क्रीन पर निम्नानुसार देखेंगे -


जोड़ना GET/POSTनीचे दिखाए गए अनुसार संसाधन के तरीके। से विधि का चयन करेंActions ड्रॉप डाउन।

दबाएं GET एपीआई में विधि जोड़ने की विधि।

अगला चरण एकीकरण है जो इसे लैम्ब्डा फ़ंक्शन के साथ एकीकृत करेगा। अब इसमें नीचे दिए गए अनुसार लंबोदा फंक्शन जोड़ें -

लिंक लमबा फंक्शन को एपीआई गेटवे से लिंक करें
पहले बनाए गए लंबोदा फ़ंक्शन का चयन करें।

परिवर्तन सहेजें और आप नीचे दिखाए अनुसार अनुमति के लिए एक संवाद बॉक्स देख सकते हैं -

क्लिक करें OKअनुमति के लिए। यह एपीआई गेटवे HTTP अनुरोध और लैम्ब्डा फ़ंक्शन के बीच निष्पादन विवरण है -

अब, एपीआई गेटवे परिवर्तनों को लागू करते हैं। इस उद्देश्य के लिए, हमें चयन करने की आवश्यकता हैDeploy API से Actions नीचे दिखाया गया है -

चुनते हैं Deploy API। यह तैनाती राज्य के लिए पूछेगा। चुनते हैंNew Stage परिनियोजन चरण ड्रॉपडाउन से और के रूप में मंच का नाम जोड़ें Production।

क्लिक करें Deploy बटन और यह आपको नीचे दिखाए गए अनुसार url पर रीडायरेक्ट करेगा -

को चुनिए GETurl प्राप्त करने के लिए बाईं ओर से विधि। संदेश को देखने के लिए एक नए टैब में url खोलें।

यह AWS लैम्ब्डा और AWS एपीआई गेटवे के साथ काम करने का एक मूल उदाहरण है। उपरोक्त उदाहरण में, हमने लैम्बडा फ़ंक्शन में संदेश को हार्डकोड किया है।
अब, हम एपीआई गेटवे से संदेश का विवरण लेते हैं। यदि HTTPS कॉल को किसी भिन्न डोमेन से कॉल किया जाना है, तो उदाहरण के लिए AJAX को API में कॉल करें, हमें बनाए गए API गेटवे के लिए CORS को सक्षम करना होगा।
एपीआई के लिए बनाए गए स्रोत का चयन करें और क्लिक करें Actions ड्रॉपडाउन -

अभी, Enable CORS निम्नलिखित स्क्रीन खोलेंगे -

आप कोबल को सक्षम करने के लिए कुछ विधियों का उपयोग कर सकते हैं। Access-Control-Allow-Origin के रूप में चिह्नित किया गया है * इसका मतलब है कि यह किसी भी डोमेन से एपीआई गेटवे से सामग्री प्राप्त करने की अनुमति देगा।
आप उस डोमेन नाम को भी निर्दिष्ट कर सकते हैं जिसे आप एपीआई के साथ काम करना चाहते हैं। क्लिक करेंEnable CORS and replace existing CORS headers बटन और यह पुष्टि संदेश प्रदर्शित करेगा जैसा कि नीचे दिखाया गया है -

क्लिक करें Yes, replace existing valuesइसे सक्षम करने के लिए बटन। Enable CORS स्क्रीन नीचे दिखाया गया है -

एपीआई गेटवे को डेटा पास करना
एपीआई गेटवे में निर्मित एपीआई खोलें displayhelloworld जैसा कि नीचे दिखाया गया है -

क्लिक करें Integration Request नीचे दिखाए अनुसार डेटा भेजने के लिए -

चुनें Body Mapping Templates और जोड़ें Content-Type इस उदाहरण के लिए application/json। जोड़े गए कंटेंट टाइप पर क्लिक करें विवरण इस प्रकार है -

अब, JSON प्रारूप में टेम्प्लेट जोड़ें जैसा कि नीचे दिखाया गया है -

निरीक्षण करें कि हमने एपीआई गेटवे से डेटा प्राप्त करने और इसे एडब्ल्यूएस लैंबडा के साथ साझा करने के लिए पैरामीटर के रूप में संदेश लिया है। विवरण प्राप्त करने के लिए सिंटैक्स ऊपर दिखाया गया है।
अब, एपीआई गेटवे URL पर उपलब्ध परिवर्तन करने के लिए एपीआई को तैनात करें। इसके लिए, हमें API गेटवे URL के आधार पर डेटा प्रदर्शित करने के लिए लैम्ब्डा फ़ंक्शन को बदलना होगा। लैम्ब्डा फ़ंक्शन के लिए कोड नीचे दिया गया है। ध्यान दें कि हम ईवेंट से संदेश ले रहे हैं और कॉलबैक पर जा रहे हैं।
exports.handler = (event, context, callback) => {
let message = event.message;
callback(null, message);
};
अब, लैम्ब्डा में परिवर्तनों को सहेजें और परिवर्तनों को देखने के लिए URL को हिट करें। नीचे दिए गए स्क्रीनशॉट को ध्यान से देखें -

नीचे दिखाए अनुसार URL पर क्लिक करें -
https://rw2ek1xung.execute-api.us-east-
1.amazonaws.com/prod/hello?message=hello%20from%20api%20gateway
निरीक्षण करें कि यहाँ हम GET url को क्वेरी स्ट्रिंग के रूप में संदेश भेज रहे हैं। फिर आप नीचे दिखाए अनुसार आउटपुट का निरीक्षण कर सकते हैं -

यह URL से संदेश को भेजे गए विवरण को पढ़ता है और ब्राउज़र में समान दिखाता है।