зј©зҹӯ Lambda еҶ·еҗҜеҠЁж—¶й—ҙпјҡиҝҒз§»еҲ°йҖӮз”ЁдәҺ JavaScript зҡ„ дәҡ马йҖҠдә‘з§‘жҠҖ ејҖеҸ‘е·Ҙе…·еҢ…

йҖӮз”ЁдәҺ JavaScript зҡ„ дәҡ马йҖҠдә‘з§‘жҠҖ ејҖеҸ‘е·Ҙе…·еҢ… (JS SDK) v3 жҳҜеҜ№ v2 зҡ„йҮҚеҶҷпјҢе®ғ йҮҮз”ЁжЁЎеқ—еҢ–жһ¶жһ„ е’Ңз»ҸеёёиҜ·жұӮзҡ„еҠҹиғҪпјҢдҫӢеҰӮдёҖ жөҒзҡ„ TypeScript ж”ҜжҢҒ е’Ң ж–°зҡ„ дёӯй—ҙд»¶е Ҷж ҲгҖӮ

еҪ“жҲ‘们зҡ„е®ўжҲ·е°Ҷе…¶еә”з”ЁзЁӢеәҸд»Һ JS SDK v2 иҝҒз§»еҲ° v3 ж—¶пјҢ他们дёҖзӣҙеңЁиҰҒжұӮдҪҝз”ЁеҸҜйқ зҡ„еҹәеҮҶжөӢиҜ•жқҘиҜ„дј° SDK еңЁеёёи§Ғз”ЁдҫӢдёӯзҡ„жҖ§иғҪгҖӮдёәдәҶе“Қеә”иҝҷдәӣиҜ·жұӮпјҢJS SDK еӣўйҳҹеҜ№ дәҡ马йҖҠдә‘з§‘жҠҖ Lambda зҡ„еҶ·еҗҜеҠЁж—¶й—ҙиҝӣиЎҢдәҶеҹәеҮҶжөӢиҜ•пјҢеӣ дёәиҝҷжҳҜе®ўжҲ·зҡ„еёёи§Ғз”ЁдҫӢпјҢд№ҹжҳҜеҫҲеҘҪзҡ„еҸӮиҖғж ҮеҮҶгҖӮжҲ‘们зҡ„еҹәеҮҶжөӢиҜ•жҳҫзӨәпјҢдёҺеӨ§еӨҡж•°еёёи§Ғз”ЁдҫӢдёӯзҡ„ v2 зӣёжҜ”пјҢv3 зј©зҹӯдәҶеҶ·еҗҜеҠЁж—¶й—ҙгҖӮе°Ҫз®ЎиҝҷдәӣеҹәеҮҶжөӢиҜ•дҫ§йҮҚдәҺ Lambda еҶ·еҗҜеҠЁж—¶й—ҙпјҢдҪҶж— и®әжӮЁдҪҝз”Ёе“Әз§Қи®Ўз®—жңҚеҠЎпјҢиҝҒз§»еҲ° v3 йҖҡеёёйғҪиғҪжҸҗй«ҳеә”з”ЁзЁӢеәҸжҖ§иғҪгҖӮ

