API development

AWS पर एप्लिकेशन विकसित करना

Ricardo Sueiras

Principal Technologist

API Gateway इंटीग्रेशन

 

API Gateway इंटीग्रेशन

  • कई बैकएंड इंटीग्रेशन विकल्प
  • HTTP: कोई भी पब्लिकली रूटेबल एंडपॉइंट
  • AWS सर्विस APIs जैसे DynamoDB या SNS
  • Lambda फंक्शंस
  • VPC लिंक्स से प्राइवेट रिसोर्सेज
  • बिना रियल बैकएंड के मॉक रिस्पॉन्सेज
AWS पर एप्लिकेशन विकसित करना

इंटीग्रेशन टाइप: प्रॉक्सी

 

API इंटीग्रेशन प्रकार

  • इंटीग्रेशन टाइप तय करता है API Gateway का नियंत्रण
  • प्रॉक्सी टाइप: AWS_PROXY और HTTP_PROXY
  • पूरा HTTP रिक्वेस्ट सीधे बैकएंड को भेजा जाता है
  • API Gateway ट्रांसपेरेंट पास-थ्रू रहता है
  • बैकएंड रिस्पॉन्स बनाता है
AWS पर एप्लिकेशन विकसित करना

इंटीग्रेशन टाइप: नॉन-प्रॉक्सी

  • नॉन-प्रॉक्सी टाइप: AWS और HTTP
  • आप रिक्वेस्ट/रिस्पॉन्स ट्रांसफॉर्मेशन कॉन्फ़िगर करते हैं
  • मैपिंग टेम्पलेट्स से संचालित
  • टेम्पलेट्स Velocity Template Language (VTL) में लिखे जाते हैं

 

API इंटीग्रेशन प्रकार

AWS पर एप्लिकेशन विकसित करना

रिक्वेस्ट वेलिडेशन

 

रिक्वेस्ट वेलिडेशन

  • बैकएंड तक पहुँचने से पहले रिक्वेस्ट वेलिडेट करें
  • मिसिंग आवश्यक फ़ील्ड्स पकड़ें
  • अमान्य JSON फ़ॉर्मैट पकड़ें
  • गलत पैरामीटर टाइप पकड़ें
  • फेल होने पर आमतौर पर 400 Bad Request मिलता है
AWS पर एप्लिकेशन विकसित करना

रिक्वेस्ट वेलिडेशन

 

रिक्वेस्ट वेलिडेशन

  • वेलिडेशन इन पर हो सकता है:
    • हेडर्स
    • क्वेरी स्ट्रिंग पैरामीटर्स
    • रिक्वेस्ट बॉडी
    • JSON स्कीमा
AWS पर एप्लिकेशन विकसित करना

रिक्वेस्ट वेलिडेशन

 

রিক्वेस्ट वेलिडेशन

  • वेलिडेशन के फायदे:
    • अमान्य बैकएंड रिक्वेस्ट घटते हैं
    • Lambda एक्ज़िक्यूशन लागत घटती है
    • API विश्वसनीयता बढ़ती है
AWS पर एप्लिकेशन विकसित करना

ट्रांसफॉर्मेशन

  • बैकएंड कोड बदले बिना रिक्वेस्ट/रिस्पॉन्स का रूप बदलें
    • पेलोड स्ट्रक्चर बदलिए
    • फ़ील्ड्स का नाम बदलें
    • हेडर्स ट्रांसफॉर्म करें
    • डेटा फ़ॉर्मैट्स कन्वर्ट करें
    • इम्प्लिमेंटेशन डिटेल्स छिपाएँ
  • VTL मैपिंग टेम्पलेट्स से संचालित

 

API ट्रांसफॉर्मेशन

AWS पर एप्लिकेशन विकसित करना

एरर हैंडलिंग

 

API errors

  • दो प्रकार की एरर्स
    • गेटवे एरर्स: API Gateway द्वारा उठाई गई
    • इंटीग्रेशन एरर्स: बैकएंड फेल्यर्स
  • आम गेटवे एरर्स:
    • 400 Bad Request: रिक्वेस्ट वेलिडेशन फेल
    • 429 Too Many Requests: थ्रॉटलिंग लिमिट पार
AWS पर एप्लिकेशन विकसित करना

एरर हैंडलिंग

 

API errors

  • आम इंटीग्रेशन एरर्स:
    • 502 Bad Gateway: खराब/गलत रिस्पॉन्स
    • 503 Service Unavailable: बैकएंड अनुपलब्ध या ओवरलोडेड
    • 504 Gateway Timeout: 29-सेकंड टाइमआउट पार
    • Regional और Private REST APIs 29 सेकंड से अधिक बढ़ा सकते हैं
AWS पर एप्लिकेशन विकसित करना

लॉगिंग

  • एक्ज़िक्यूशन लॉग्स और CloudWatch मेट्रिक्स ट्रबलशूटिंग की कुंजी हैं
  • API Gateway CloudWatch से इंटीग्रेट करता है:
    • लॉग्स
    • मेट्रिक्स
    • एक्ज़िक्यूशन ट्रेसिंग

 

 

API ऑब्ज़र्वेबिलिटी

AWS पर एप्लिकेशन विकसित करना

लॉगिंग

  • CloudWatch लॉग्स से आप ट्रबलशूट कर सकते हैं:
    • फेल्ड इंटीग्रेशन
    • ट्रांसफॉर्मेशन एरर्स
    • ऑथराइज़ेशन फेल्यर्स
    • Lambda एक्ज़िक्यूशन इश्यूज़

 

 

API ऑब्ज़र्वेबिलिटी

AWS पर एप्लिकेशन विकसित करना

