Ravindra BagaleCourses & study guides English

Amazon API Gateway म्हणजे काय? REST vs HTTP vs WebSocket

तुमची Lambda Test बटणाने चालते. Browser आणि mobile ते बटण call करू शकत नाहीत. त्यांना HTTPS URL, /notes सारखे routes, GET/POST methods हवेत. Amazon API Gateway तो front door. हा chapter REST vs HTTP vs WebSocket आणि Lambda एकटी का expose करू नये हे सांगतो.

या chapter मध्ये तुम्ही काय शिकाल

  • Public HTTPS front door का लागतो
  • API Gateway काय आहे
  • REST vs HTTP vs WebSocket APIs
  • Routes, methods आणि stages
  • Interview मध्ये वापरता येणारा comparison table

1. गोष्ट: काउंटर नसलेली दुकान

Aniket ने आजची menu JSON देणारी Lambda बनवली. React app मध्ये Lambda invoke URL paste केली. Fail: CORS, auth अवघड, URL तात्पुरत्या SDK endpoint सारखी. इतर network वरील friends नीट call करू शकले नाहीत.

त्याने पुढे API Gateway ठेवला. आता app https://api.hisdomain.com/menu call करते. Gateway route तपासतो, HTTPS, API keys/JWT, मगच Lambda invoke.

2. Amazon API Gateway म्हणजे काय?

हे का लागतं?

Lambda = compute. पूर्ण HTTP product नाही. Edge वर TLS, routing, throttling आणि बहुतेकदा auth हवं.

हे काय आहे?

Amazon API Gateway म्हणजे APIs साठी managed front door. Clients HTTP(S) किंवा WebSocket Gateway कडे पाठवतात; Gateway Lambda, HTTP backends किंवा इतर AWS services कडे पाठवतो.

Browser ते Lambda Gateway मधूनBrowserGET /notesAPI Gateway stageauth + route matchIntegrationLambda ला AWS_PROXYLambdaJSON परतGatewaybrowser ला HTTP response
HTTPS URL Gateway ची. Lambda AWS मध्ये private.

3. REST vs HTTP vs WebSocket

हे का लागतं?

API Gateway छत्राखाली तीन API products. चुकीचं निवडलं तर पैसे जास्त किंवा feature मिळत नाही.

हे काय आहे?

FeatureHTTP APIREST APIWebSocket API
Best forसोपे Lambda/HTTP proxies, कमी खर्च, कमी latencyAPI keys, usage plans, validation, WAF, private APIs, cachingChat, live dashboards, games — दीर्घ connections
HTTPS routesYesYesWebSocket वर upgrade
API keys + usage plansNoYesNo
AWS WAFNoYesNo
JWT / OIDC authorizerYesYes (also Lambda authorizer)Yes (some options)
Price (अंदाजे, us-east-1)सुमारे $1.00 / million (पहिला tier)सुमारे $3.50 / million (पहिला tier)Messages + connection minutes
नव्या serverless APIs साठी defaultहो, REST-only features नसतील तरAPI management features हव्यात तेव्हाClient कडे push हवं तेव्हा

Ravindra Bagale's Tip

बहुतेक student/startup serverless APIs साठी HTTP API ने सुरू करा. API keys, usage plans, WAF किंवा private API हवे असल्यास REST.

4. Routes, methods आणि stages

हे काय आहे?

  • Route = path pattern, उदा. GET /notes किंवा GET /notes/{id}.
  • Method = GET, POST, PUT, PATCH, DELETE, OPTIONS.
  • Integration = Gateway request कुठे पाठवतो (Lambda proxy सामान्य).
  • Stage = API ची named copy, उदा. dev/prod, स्वतःची URL आणि throttling. HTTP APIs सहसा $default stage.

Lambda proxy integration म्हणजे Gateway पूर्ण HTTP request JSON म्हणून Lambda ला देतो, आणि function statusCode, headers, body परत करते. पुढच्या chapter च्या lab मध्ये हाच pattern.