иҮӘеҸ‘еёғд»ҘжқҘпјҢLambda е·ІеҜ№е…¶ Node.js 18 иҝҗиЎҢж—¶иҝӣиЎҢдәҶеӨҡйЎ№жҖ§иғҪдјҳеҢ–пјҢжң¬еҚҡе®ўж–Үз« дёӯзҡ„ж•°жҚ®еҹәдәҺжңҖж–°зҡ„иҝҗиЎҢж—¶зүҲжң¬гҖӮеҰӮжһңжӮЁеҜ№ Lambda еҶ·еҗҜеҠЁж—¶й—ҙеҫҲж•Ҹж„ҹпјҢжҲ‘们е»әи®®е°ҶжӮЁзҡ„ Lambda еҮҪж•°жҚҶз»‘еңЁдёҖиө·пјҢиҜҘеҮҪж•°дҪҝз”ЁеёҰжңүе‘Ҫд»ӨеҜ№иұЎзҡ„еҮҶзі»з»ҹ SDK е®ўжҲ·з«ҜпјҢеҢ…жӢ¬ JS SDK v3гҖӮжӮЁеә”иҜҘдёәз”ҹдә§еә”з”ЁзЁӢеәҸиҝҗиЎҢиҮӘе·ұзҡ„еҹәеҮҶжөӢиҜ•пјҢе№¶дҪҝз”ЁиҝҷзҜҮеҚҡе®ўж–Үз« дҪңдёәеҸӮиҖғгҖӮжӮЁд№ҹеҸҜд»ҘеҸӮиҖғд№ӢеүҚе…ідәҺ дјҳеҢ– Node.js дҫқиө–е…ізі» зҡ„еҚҡе®ўж–Үз« пјҢ иҜҘж–Үз« ж·ұе…ҘжҺўи®ЁдәҶжҚҶз»‘е’Ңзј©е°Ҹ Lambda еҮҪж•°гҖӮ

д»Җд№ҲжҳҜеҹәеҮҶжөӢиҜ•пјҹ

жҲ‘们дҪҝз”Ё JS SDK v3 е’Ң v2 еҜ№зӨәдҫӢеә”з”ЁзЁӢеәҸзҡ„ Lambda еҶ·еҗҜеҠЁж—¶й—ҙиҝӣиЎҢдәҶеҹәеҮҶжөӢиҜ•гҖӮеҫҲеӨ§дёҖйғЁеҲҶзҡ„ JS SDK е®ўжҲ·д»Һ Lambda еҸ‘йҖҒиҜ·жұӮпјҢи®ёеӨҡдәәеҜ№еҶ·еҗҜеҠЁж—¶й—ҙеҫҲж•Ҹж„ҹгҖӮ

д»ҘдёӢ Lambda еҮҪж•°зӨәдҫӢд»Јз Ғд»Һ JS SDK v3 еҜје…Ҙ STS е®ўжҲ·з«ҜпјҢеңЁеҮҪж•°еӨ–йғЁеҲӣе»әе®ўжҲ·з«Ҝе®һдҫӢе№¶иҝ”еӣһ getCallerIdentity зҡ„ е“Қеә”гҖӮ

import { STS } from "@aws-sdk/client-sts";

const client = new STS();
export const handler = async () => client.getCallerIdentity();

v2 дёӯзҡ„д»Јз Ғе°Ҷд»Һ вҖңaws-sdkвҖқ еҢ…дёӯеҜје…ҘпјҢе№¶еңЁ API и°ғз”Ёж—¶и°ғз”Ё promise ()пјҢеҰӮдёӢжүҖзӨәпјҡ

import AWS from "aws-sdk";

const client = new AWS.STS();
export const handler = async () => client.getCallerIdentity().promise();

еҹәеҮҶжөӢиҜ•жҳҜй’ҲеҜ№дёүдёӘеёёи§Ғз”ЁдҫӢиҺ·еҫ—зҡ„пјҡ

  • жҢүеҺҹж ·дҪҝз”Ё Lambda жҸҗдҫӣзҡ„иҪҜд»¶ејҖеҸ‘е·Ҙе…·еҢ…
  • з”ЁжҲ·дёҠдј зҡ„ node_modules дёӯзҡ„ SDK жҢүеҺҹж ·
  • дҪҝз”Ё esbuild жҚҶз»‘й”Җе”®

жҲ‘们дҪҝз”ЁдәҶ жөӢйҮҸеҶ·еҗҜеҠЁ зҡ„иҮӘе®ҡд№үеҲҶж”Ҝ пјҢе®ғеҸҜд»ҘеҗҢж—¶иҺ·еҸ–еӨҡдёӘзӣёе…і Lambda еҮҪж•°зҡ„еҶ·еҗҜеҠЁжҢҮж ҮпјҢе№¶д»ҘеҸҜиҜ»зҡ„иЎЁж јж јејҸиҝ”еӣһзү№е®ҡзҡ„жҢҮж Үе’Ңз»ҹи®Ўж•°жҚ®гҖӮе®ғжөӢйҮҸдәҶ Lambda еңЁ CloudWatch ж—Ҙеҝ—дёӯи®°еҪ•зҡ„еҲқе§ӢжҢҒз»ӯж—¶й—ҙгҖӮжҜҸдёӘеҹәеҮҶжөӢиҜ•йғҪиҝҗиЎҢдәҶ 100 ж¬Ўи°ғз”ЁгҖӮ

