๐Ÿš€AWS Lambda S3 ํŒŒ์ผ ์—…๋กœ๋“œ ๋กœ๊ฑฐ (Python ์‚ฌ์šฉ)

๋ฐœํ–‰: (2026๋…„ 2์›” 2์ผ ์˜ค์ „ 01:50 GMT+9)
2 min read
์›๋ฌธ: Dev.to

Source: Dev.to

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Python์„ ์‚ฌ์šฉํ•œ AWS Lambda ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ Amazon S3 ๋ฒ„ํ‚ท์— ํŒŒ์ผ์ด ์—…๋กœ๋“œ๋  ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ ์—…๋กœ๋“œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด AWS ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•œ ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธโ€‘๋“œ๋ฆฌ๋ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํ๋ฆ„

  • ํŒŒ์ผ์ด S3 ๋ฒ„ํ‚ท์— ์—…๋กœ๋“œ๋จ
  • S3๊ฐ€ AWS Lambda๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•จ
  • Lambda๊ฐ€ ํŒŒ์ผ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•จ
  • ๋กœ๊ทธ๊ฐ€ CloudWatch์— ์ €์žฅ๋จ

์‚ฌ์šฉ๋œ ์„œ๋น„์Šค

  • Amazon S3
  • AWS Lambda (Python)
  • Amazon CloudWatch

Lambda ํ•จ์ˆ˜ (Python)

def lambda_handler(event, context):
    record = event['Records'][0]
    bucket_name = record['s3']['bucket']['name']
    file_name = record['s3']['object']['key']
    file_size = record['s3']['object']['size']

    print(f"Bucket Name: {bucket_name}")
    print(f"File Name: {file_name}")
    print(f"File Size: {file_size} bytes")

CloudWatch ๋กœ๊ทธ ์ถœ๋ ฅ

S3 ๋ฒ„ํ‚ท์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•œ ํ›„, Lambda ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋กœ๊ทธ๋ฅผ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค:

  • ๋ฒ„ํ‚ท ์ด๋ฆ„
  • ํŒŒ์ผ ์ด๋ฆ„
  • ํŒŒ์ผ ํฌ๊ธฐ

์ด๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub Repository

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

AI๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ€์ฒดํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค โ€” ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์šฐ๋ฆฌ์˜ ์‚ฌ๊ณ ๋ฅผ ์•„์›ƒ์†Œ์‹ฑํ•˜๊ณ  ์žˆ๋‹ค

AI์˜ ์œ ํ˜น > ๋‚˜๋Š” React ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ณ  ์žˆ์—ˆ๊ณ , ์ด์ „์— ์ˆ˜์‹ญ ๋ฒˆ ํ•ด๊ฒฐํ–ˆ๋˜ stateโ€‘management ๋ฌธ์ œ์˜€๋‹ค. ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ถ”์ ํ•˜๊ณ โ€ฆ

์ž๋™ํ™”๋œ ์ฝ”๋“œ ํ’ˆ์งˆ: SonarQube Quality Gates๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋” ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ตฌํ˜„

Quality Gate๋ž€ ๋ฌด์—‡์ธ๊ฐ€? Quality Gate๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ณ‘ํ•ฉ๋˜๊ธฐ ์ „์— ์ถฉ์กฑํ•ด์•ผ ํ•˜๋Š” ์ผ๋ จ์˜ boolean ์กฐ๊ฑด์ด๋ฉฐ, ์ด๋Š” ์—ฌ๋Ÿฌ๋ถ„์˜ โ€ฆ์— ๋Œ€ํ•œ โ€œStop/Goโ€ ์‹ ํ˜ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.