5. Browser मधून Lambda थेट का call करू नये?

  1. Gateway इतकी स्वच्छ स्थिर/custom domain story नाही.
  2. Auth, throttling, API keys, WAF Gateway कडे (विशेषतः REST).
  3. Browser मध्ये AWS credentials किंवा जटिल signing — security smell.
  4. CORS आणि HTTP semantics Gateway वर सोपे.

6. Interview questions

प्र. API Gateway म्हणजे?

HTTP आणि WebSocket APIs साठी managed front door जो Lambda व backends invoke करतो.

प्र. HTTP vs REST?

HTTP: स्वस्त, जलद, Lambda proxy; कमी management. REST: API keys, usage plans, WAF, caching, private APIs.

प्र. Stage म्हणजे?

API ची named deployment (dev/prod) स्वतःच्या URL आणि settings सह.

प्र. Lambda proxy integration?

Gateway कच्चा HTTP request Lambda ला; Lambda statusCode, headers, body परत.

प्र. WebSocket कधी?

Server ला long-lived connection वर client कडे push करायचं असेल (chat, live scores).

घरी करून बघा

  1. Console मध्ये API Gateway उघडा, असलेल्या APIs HTTP/REST/WebSocket आहेत का लिहा.
  2. अधिकृत HTTP vs REST table एकदा वाचा आणि तीन bullets लिहा.

थोडक्यात सांगायचं तर

  1. API Gateway = Lambda पुढचा HTTPS front door.
  2. बहुतेक serverless साठी HTTP; management साठी REST; push साठी WebSocket.
  3. Routes + methods + stages तुमच्या app ची URL ठरवतात.
  4. Browser मधून Lambda invoke URLs थेट call करू नका.

सराव Tasks

या scenario बद्दल

Pune Fintech Labs हा पुणे मधला वित्त व्यवसाय आहे. Rohan Kulkarni त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 12

सोपं एक function invoke

का: Caller ने फक्त लागणारा function invoke करावा.

काय करायचं: फक्त arn:aws:lambda:ap-south-1:105420458853:function:punefintech-orders-fn वर lambda:InvokeFunction allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

सोपं Functions ची list

का: या Region मध्ये कोणते functions आहेत ते पाहा.

काय करायचं: ap-south-1 मधले Lambda functions दाखवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम REST API बनवा

का: REST APIs API keys, usage plans व request validation देतात.

काय करायचं: punefintech-rest नावाची REST API बनवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम REST API stage वर deploy करा

का: REST API चे बदल stage वर deployment नंतरच live होतात.

काय करायचं: REST API a1b2c3d4e5 prod stage वर deploy करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Timeout व memory बदला

का: जास्त memory म्हणजे जास्त CPU; timeout अडकलेले runs थांबवतो.

काय करायचं: punefintech-orders-fn चा timeout 30 seconds व memory 512 MB करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Function invoke करा

का: Invoke function आत्ता चालवतो व उत्तर file मध्ये ठेवतो.

काय करायचं: punefintech-orders-fn invoke करा व response out.json मध्ये ठेवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Function ला logs लिहू द्या

का: या actions शिवाय Lambda logs CloudWatch मध्ये दिसत नाहीत.

काय करायचं: फक्त arn:aws:logs:*:*:* वर logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

अवघड Lambda साठी HTTP API quick-create

का: Quick create HTTP API, default route व stage बनवतो.

काय करायचं: punefintech-api नावाची HTTP API बनवा जिचा target arn:aws:lambda:ap-south-1:105420458853:function:punefintech-orders-fn.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड S3 ला function call करू द्या

का: S3 function invoke करण्याआधी resource-based permission लागते.

काय करायचं: punefintech-orders-fn ला s3invoke permission statement द्या: s3.amazonaws.com ने bucket arn:aws:s3:::punefintech-uploads कडून lambda:InvokeFunction करावं.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Lambda GB-seconds

का: Lambda memory × time bill करतो.