иҝҷзҜҮеҚҡе®ўж–Үз« дёӯеҲҶдә«зҡ„еҹәеҮҶжөӢиҜ•йҖӮз”ЁдәҺд»Ҙ ECMAScript жЁЎеқ—ж јејҸпјҲеҸҲеҗҚ ESMпјүзј–еҶҷзҡ„ Lambda еҮҪж•°гҖӮжҲ‘们иҝҳж”¶йӣҶдәҶд»Ҙ CommonJS жЁЎеқ—ж јејҸзј–еҶҷзҡ„еҮҪж•°зҡ„еҹәеҮҶжөӢиҜ•пјҢе®ғ们жҳҜзӣёдјјзҡ„гҖӮжҲ‘们дҪҝз”Ё ESMпјҢеӣ дёәе®ғжҳҜжү“еҢ… JavaScript д»Јз Ғд»ҘдҫӣйҮҚеӨҚдҪҝз”Ёзҡ„е®ҳж–№ж ҮеҮҶж јејҸгҖӮ

жҢүеҺҹж ·дҪҝз”Ё Lambda жҸҗдҫӣзҡ„иҪҜд»¶ејҖеҸ‘е·Ҙе…·еҢ…

Lambda еңЁе…¶и®ҫзҪ®дёӯжҸҗдҫӣдәҶ SDK зүҲжң¬пјҢд»Ҙж–№дҫҝејҖеҸ‘дәәе‘ҳжһ„е»әжӣҙз®ҖеҚ•зҡ„еҮҪж•°жҲ–дҪҝз”Ё Lambda жҺ§еҲ¶еҸ°иҝӣиЎҢејҖеҸ‘гҖӮиҝҷе…Ғи®ёе®ўжҲ·и·іиҝҮеңЁ node_modu les ж–Үд»¶еӨ№дёӯжҸҗдҫӣ SDK е·Ҙд»¶гҖӮиҷҪз„¶иҝҷжҳҜжңҖж–№дҫҝзҡ„з”ЁдҫӢпјҢдҪҶе®ғе№¶дёҚжҳҜжҖ§иғҪжңҖй«ҳзҡ„з”ЁдҫӢгҖӮ

еңЁжӯӨеҹәеҮҶжөӢиҜ•и®ҫзҪ®дёӯпјҢеә”з”ЁзЁӢеәҸд»…дҪҝз”ЁеҮҪж•°жәҗд»Јз ҒдёҠдј еҲ° LambdaгҖӮе®ғжңүдёӨдёӘж–Үд»¶зі»з»ҹиҠӮзӮ№пјҡ

  • package.json еҢ…еҗ«йЎ№зӣ®жё…еҚ•
  • index.mjs еҢ…еҗ«еҮҪж•°жәҗд»Јз Ғ

JS SDK v3 жҳҜеңЁ Lambda жҸҗдҫӣзҡ„еёҰжңү Lambda Node.js 18 зҡ„иҪҜд»¶ејҖеҸ‘е·Ҙе…·еҢ…дёӯеј•е…Ҙзҡ„гҖӮ иҝҷе°ұжҳҜдёәд»Җд№Ҳ v2 еҹәеҮҶжөӢиҜ•еңЁ nodejs16.x дёҠиҝҗиЎҢпјҢиҖҢ v3 еҹәеҮҶжөӢиҜ•еңЁ nodejs18.x дёҠиҝҗиЎҢгҖӮ

дҪҝз”Ё Lambda зҡ„ Node Runtime 14 е’Ң 16 ж—¶пјҢд»Һ NODE_PATH еҜје…Ҙзҡ„ ESM дёҚеҸҜз”ЁгҖӮдёәдәҶжөӢиҜ• Lambda еңЁ Node.js 16 дёӯжҸҗдҫӣзҡ„ JS SDK v2пјҢжҲ‘们еңЁжҲ‘们зҡ„жөӢиҜ•и®ҫзҪ®дёӯеҲӣе»әдәҶдёҖдёӘжҢҮеҗ‘ /v ar/runtime/ node_modules зҡ„з¬ҰеҸ·й“ҫжҺҘгҖӮжңүе…іиҜҰз»ҶдҝЎжҒҜпјҢиҜ·жҹҘзңӢ GitHub и®Ёи®ә aws/aws-sdk-js/ #4432 гҖӮ

жӯӨи®ҫзҪ®зҡ„еҹәеҮҶжөӢиҜ•иЎЁжҳҺпјҢдҪҝз”Ё Lambda жҸҗдҫӣзҡ„ SDK ж—¶пјҢдҪҝз”Ё v3 зҡ„ Lambda еҮҪж•°зҡ„еҶ·еҗҜеҠЁж—¶й—ҙжҜ”дҪҝз”Ё v2 зҡ„еҮҪж•° е°‘дәҶ 100 жҜ«з§’д»ҘдёҠ гҖӮ

в•”в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•—
в•‘                                            в”Ӯ metric             в”Ӯ p50    в”Ӯ p90    в”Ӯ stdDev в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 16.20.1: Code (esm) with sts v2.1374.0в”Ӯ init_duration (ms) в”Ӯ 509.74 в”Ӯ 529.76 в”Ӯ 14.57  в•‘
в•‘ (provided) (size: 687.00 B)                в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 18.16.1: Code (esm) with sts v3.188.0 в”Ӯ init_duration (ms) в”Ӯ 401.48 в”Ӯ 438.57 в”Ӯ 32.39  в•‘
в•‘ (provided) (size: 566.00 B)                в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҡв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•қ

зүҲжң¬ v2.1374.0 е’Ң v3.188.0 жҳҜ Lambda еңЁж’°еҶҷжң¬ж–Үж—¶жҸҗдҫӣзҡ„ SDK зүҲжң¬гҖӮLambda жҸҗдҫӣзҡ„иҪҜд»¶ејҖеҸ‘е·Ҙе…·еҢ…зүҲжң¬дјҡе®ҡжңҹжӣҙж–°дёәжңҖж–°зҡ„ејҖеҸ‘е·Ҙе…·еҢ…зүҲжң¬гҖӮ

з”ЁжҲ·дёҠдј зҡ„ node_modules дёӯзҡ„ SDK жҢүеҺҹж ·

дёҺ Lambda жҸҗдҫӣзҡ„ SDK и®ҫзҪ®зӣёжҜ”пјҢжҲ‘们й’ҲеҜ№з”ЁжҲ·дёҠдј зҡ„ node_modules зҡ„еҹәеҮҶжөӢиҜ•и®ҫзҪ®жңүд»ҘдёӢеҸҳеҢ–пјҡ

  • node_modules зӣ®еҪ•дёӯж·»еҠ дәҶ SDK е·Ҙд»¶гҖӮ
  • иҝҷдёӨдёӘ Lambda еҮҪж•°йғҪеңЁ nodejs18.x дёҠиҝӣиЎҢдәҶеҹәеҮҶжөӢиҜ•
  • /var/runtime/node_modules зҡ„з¬ҰеҸ·й“ҫжҺҘе·ІеҲ йҷӨ гҖӮ

