๐ TypeScript๋ฅผ ์ฌ์ฉํ๋ AWS Lambda์ ์ต์์ ๋๊ธฐ
5068 ๋จ์ด awstypescriptcloudserverless
await
outside an async function์ ์ฌ์ฉํ ์ ์์ต๋๋ค.๊ฑฐ์ 2๋ ์ด ์ง๋ ํ์ Node.js ์ฝ๋๊ฐ ์ด์ ์ ํ์ฉํ์ง ์๋ ๊ฒ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. ๋ํ esbuild ๋๋ TypeScript์ ๊ฐ์ ๋ฒ๋ค๋ฌ ๋ฐ ์ปดํ์ผ๋ฌ์ ์ฌ์ฉ์ ๊ณ ๋ คํ ๋ ๊ตฌ์ฑ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํฉ๋๋ค.
์คํ ์ฑ๋ฅ
AWS Lambda์ ๊ฐ์ ์์ ํ๊ฒฝ์์ ์ฐ๋ฆฌ๊ฐ ๋จ์ถํ ์ ์๋ ๋ฐ๋ฆฌ์ด๋ ์๋ฒฝํ ์น๋ฆฌ์ ๋๋ค. Earlier this year AWS Lambda ๋ฐํ์์ Node.js 14+ ๊ธฐ๋ฅ์ ๋ํ ์ ์ฒด ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
(Principal Specialist Solutions Architect Serverless)๊ฐ his article์์ ์ค๋ช ํ๋ฏ์ด ์ฝ 45%์ ์ฑ๋ฅ ํฅ์์ ๋ณผ ์ ์์ต๋๋ค.
TypeScript๋ฅผ ES ๋ชจ๋๋ก ๋ณํ
AWS Lambda Serverless ๊ฐ๋ฐ ๋๊ตฌ์ ์กฐํฉ์ผ๋ก ์ด๋ฌํ ๊ฐ์ ์ฌํญ์ ์ฝ๊ฒ ํ์ฉํ ์ ์์ต๋๋ค.
๋ด ์๋ ๋ค์์ ์ฌ์ฉํฉ๋๋ค.
๋น๋ฐ ์์ค๋ ๋ค์ esbuild ์ต์ ์ ์ฌ์ฉํ์ฌ ํ์ฅ์๊ฐ
.mjs
์ธ Node.js ES ๋ชจ๋ ํ์ผ์ ์ถ๋ ฅํ๋๋ก esbuild๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์
๋๋ค.format: "esm"
outputFileExtension: ".mjs"
platform: "node"
target: "esnext"
์ด๋ฅผ ํตํด TypeScript์ ์์ ํ ์ ํ์ AWS Lambda ์ฝ๋๋ฅผ ๋ณด์ ํ๊ณ ํธ๋ค๋ฌ ๊ธฐ๋ฅ ์ธ๋ถ์์ ์คํ
await
์ ํ์ฉํ์ฌ ์๋น์ค ์๋น์์ ์๋ต ์๊ฐ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.๋ด GitHub์์ ์ ์ฒด ๋ฐ๋ชจ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์๋์๋ฅด๋ ๋ผ๋ฒจ๋ก / top-level-await-in-aws-lambda-with-typescript
๐ TypeScript, esbuild ๋ฐ Serverless Framework์ ํจ๊ป AWS Lambda์์ ์ต์์ await ์ฌ์ฉ
๐ TypeScript๋ฅผ ์ฌ์ฉํ๋ AWS Lambda์ ์ต์์ await
์ด ์ ์ฅ์๋ TypeScript์์ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ๋์ ์์ฐํฉ๋๋คNode.js ES modules and top-level await in AWS Lambda.
์ด๋ป๊ฒ ์๋ํฉ๋๊น?
serverless-esbuild์ ์ฌ์ฉํ์ฌ TypeScript ์ฝ๋๋ฅผ JavaScript๋ก ํธ๋์คํ์ผํฉ๋๋ค.
๋น๋ฐ ์์ค๋ ๋ค์ esbuild ์ต์
์ ์ฌ์ฉํ์ฌ ํ์ฅ์๊ฐ .mjs
์ธ Node.js ES ๋ชจ๋ ํ์ผ์ ์ถ๋ ฅํ๋๋ก esbuild๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์
๋๋ค.
format: "esm"
outputFileExtension: ".mjs"
platform: "node"
target: "esnext"
์ด๋ฅผ ํตํด TypeScript์ ์์ ํ ์ ํ์ AWS Lambda ์ฝ๋๋ฅผ ๋ณด์ ํ๊ณ ํธ๋ค๋ฌ ๊ธฐ๋ฅ ์ธ๋ถ์์ ์คํawait
์ ํ์ฉํ์ฌ ์๋น์ค ์๋น์์ ์๋ต ์๊ฐ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
(Principal Specialist Solutions Architect Serverless)๊ฐ his article์์ ์ค๋ช
ํ๋ฏ์ด ์ฝ 45%์ ์ฑ๋ฅ ํฅ์์ ๋ณผ ์ ์์ต๋๋ค.
View on GitHub
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ TypeScript๋ฅผ ์ฌ์ฉํ๋ AWS Lambda์ ์ต์์ ๋๊ธฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/oieduardorabelo/top-level-await-in-aws-lamba-with-typescript-1bf0ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค