Ravindra BagaleCourses & study guides English

Project: EventBridge, Lambda आणि DynamoDB ने Scheduled Cleanup Job बनवा (Source Code)

रात्री जुने sessions/logs delete. EventBridge cron → Lambda → DynamoDB cleanup.

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

  • EventBridge schedule
  • delete/flag modes
  • Seed + verify
  • Rule disable + cleanup

1. रोजचं उदाहरण

हे का लागतं?

Lab rows छोटी; production वाढतं. Nightly job table healthy ठेवतं.

हे काय आहे?

Lab: rate/cron → Scan → delete/archive.

Download: scheduled-cleanup.zip

2. Lab

कसं करायचं (step by step)

A. Table + seed

  1. Table PK itemId.
  2. Seed — काही rows जुन्या.

B. Lambda + rule

  1. Env TABLE_NAME, MAX_AGE, MODE.
  2. Rule rate(5 minutes) → Lambda.
  3. Invoke + logs + row count.

Ravindra Bagale's Tip

Lab नंतर rule लगेच disable/delete.

Cleanup

  1. Rule, Lambda, table, role.

3. Interview

प्र. EventBridge का?

Idle server नको.

प्र. Scan?

Lab ठीक; production TTL/GSI.

प्र. delete vs flag?

Flag = audit; delete = free.

प्र. Idempotent?

दुसऱ्या run ला safe.

प्र. Cleanup?

आधी rule.

घरी करून बघा

  1. MODE=flag.
  2. TTL add करा.

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

  1. EventBridge → Lambda → cleanup.
  2. Schedule disable.
  3. Expiry साठी TTL.
  4. Cleanup.

सराव Tasks

या scenario बद्दल

Maple Leaf Books हा टोरांटो मधला पुस्तक विक्री व्यवसाय आहे. Emily Tremblay त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CAD मध्ये मोजले जातात आणि AWS resources ca-central-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 12

सोपं Functions ची list

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

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

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

मध्यम Function invoke करा

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

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

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

मध्यम Lambda role साठी trust policy

का: Trust policy role कोण घेऊ शकतो ते सांगते.

काय करायचं: lambda.amazonaws.com ला role assume करू देणारी trust policy लिहा.

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

मध्यम Item टाका

का: DynamoDB JSON प्रत्येक value चा type दाखवतो: S string, N number.

काय करायचं: mapleleafbooks-orders मध्ये orderId "o-101" (string) व amount 2500 (number) असलेला item टाका.

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

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

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

काय करायचं: mapleleafbooks-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 ला 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 function बनवा

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

काय करायचं: mapleleafbooks-orders-fn function बनवा: runtime python3.12, handler app.handler, role arn:aws:iam::102932412000: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 बाहेर ठेवा.

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

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

अवघड JSON payload सह invoke करा

का: CLI v2 मध्ये raw JSON साठी --cli-binary-format raw-in-base64-out लागतो.

काय करायचं: mapleleafbooks-orders-fn ला payload {"orderId":"o-101"} (raw JSON) सह invoke करा व उत्तर out.json मध्ये.

कसं करायचं:
  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 दाबा.

अवघड SQS queue Lambda ला जोडा

का: Event source mapping मुळे Lambda queue poll करून batches मध्ये messages process करतो.

काय करायचं: Queue arn:aws:sqs:ca-central-1:102932412000:mapleleafbooks-orders पासून mapleleafbooks-orders-fn ला batch size 10 सह event source mapping बनवा.

कसं करायचं:
  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 लागते.

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

कसं करायचं:
  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: Scheduled cleanup job. जुने sessions रात्री delete. EC2 वर while-loop instance सोबत मरतो. EventBridge schedule → Lambda → जुने items delete/archive. Table + Lambda + cron 9 PM IST. Seed → rule/Test → rows गेले; rule disable.
उजळणी card: Scheduled cleanup job · PNG download करा · Card page उघडा
उजळणी card: EventBridge Scheduler का?. Laptop cron sleep मध्ये बंद. Cloud schedule चालू राहतो. EventBridge cron/rate + timezone ने target invoke. Schedule → cron → IST → Lambda target. Logs मध्ये ~21:00 IST START.
उजळणी card: EventBridge Scheduler का? · PNG download करा · Card page उघडा
उजळणी card: Cleanup वर Scan खबरदारी. Scan संपूर्ण table वाचतो; table मोठी तशी महाग. Lab Scan OK. Production = GSI/TTL. TTL किंवा date GSI pages. 100 items = एक page; 10 GB ना आधी key design.
उजळणी card: Cleanup वर Scan खबरदारी · PNG download करा · Card page उघडा
तुलना: DynamoDB TTL vs EventBridge + Lambda delete. DynamoDB TTL: Expire झालेले DynamoDB background delete. EventBridge + Lambda delete: Schedule वर Lambda delete/archive.
तुलना: DynamoDB TTL vs EventBridge + Lambda delete · PNG download करा · Card page उघडा
मुलाखत card: EC2 loop ऐवजी EventBridge का?. Instance stop = cron मेला; idle bill; patching तुमची. Schedule लाच invoke — serverless ops. 9 PM IST cron → Lambda.
मुलाखत card: EC2 loop ऐवजी EventBridge का? · PNG download करा · Card page उघडा
मुलाखत card: Cleanup Lambda ऐवजी TTL कधी?. फक्त expiresAt ने eventual delete; archive logic नको. TTL free background; exact alarm नाही. Tokens: expiresAt + TTL enable.
मुलाखत card: Cleanup Lambda ऐवजी TTL कधी? · PNG download करा · Card page उघडा

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