жӯӨи®ҫзҪ®зҡ„еҹәеҮҶжөӢиҜ•иЎЁжҳҺпјҢдёҺдҪҝз”Ё v2 зҡ„еҮҪж•°зӣёжҜ”пјҢдҪҝз”Ё v3 зҡ„ Lambda еҮҪж•°зҡ„еҶ·еҗҜеҠЁж—¶й—ҙ еҮҸе°‘дәҶеӨ§ зәҰ 140 жҜ«з§’ гҖӮLambda еҮҪж•°зҡ„еӨ§е°Ҹд№ҹеҮҸе°‘дәҶеӨ§ зәҰ 10 .8 MBгҖӮ

в•”в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•—
в•‘                                            в”Ӯ metric             в”Ӯ p50    в”Ӯ p90    в”Ӯ stdDev в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 18.16.1: Code (esm) with sts v2.1438.0в”Ӯ init_duration (ms) в”Ӯ 625.71 в”Ӯ 659.2  в”Ӯ 27.11  в•‘
в•‘ (size: 12.63 MB)                           в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 18.16.1: Code (esm) with sts v3.391.0 в”Ӯ init_duration (ms) в”Ӯ 485.54 в”Ӯ 519.42 в”Ӯ 24.11  в•‘
в•‘ (size: 1.81 MB)                            в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҡв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•қ

еҜ№дәҺиҝҷз§Қи®ҫзҪ®пјҢйў„и®ЎжүҖжңүжңҚеҠЎзҡ„ж”№иҝӣе°ҶжҢҒз»ӯи¶…иҝҮ100msгҖӮLambda еҮҪж•°зҡ„еӨ§е°Ҹе·®ејӮе°ҶеҸ–еҶідәҺжңҚеҠЎе®ўжҲ·з«ҜпјҢдҪҶеңЁ v3 дёӯдјҡжӣҙе°ҸпјҢдёҺ v2 зӣёжҜ”пјҢv3 жҳҜжЁЎеқ—еҢ–зҡ„гҖӮ

дҪҝз”Ё esbuild жҚҶз»‘й”Җе”®

жҚҶз»‘еҷЁжҳҜдёҖз§Қе°ҶеӨҡдёӘжЁЎеқ—жҲ–ж–Үд»¶з»„еҗҲжҲҗеҚ•дёӘж–Үд»¶зҡ„е·Ҙе…·пјҢйҖҡеёёз”ЁдәҺдјҳеҢ– Web еә”з”ЁзЁӢеәҸзҡ„дәӨд»ҳе’Ңжү§иЎҢгҖӮжҚҶз»‘еҷЁйҖҡеёёз”ЁдәҺеүҚз«ҜејҖеҸ‘пјҢзү№еҲ«жҳҜеҹәдәҺ JavaScript зҡ„йЎ№зӣ®пјҢдҪҶе®ғ们д№ҹеҸҜд»Ҙз”ЁдәҺеҗҺз«ҜејҖеҸ‘гҖӮ

жҲ‘们дёҺ esbuild жҚҶз»‘еңЁдёҖиө·зҡ„еҹәеҮҶжөӢиҜ•и®ҫзҪ®дҪҝз”Ё v2 е’Ң v3 дёӯзҡ„е‘ҪеҗҚеҜје…ҘпјҢе№¶дҪҝз”Ёд»ҘдёӢе‘Ҫд»ӨжҚҶз»‘еә”з”ЁзЁӢеәҸпјҡ

esbuild source.mjs --bundle --platform=node --format=esm --main-fields=module,main

иҰҒеҲӣе»ә v2 зҡ„ ESM жҚҶз»‘еҢ…пјҢжҲ‘们йңҖиҰҒдҪҝз”Ёд»ҘдёӢ esbuild йҖүйЎ№дёәйңҖиҰҒжҸҗдҫӣ polyfillпјҡ

--banner:js="import { createRequire } from 'module';const require = createRequire(import.meta.url);"

жңүе…ідёәд»Җд№ҲйңҖиҰҒиҝҷж ·еҒҡзҡ„иҜҰз»ҶдҝЎжҒҜпјҢиҜ·еҸӮйҳ… evanw/esbuild/issues/ 1921 #issuecomment -1403107887гҖӮ