काय करायचं: 1,000,000 invocations, 512 MB, प्रत्येकी 200 ms. किती GB-seconds?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड Lambda function बनवा

का: Lambda ला code zip, runtime, handler नाव व execution role लागतो.

काय करायचं: punefintech-orders-fn function बनवा: runtime python3.12, handler app.handler, role arn:aws:iam::105420458853:role/lambda-basic, code function.zip मध्ये.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Environment variables द्या

का: Table नावांसारख्या settings code बाहेर ठेवा.

काय करायचं: punefintech-orders-fn वर environment variable TABLE=punefintech-orders द्या.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: Lambda पुढे API Gateway का. Browser कडे AWS credentials किंवा स्वतःचे routing नको. API Gateway = HTTPS front door: routes, auth, throttle, stages. HTTP API → route → Lambda integrate → invoke URL copy. Static site वरून fetch(API+"/hello") → Gateway → Lambda.
उजळणी card: Lambda पुढे API Gateway का · PNG download करा · Card page उघडा
उजळणी card: HTTP API vs REST API. दोन नावांनी गोंधळ. Features आणि price ने निवडा. HTTP APIs स्वस्त/सोप्या. REST = API keys, WAF, private APIs. नवीन serverless JSON → HTTP API, REST-only features नसतील तर. Notes lab = HTTP API. Keys असलेलं partner API = REST.
उजळणी card: HTTP API vs REST API · PNG download करा · Card page उघडा
उजळणी card: WebSocket APIs कधी. Chat/live boards ना push; एकदाचा request/response नाही. WebSocket connection ठेवतो; $connect, $disconnect, messages. WebSocket API → Lambda routes → connection ids manage. Teacher सर्व open student connections ना quiz update push.
उजळणी card: WebSocket APIs कधी · PNG download करा · Card page उघडा
उजळणी card: Routes, methods आणि stages. Dev आणि prod चुकून एक URL शेअर करू नये. Route = method + path. Stage = named deployment (dev/prod). GET /notes, POST /notes; $default किंवा prod deploy. prod URL students ना; dev private.
उजळणी card: Routes, methods आणि stages · PNG download करा · Card page उघडा
तुलना: HTTP API vs REST API. HTTP API: स्वस्त, सोपी Lambda/HTTP proxy. REST API: जास्त API management features.
तुलना: HTTP API vs REST API · PNG download करा · Card page उघडा
तुलना: REST/HTTP API vs WebSocket API. REST/HTTP API: एक request, एक response. WebSocket API: Long-lived push connection.
तुलना: REST/HTTP API vs WebSocket API · PNG download करा · Card page उघडा
मुलाखत card: Public SPA मधून Lambda Function URLs कायम का call करू नये?. Routing, usage plans, central auth patterns कमी पडतात. Public front door सहसा API Gateway (किंवा CloudFront+auth). Simple private tools → Function URL; public apps → Gateway.
मुलाखत card: Public SPA मधून Lambda Function URLs कायम का call करू नये? · PNG download करा · Card page उघडा
मुलाखत card: Lambda proxy integration म्हणजे काय?. Gateway HTTP request Lambda ला देतो; statusCode, headers, body return. जवळजवळ सर्व serverless REST/HTTP handlers साठी एक pattern. return {statusCode:200, headers:{…}, body: JSON.stringify(x)}.
मुलाखत card: Lambda proxy integration म्हणजे काय? · PNG download करा · Card page उघडा
मुलाखत card: REST ऐवजी HTTP API कधी?. Lambda/HTTP proxy, CORS, JWT — keys/WAF/private नको असल्यास. Student/startup APIs साठी स्वस्त आणि सोपं. API keys + usage plans → REST.
मुलाखत card: REST ऐवजी HTTP API कधी? · PNG download करा · Card page उघडा
मुलाखत card: API stage म्हणजे काय?. API ची named snapshot/deployment — स्वतःची URL आणि settings. Dev traffic prod पासून वेगळं. dev वर test नंतरच prod deploy.
मुलाखत card: API stage म्हणजे काय? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.