स्टेज़: एन्वायरनमेंट्स में APIs मैनेज करना

 

स्टेज़

  • एक API परिभाषा कई एन्वायरनमेंट्स को सर्व करती है
  • API Gateway इन्हें स्टेज़ से मैनेज करता है
AWS पर एप्लिकेशन विकसित करना

स्टेज़: एन्वायरनमेंट्स में APIs मैनेज करना

 

स्टेज़

  • एक API परिभाषा कई एन्वायरनमेंट्स को सर्व करती है
  • API Gateway इन्हें स्टेज़ से मैनेज करता है
  • एक स्टेज़ नामित रेफ़रेंस होता है
  • आपकी API कॉन्फ़िग के डिप्लॉयमेंट स्नैपशॉट की ओर इशारा करता है
AWS पर एप्लिकेशन विकसित करना

स्टेज़: एन्वायरनमेंट्स में APIs मैनेज करना

 

स्टेज़

  • एक API परिभाषा कई एन्वायरनमेंट्स को सर्व करती है
  • API Gateway इन्हें स्टेज़ से मैनेज करता है
  • एक स्टेज़ नामित रेफ़रेंस होता है
  • आपकी API कॉन्फ़िग के डिप्लॉयमेंट स्नैपशॉट की ओर इशारा करता है
  • आम स्टेज़ नाम:
    • Dev
    • Test
    • QA और Prod
AWS पर एप्लिकेशन विकसित करना

स्टेज़: एन्वायरनमेंट्स में APIs मैनेज करना

 

स्टेज़

  • एक API परिभाषा कई एन्वायरनमेंट्स को सर्व करती है
  • API Gateway इन्हें स्टेज़ से मैनेज करता है
  • एक स्टेज़ नामित रेफ़रेंस होता है
  • आपकी API कॉन्फ़िग के डिप्लॉयमेंट स्नैपशॉट की ओर इशारा करता है
  • आम स्टेज़ नाम: Dev, Test, QA, Prod
  • इनवोक URL हर स्टेज़ को दर्शाता है
AWS पर एप्लिकेशन विकसित करना

स्टेज़: एन्वायरनमेंट्स में APIs मैनेज करना

 

स्टेज़

  • एक API परिभाषा कई एन्वायरनमेंट्स को सर्व करती है
  • API Gateway इन्हें स्टेज़ से मैनेज करता है
  • एक स्टेज़ नामित रेफ़रेंस होता है
  • आपकी API कॉन्फ़िग के डिप्लॉयमेंट स्नैपशॉट की ओर इशारा करता है
  • आम स्टेज़ नाम: Dev, Test, QA, Prod
  • इनवोक URL हर स्टेज़ को दर्शाता है
  • तुरंत रोलबैक के लिए कई स्टेज़ एक ही डिप्लॉयमेंट की ओर पॉइंट कर सकते हैं
AWS पर एप्लिकेशन विकसित करना

स्टेज़: एन्वायरनमेंट्स में APIs मैनेज करना

 

स्टेज़

  • बदलाव तभी लाइव होते हैं जब किसी स्टेज़ पर डिप्लॉय किए जाएँ
AWS पर एप्लिकेशन विकसित करना

स्टेज़ क्षमताएँ

  • हर स्टेज़ अलग से कॉन्फ़िगर होता है
  • कॉन्फ़िगरेशन में स्टेज़ वेरिएबल्स शामिल हैं
  • स्टेज़ वेरिएबल्स की-वैल्यू पेयर्स होते हैं
  • एक ही डिप्लॉयमेंट को अलग बैकएंड्स पर रूट करें
  • एन्वायरनमेंट बदलने पर री-डिप्लॉय की ज़रूरत नहीं

 

stage

AWS पर एप्लिकेशन विकसित करना

स्टेज़ क्षमताएँ

  • कैनेरी डिप्लॉयमेंट्स
    • सिर्फ REST APIs
    • ट्रैफ़िक का प्रतिशत नए डिप्लॉयमेंट को भेजें
    • फुल रिलीज़ तक प्रमोट करें
    • रोलबैक के लिए कैनेरी हटाएँ

 

stage

AWS पर एप्लिकेशन विकसित करना

स्टेज़ क्षमताएँ

  • थ्रॉटलिंग
    • स्टेज़ लेवल पर सेट करें
    • सभी मेथड्स पर लागू, प्रति-मेथड ओवरराइड्स संभव

 

stage

AWS पर एप्लिकेशन विकसित करना

स्टेज़ क्षमताएँ

  • थ्रॉटलिंग
    • स्टेज़ लेवल पर सेट करें
    • सभी मेथड्स पर लागू, प्रति-मेथड ओवरराइड्स संभव
  • कैशिंग
    • सिर्फ REST APIs
    • बैकएंड रिस्पॉन्सेज स्टेज़ पर स्टोर होते हैं
    • क्लाइंट्स Cache-Control से बायपास कर सकते हैं
    • TTL 0 से 3600 सेकंड, डिफ़ॉल्ट 300

 

stage

AWS पर एप्लिकेशन विकसित करना

स्टेज़ क्षमताएँ

  • लॉगिंग के दो मोड हैं
    • एक्सेस लॉग्स
    • $context वेरिएबल्स से बनते हैं, CloudWatch लॉग ग्रुप को भेजे जाते हैं
    • एक्ज़िक्यूशन लॉग्स
    • पूरा रिक्वेस्ट और रिस्पॉन्स विवरण कैप्चर करते हैं

 

stage

AWS पर एप्लिकेशन विकसित करना

अभ्यास करते हैं!

AWS पर एप्लिकेशन विकसित करना

Preparing Video For Download...