жӯӨи®ҫзҪ®зҡ„еҹәеҮҶжөӢиҜ•иЎЁжҳҺпјҢдёҺ esbuild жҚҶз»‘еңЁдёҖиө·ж—¶пјҢдҪҝз”Ё v3 зҡ„ Lambda еҮҪж•°зҡ„еҶ·еҗҜеҠЁж—¶й—ҙжҜ”дҪҝз”Ё v2 зҡ„еҮҪж•° е°‘дәҶ 400 жҜ«з§’д»ҘдёҠ гҖӮLambda еҮҪж•°зҡ„еӨ§е°Ҹд№ҹжңү 2 MB зҡ„е·®ејӮгҖӮ

в•”в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•—
в•‘                                            в”Ӯ metric             в”Ӯ p50    в”Ӯ p90    в”Ӯ stdDev в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 18.16.1: Code (esm, bundled:esbuild)  в”Ӯ init_duration (ms) в”Ӯ 624.16 в”Ӯ 657.88 в”Ӯ 23.06  в•‘
в•‘ with sts v2.1438.0 (size: 2.29 MB)         в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 18.16.1: Code (esm, bundled:esbuild)  в”Ӯ init_duration (ms) в”Ӯ 213.16 в”Ӯ 229.9  в”Ӯ 14.73  в•‘
в•‘ with sts v3.391.0 (size: 91.53 KB)         в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҡв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•қ

дёәдәҶеҮҸе°Ҹ v2 дёӯзҡ„еҮҪж•°еӨ§е°ҸпјҢдёҖдәӣе®ўжҲ·дҪҝз”ЁдәҶ STS е®ўжҲ·з«Ҝзҡ„ж·ұеәҰеҜје…ҘпјҢеҰӮдёӢжүҖзӨәпјҡ

import STS from "aws-sdk/clients/sts.js";

еҪ“жҲ‘们еңЁж·ұеәҰеҜје…Ҙ STS е®ўжҲ·з«Ҝж—¶иҝҗиЎҢеҹәеҮҶжөӢиҜ•ж—¶пјҢv3 дёӯзҡ„еҶ·еҗҜеҠЁж—¶й—ҙд»Қз„¶зј©зҹӯдәҶеӨ§зәҰ 10 жҜ«з§’гҖӮе°Ҫз®Ўе…·жңүж·ұеәҰеҜје…ҘеҠҹиғҪзҡ„жҚҶз»‘v2еҮҪж•°жҜ”е…·жңүе…ЁеұҖеҜје…ҘеҠҹиғҪзҡ„зүҲжң¬е°ҸпјҢдҪҶжҚҶз»‘зҡ„v3еҠҹиғҪд»ҚеҮ д№ҺжҳҜе…¶еӨ§е°Ҹзҡ„дёҖеҚҠгҖӮ

в•”в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•—
в•‘                                            в”Ӯ metric             в”Ӯ p50    в”Ӯ p90    в”Ӯ stdDev в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 18.16.1: Code (esm, bundled:esbuild)  в”Ӯ init_duration (ms) в”Ӯ 225.7  в”Ӯ 246.41 в”Ӯ 17.51  в•‘
в•‘ with sts v2.1438.0 (size: 173.31 KB)       в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 18.16.1: Code (esm, bundled:esbuild)  в”Ӯ init_duration (ms) в”Ӯ 213.16 в”Ӯ 229.9  в”Ӯ 14.73  в•‘
в•‘ with sts v3.391.0 (size: 91.53 KB)         в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҡв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•қ

йҖҡиҝҮдҪҝз”ЁеёҰжңүе‘Ҫд»ӨеҜ№иұЎзҡ„еҮҶзі»з»ҹе®ўжҲ·з«ҜпјҢд№ҹеҸҜд»ҘиҝӣдёҖжӯҘеҮҸе°Ҹ v3 дёӯзҡ„еҢ…еӨ§е°ҸгҖӮеңЁе№•еҗҺпјҢиҝҷе°ҶеҜје…ҘдёҖдёӘиҪ»йҮҸзә§е®ўжҲ·з«ҜпјҢе№¶дё”д»…еҜје…ҘжӮЁзҡ„еә”з”ЁзЁӢеәҸйңҖиҰҒи°ғз”Ёзҡ„ж“ҚдҪңгҖӮжӯӨз»“жһ„з”ҡиҮіеҸҜд»Ҙз”ЁдәҺ Lambda еҮҪж•°д№ӢеӨ–зҡ„жЎҲдҫӢгҖӮ

import { STSClient, GetCallerIdentityCommand } from "@aws-sdk/client-sts";

const client = new STSClient();
export const handler = async () => client.send(new GetCallerIdentityCommand({}));

еңЁ v3 дёӯдҪҝз”Ё STS е®ўжҲ·з«Ҝзҡ„е‘Ҫд»ӨеҜје…ҘиҝҗиЎҢеҹәеҮҶжөӢиҜ•ж—¶пјҢжҚҶз»‘зҡ„еә”з”ЁзЁӢеәҸеӨ§е°ҸеҮҸе°‘дәҶзәҰ 2KBгҖӮеҶ·еҗҜеҠЁж—¶й—ҙзј©зҹӯдәҶзәҰ 3 жҜ«з§’гҖӮ

в•”в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•Өв•җв•җв•җв•җв•җв•җв•җв•җв•—
в•‘                                            в”Ӯ metric             в”Ӯ p50    в”Ӯ p90    в”Ӯ stdDev в•‘
в•ҹв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”јв”Җв”Җв”Җв”Җв”Җв”Җв”Җв”Җв•ў
в•‘ node 18.16.1: Code (esm, bundled:esbuild,  в”Ӯ init_duration (ms) в”Ӯ 209.03 в”Ӯ 223.93 в”Ӯ 7.68   в•‘
в•‘ import:command) with sts v3.391.0 (size:   в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•‘ 89.81 KB)                                  в”Ӯ                    в”Ӯ        в”Ӯ        в”Ӯ        в•‘
в•ҡв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•§в•җв•җв•җв•җв•җв•җв•җв•җв•қ

жҲ‘们еҸҜд»Ҙд»ҺиҝҷдәӣеҹәеҮҶжөӢиҜ•дёӯеӯҰеҲ°д»Җд№Ҳпјҹ

е°ұеёёи§Ғз”ЁдҫӢдёӯзҡ„ Lambda еҶ·еҗҜеҠЁж—¶й—ҙиҖҢиЁҖпјҢJS SDK v3 жҜ” v2 жӣҙеҝ«гҖӮ

жӮЁе®һзҺ°еә”з”ЁзЁӢеәҸзҡ„ж–№ејҸдјҡеҪұе“ҚжҖ§иғҪгҖӮеҰӮжһңжӮЁеңЁ Lambda дёҠдҪҝз”Ё JS SDK е№¶дё”еҜ№еҶ·еҗҜеҠЁж—¶й—ҙеҫҲж•Ҹж„ҹпјҢиҜ·дҪҝз”ЁеёҰжңүеҮҶзі»з»ҹе®ўжҲ·з«Ҝе’Ңе‘Ҫд»ӨеҜ№иұЎзҡ„ JS SDK v3пјҢе№¶еңЁйғЁзҪІеҲ° Lambda д№ӢеүҚжҚҶз»‘жӮЁзҡ„еә”з”ЁзЁӢеәҸгҖӮжӯӨи®ҫзҪ®зҡ„еҶ·еҗҜеҠЁж—¶й—ҙиҫғзҹӯпјҢеӣ дёә Node.js еҸӘйңҖиҰҒиҜ»еҸ–дёҖдёӘж–Үд»¶пјҢе…¶дёӯеҢ…еҗ«еә”з”ЁзЁӢеәҸзҡ„е®Ңж•ҙжәҗд»Јз ҒгҖӮж— йңҖиҠұиҙ№ж—¶й—ҙиҝӣиЎҢжЁЎеқ—и§ЈжһҗжҲ–иҜ»еҸ–еӨҡдёӘж–Үд»¶гҖӮеҪ“жӮЁзҡ„еә”з”ЁзЁӢеәҸдҪҝз”Ё v3 ж—¶пјҢеҢ…еӨ§е°Ҹдјҡжӣҙе°ҸпјҢеӣ дёә v3 жҳҜжЁЎеқ—еҢ–зҡ„гҖӮ

JS ејҖеҸ‘е·Ҙе…·еҢ…еӣўйҳҹе»әи®®дҪҝз”Ё дәҡ马йҖҠдә‘з§‘жҠҖ дә‘ејҖеҸ‘еҘ—д»¶ (CDK) жқҘз®ЎзҗҶжӮЁ зҡ„ Lambda еҮҪж•°гҖӮдҪ еҸҜд»ҘдҪҝз”Ё CDK NodejsFunction жһ„йҖ жқҘжҚҶз»‘еә”з”ЁзЁӢеәҸжәҗд»Јз ҒгҖӮеҸӘиҰҒи®°еҫ—еңЁ bun dling.externalModules й…ҚзҪ®дёӯдј йҖ’дёҖдёӘз©әж•°з»„пјҢиҝҷж ·е®ғе°ұеҸҜд»ҘжҚҶз»‘ ејҖеҸ‘е·Ҙе…·еҢ…дәҶгҖӮжңүе…іиҜҰз»ҶдҝЎжҒҜпјҢиҜ·жҹҘзңӢ aws/aws-cdk/ #25492 гҖӮ

еҸҚйҰҲ

иҰҒејҖе§ӢдҪҝз”Ё JS SDK v3пјҢиҜ·и®ҝй—®жҲ‘们зҡ„ е…Ҙй—Ё йЎөйқўгҖӮжҲ‘们йқһеёёйҮҚи§ҶжӮЁзҡ„еҸҚйҰҲпјҢеӣ жӯӨпјҢеҰӮжһңжӮЁжңүд»»дҪ•й—®йўҳгҖҒж„Ҹи§ҒгҖҒз–‘иҷ‘жҲ–жғіжі•пјҢиҜ· еңЁ GitHub дёҠејҖеҗҜ и®Ёи®ә гҖӮ

Trivikram Kamat

Trivikram Kamat

Trivikram жҳҜ Node.js е’ҢжөҸи§ҲеҷЁдёӯйҖӮз”ЁдәҺ JavaScript зҡ„ дәҡ马йҖҠдә‘з§‘жҠҖ ејҖеҸ‘е·Ҙе…·еҢ…зҡ„з»ҙжҠӨиҖ…гҖӮTrivikram иҝҳжҳҜ Node.js Core зҡ„еҗҲдҪңиҖ…пјҢиҝҮеҺ»жӣҫйҖҡиҝҮ QUIC е®һзҺ°дёә HTTPгҖҒHTTP/2 е’Ң HTTP/3 еҒҡеҮәдәҶиҙЎзҢ®гҖӮд»–зј–еҶҷ JavaScript е·ІжңүеҚҒеӨҡе№ҙдәҶгҖӮдҪ еҸҜд»ҘеңЁжҺЁзү№ @trivikram е’Ң GitHub дёҠжүҫеҲ°д»– @trivikr гҖӮ


*еүҚиҝ°зү№е®ҡдәҡ马йҖҠдә‘з§‘жҠҖз”ҹжҲҗејҸдәәе·ҘжҷәиғҪзӣёе…ізҡ„жңҚеҠЎд»…еңЁдәҡ马йҖҠдә‘з§‘жҠҖжө·еӨ–еҢәеҹҹеҸҜз”ЁпјҢдәҡ马йҖҠдә‘з§‘жҠҖдёӯеӣҪд»…дёәеё®еҠ©жӮЁеҸ‘еұ•жө·еӨ–дёҡеҠЎе’Ң/жҲ–дәҶи§ЈиЎҢдёҡеүҚжІҝжҠҖжңҜйҖүжӢ©жҺЁиҚҗиҜҘжңҚеҠЎгҖӮ