ããã以åã«å°ããããå Žåã¯ãè©«ã³ããŸãããããããªããé æ ®ãªãéããŠçããæããŠãã ããã èŠãŠã¿ãŸãããããšã«ããçããèŠã€ãããŸããã§ããã
.NET 5ã¯LTSãªãªãŒã¹ãšããŠããŒã¯ãããŠããŸããïŒ https ïŒ
LambdaããŒã ã®ããªã·ãŒã¯.NETLTSãªãªãŒã¹ã®ã¿ããµããŒãããããšã§ãããããã¯.NET 5ã«ãé©çšãããŸããããããšãããªã倧ããªãã®ïŒ.NETCoreãš.NETFrameworkã®çµ±åïŒãèæ ®ããŠäŸå€ãäœæãããŸããïŒ æ¬¡ã®ãµããŒãããã.NETããŒãžã§ã³ïŒ.NET 6ïŒãšããã«ä»éãããã¹ãŠã®è¿œå æ©èœã2021幎åŸåãã2022幎åé ãŸã§åŸ ããªããã°ãªããªãã£ããšãããæ®å¿µã§ãã
ç¹ã«æ¬¡ã®LTSïŒ2021ïŒãåŸ ã€ããšã¯éåžžã«æªãïŒããžãã¹ïŒã¢ã€ãã¢ã®ããã«èãããã®ã§ãç§ããã®ãããã¯ã«ã€ããŠèå³ããããŸãã
ã©ã³ã¿ã€ã ã®LTSããŒãžã§ã³ããµããŒãããããšã¯LambdaãµãŒãã¹ããŒã ã®ããªã·ãŒã§ãã ç§ãã¡AWS.NETããŒã ã¯ãLambdaã«å€ãã®è奮ãããããšãç¥ã£ãŠããã®ã§ãLambdaã§.NET5ããµããŒãããæåã®æ¹æ³ãèŠã€ããããã«ä»£æ¿æ¡ãæ€èšããŠããŸãã
ã©ã ãã®èŠ³ç¹ãã.NETãå®è¡ããããšãžã®å¥œå¥å¿ããã.NET 5ã§æãèå³ãæã£ãŠãã人ã¯äœã§ããïŒ ããã¯ç§ãåªå é äœãæŒãäžããã®ã«åœ¹ç«ã¡ãŸãã
é«éèµ·åãäœãããããªã³ããããã³äœã¡ã¢ãªäœ¿çšé
.NETã®éçã³ã³ãã€ã«ïŒäºåâ AOTïŒ
Javaã®çžäºéçšæ§-ããã¯ããã©ãŒæ©èœãã§ããå¯èœæ§ããããŸã
ããã«ã¡ã¯@ andyfurniss4 ã
ããã«ã¡ã¯ã
@normjããã®è³ªåã«å ¥åãæäŸãããã
ããããšãã
Ashish
ã©ã ãã®èŠ³ç¹ãã.NETãå®è¡ããããšãžã®å¥œå¥å¿ããã.NET 5ã§æãèå³ãæã£ãŠãã人ã¯äœã§ããïŒ ããã¯ç§ãåªå é äœãæŒãäžããã®ã«åœ¹ç«ã¡ãŸãã
ã¬ã³ãŒããæ°ããJsonã·ãªã¢ã«åãNullable Type AnnotationsãFïŒ5-ã®é åºã§CïŒ9ã«æ¬åœã«ç§»è¡ããã
ãã€ãã£ãã®.NET5ãµããŒãã®ä»£ããã«ã«ã¹ã¿ã ã©ã³ã¿ã€ã ã䜿çšããŠã©ããŸã§å°éã§ããããç¥ããããšæããŸãã ç¹ã«ãªã³ã¯ããªããŒã¯ãå€ãã®äžèŠãªã³ãŒããåãåããããã±ãŒãžãµã€ãºãçž®å°ã§ããã¯ãã§ãã ã«ã¹ã¿ã ã©ã³ã¿ã€ã ã¢ãããŒããé©åã§ãªãå Žåã¯ããã€ãã£ãã®.NET5ãµããŒããéåžžã«æ¯æããŸãã ä»ã®äººãææããŠããããã«ãäž»èŠãªæšé²åã¯æ°ããCïŒèšèªæ©èœã§ãã
ã«ã¹ã¿ã ã©ã³ã¿ã€ã ã¯æ©èœããã¯ãã§ããã5.0 RC1ã®.NETã©ã³ã¿ã€ã ã«ã¯ãã°ããããAWS Lambdaã§ã¯æ©èœããŸããïŒïŒ730ãåç §ïŒã RC2ããªãªãŒã¹ããããè¯ãã¯ãã§ãã
ã«ã¹ã¿ã ã©ã³ã¿ã€ã ã䜿çšããã³ç¶æããããšã¯ãããŒã ã«ãšã£ãŠå€ãã®ãªãŒããŒãããã§ããïŒ æè¿ã¯èª¿ã¹ãŠããŸããããååã¯å€§å€ãªåªåã®ããã§ããããããã¯CoreRTã®å Žåã§ããã
ããšãã°ãã»ããã¢ããã䜿çšãæŽæ°ãªã©ã§ããïŒ
ãããã«å¯ŸããAWSãµããŒãã¯ã©ãã§ããïŒ
å人çãªçµéšãããç§ãæ±ããŠããå¯äžã®ç¶ç¶çãªãªãŒããŒãããã¯ãæã«1åNuGetããã±ãŒãžãšSDKãã¶ã€ããŠãææ°ã®ä¿®æ£ãã»ãã¥ãªãã£ããããååŸããåå±éããããšã§ãã
ãã以å€ã®å Žåãã«ã¹ã¿ã ã©ã³ã¿ã€ã ã«åãæ¿ãããšããã¹ãŠããªãã¡ã¯ã¿ãªã³ã°ããŠãã¹ããã Amazon.Lambda.RuntimeSupport
ããã±ãŒãžããã©ã°ã€ã³ããã®ã«çŽ1æ¥ããã£ããšæããŸãã
ããå°ãã³ãŒããèšè¿°ããŠææ°ã®ç¶æ ã«ä¿ã€å¿ èŠããããŸãããææ°ã®æ©èœãå©çšå¯èœã«ãªã次第ã䜿çšããããšãã§ããŸãã æŽæ°ãªã©ãç¶æããããã®åž¯åå¹ ããªãå Žåã¯ãçµã¿èŸŒã¿ã®ã©ã³ã¿ã€ã ã䜿çšã§ããŸãããAWSLambdaããŒã ãä»ã®ãã¹ãŠã®ãããžã§ã¯ãã§æ°ããã©ã³ã¿ã€ã ãå©çšã§ããããã«ãªããŸã§åŸ ã€å¿ èŠããããŸãä»äºã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããªãŒããŒãããã¯AWSã«çžãããã®ã§ã¯ãªããç¬èªã®ã¹ã±ãžã¥ãŒã«ã§æŽæ°ã§ãã䟡å€ããããšæããŠããŸãã
YMMVã
çŸåšãOracleããAurora Postgresã«ç§»è¡ããŠããŸããææ°ã®ãã¯ãããžãŒã§ã€ãããŒã·ã§ã³ãèµ·ããããšãã§ããªãã£ããããéçºãé ããããã§ãã .NET Core3.Xãã¿ãŒã²ãããšããOracleçšã®EntityFrameworkDriversããªãªãŒã¹ãããã°ããã§ãã ããããç§ãã¡ã¯ãããã®ããã«LTSã«ãšã©ãŸãå¿ èŠãããããšã«æ°ã¥ããŸããã ããããLTSã®ãµããŒãã¯æ°ãæåŸã«ã¯å®çŸã§ããŸããã .NET 5.0ããæ©èœã®å€§ããªå€åã§ãããããLTSãã©ã³ã®è¯ãäŸå€ã ãšæããŸãã
.NET 5ããªãªãŒã¹ãããä»ãããã«é¢ãããã¥ãŒã¹ã¯ãããŸããïŒ
ç§ã®äž»ãªé¢å¿ã¯CïŒ9ãšãã¹ãŠã®System.Text.Json
ã¢ããããŒãã§ãã
ã«ã¹ã¿ã ã©ã³ã¿ã€ã æ©èœã䜿çšããŠãä»æ¥.NET 5ã䜿çšã§ããããšã«æ³šæããŠãã ããïŒ //aws.amazon.com/blogs/developer/net-core-3-0-on-lambda-with-aws-lambdas-ã«ã¹ã¿ã ã©ã³ã¿ã€ã /
ãŸã è©ŠããŠããŸãããã.NET 5ã®æ°æ©èœã§ããã³ãŒãããªãã³ã°ã䜿çšãããšã.NET Core3.0ãããã¯ããã«åªãããšã¯ã¹ããªãšã³ã¹ãåŸãããã¯ãã§ãã
ã©ã³ã¿ã€ã ã®LTSããŒãžã§ã³ããµããŒãããããšã¯LambdaãµãŒãã¹ããŒã ã®ããªã·ãŒã§ãã ç§ãã¡AWS.NETããŒã ã¯ãLambdaã«å€ãã®è奮ãããããšãç¥ã£ãŠããã®ã§ãLambdaã§.NET5ããµããŒãããæåã®æ¹æ³ãèŠã€ããããã«ä»£æ¿æ¡ãæ€èšããŠããŸãã
ã©ã ãã®èŠ³ç¹ãã.NETãå®è¡ããããšãžã®å¥œå¥å¿ããã.NET 5ã§æãèå³ãæã£ãŠãã人ã¯äœã§ããïŒ ããã¯ç§ãåªå é äœãæŒãäžããã®ã«åœ¹ç«ã¡ãŸãã
ããã¯ã.NET 5.0ã§ã©ã ãã¢ããªãå®è¡ãããšã.NET 5.0ããçŸåšããããLTSãã«ç§»è¡ããå Žåã«ã®ã¿ãµããŒããããããšãæå³ããŸããïŒ
.NET5.0ãLTSã«ãªãããšã¯ãããŸããã .NET6.0ã¯æ¬¡ã®LTSããŒãžã§ã³ã«ãªããŸãã
.NET5.0ãLTSã«ãªãããšã¯ãããŸããã .NET6.0ã¯æ¬¡ã®LTSããŒãžã§ã³ã«ãªããŸãã
ã©ã ããš.NET5.0ã®äœ¿çšã®ãµããŒãã«é¢ããŠãããã¯æ£ç¢ºã«ã¯ã©ãããæå³ã§ããïŒ
ããã¯ãLambdaã§ã®.NET 5ã®ãµããŒããLTSã«ãªãããšã¯ãªããããæåŸ ãã¹ãã§ã¯ãªãããšãæå³ããŸãã
ããã¯ãLambdaã§ã®.NET 5ã®ãµããŒããLTSã«ãªãããšã¯ãªããããæåŸ ãã¹ãã§ã¯ãªãããšãæå³ããŸãã
ããããšã@bjorg ã ãããçµè«ã§ããå Žåããã®åé¡ã¯çŽæ¥ã®çããšããŠããã§éããããã¹ãã§ã¯ãããŸãããïŒ
.NET 5ã¯LTSã§ã¯ãªããAWSããŒã ã¯LTSã®ã¿ããµããŒãããŠããããšãç¥ã£ãŠããããæèµ·ããŸããã ãªãªãŒã¹ã®èŠæš¡ãšã次ã®LTSã¯2021幎ã®çµãããŸã§è¡ãããªããšããäºå®ã®ããã«ãäŸå€ãçºçããã®ã§ã¯ãªãããšæã£ãŠããŸãããã€ãŸããæ瀺çãªãã¯ãããŸãã¯ãããããã¯ãããŸããã§ããããŸã ã§ãã®ã§ããŸã ãããéããã¹ãã§ã¯ãªããšæããŸãã .NET 5ã®ãªãªãŒã¹ã¯ïŒ3.1ã®å Žåãšåãããã«ïŒè¡ã£ããæ¥ããããŠãããLambdaã®ãµããŒãã¯ãããŸããããAïŒäœæ¥ããŠããªãããŸãã¯BïŒèšç»ããŠããªããšããæå³ã§ã¯ãããŸããã
AWSã®æ åœè ã.NET5ããµããŒãããªãããšã決å®ãããããæ確ã«ããå Žåã¯ããã®åé¡ã解決ããŸãããã ãã®å Žåã¯ããµããŒãããã次ã®.NETããŒãžã§ã³ãŸã§ããã«12ã18ãæåŸ ã€å¿ èŠããããŸãã
ãŸããä»ã«ãåãçµãã¹ãããšãäœçŸäžãããããšãç解ããŠããŸãããããã¯ããããäºçŽ°ãªããšã§ã¯ãããŸããã ç§ã¯å æ²¢ã®ããæ°ãããã®ã奜ãã§ãð
çå®ã¯ããã€ã¯ããœããã.NETã«äžããããšã決å®ããããŒã¹ãèãããšãé幎ã§LTSã®ãªãªãŒã¹ãåŸ ã€ããšã¯æå³ããªããšããããšã§ãã çŸåšã®ãªãªãŒã¹ã§ããã15ãæéïŒ1幎+ 3ãæã®ãµããŒãïŒãšã©ãŸããšãLTSã®ãããªã«ãããããããã§ãã
AWSãLTSãšCurrentã©ã³ã¿ã€ã ãå®çŸ©ããŠãã客æ§ãã©ã®ãã¹ãç¶æãããã決å®ã§ããããã«ããã°åé¡ãããŸããã
æ£çŽãªãšãããCurrentãã¹äžã®ã©ã³ã¿ã€ã çšã«äºåã«äœæãããã«ã¹ã¿ã ã©ã³ã¿ã€ã ã§åé¡ãããŸããã
æ£çŽãªãšãããCurrentãã¹äžã®ã©ã³ã¿ã€ã çšã«äºåã«äœæãããã«ã¹ã¿ã ã©ã³ã¿ã€ã ã§åé¡ãããŸããã
ããªãã¯ããèšããŸããã2021幎11æã«AWSããLambdasãAWSããã®ãã¹ãŠã®ãµããŒããçµäºããåã«ã5.xãã6.0ã«æŽæ°ããã®ã«3ãæãããšããéç¥ãåãåãããšã«ããã»ã©ç±å¿ã§ã¯ãªããããããŸããã
1幎ã§å€ãã®å€æŽãçºçããå¯èœæ§ããããçªç¶ãããŒã ã¯ããã¹ããæŽæ°ããAmazonã«ãã£ãŠä»¥åã«è¡ãããŠãããµããŒããç¶æããããã«ãæ°ãæé觊ããããªãã£ãå¯èœæ§ã®ããLambdaãæŽæ°ããå¿ èŠæ§ã«å¯Ÿå¿ãã垯åå¹ ãæããªããªãå¯èœæ§ããããŸããå¿ èŠã«å¿ããŠãããã«ã€ããŠèããå¿ èŠã®ãªãã©ã³ã¿ã€ã ã
確ãã«ãèŠåãèŠåãããããããçŸåšã®èª¿çæžã¿ã®çŸåšã®ã©ã³ã¿ã€ã ãååšããå¯èœæ§ããããŸãããããã¯ãŠãŒã¶ãŒãç解ããå¿ èŠã®ããç¬èªã®ãµããŒãã®è€éããšãã¥ã¢ã³ã¹ã䌎ããŸãã
LambdaãMicrosoftãããªãªãŒã¹ãããæç¹ã§.NETã®ãã¹ãŠã®æ°ããã¡ãžã£ãŒããŒãžã§ã³ããµããŒãããŠããã°çŽ æŽãããã®ã§ããããã®èŠæš¡ã§ãããè¡ãããšã®å®çšæ§ããçŸåšã®ç¶æ³ã«ããçç±ã ãšæããŸãã
ããªããæ¬åœã«ãæ¬åœã«æå 端ã«ããŠãã§ããã ãæ©ãã¢ããã°ã¬ãŒãããŠãèªåã§ç©äºããµããŒãããããªãèªèº«ã®ããšãããŠããã¹ãŠã®çµæãåãå ¥ãããã®ãªããããã¯ã«ã¹ã¿ã ã©ã³ã¿ã€ã ã®ãããªãã®ã§ãã
åé¡ã¯ãç§ãã¡ãæããã«æå 端ã«ããããã§ã¯ãªããšããããšã§ãã .NET Coreã¯é«éã§åäœããéåžžã«å®å®ããŠããŸãã ä»ããNuGetã調ã¹ãŠãã ãããããã±ãŒãžã¯ã5.0.0çšã«ãããŸãã çŸåšãäžè¬æ¶è²»è åãã§ãã
DotNet Core3.1ãããžã§ã¯ããDotNet5ã«ã¢ããã°ã¬ãŒãããããšããããšã¯ãããŸããããã¢ããã°ã¬ãŒãããã ãã§å€§ââããªåé¡ãçºçããããšã¯ãããŸããïŒ2.1ãã3.1ãªã©ïŒã
DotNet 5ã¯å¥ã®ç£ãããããŸããããç§ã«ãšã£ãŠã®ã«ã¹ã¿ã ã©ã³ã¿ã€ã ã¯ãC ++ Lambdaã®ãããªãã£ãšçããç°å¢çšã§ãã
ç§ã¯ãããã¢ããããŒããå ¥æããŠãåŸã§ã§ã¯ãªãæ©ãDotNet 5Lambdaã«ç§»è¡ããããšæã£ãŠããŸãã 2020幎ã¯1幎ã倧å€ãªææã§ããããšã蚌æããŸãã:-)
@martincostelloããããªããã©ãããæ¥ãŠããã®ãããããŸãã
ããããããã¯é¡§å®¢ã«ããã¹ãçš®é¡ã®éžæã§ãïŒCurrentãŸãã¯LTSã«ç§»è¡ããŸãã
AWSã¯ãCurrentã§ã©ã³ã¿ã€ã ããªãªãŒã¹ããŠããŸãããããã¯ãã©ã³ã¿ã€ã ãéžæãã顧客ãåé¡ãæ±ããŠããå¯èœæ§ãããããã§ããããã¯ãAWSã顧客ã«å¯ŸããŠè² ã責任ã®æªã¿ã§ãã 圌ãã¯ããŒã«ãæäŸããã©ã®ããŒã«ã圌ãã«æãé©ããŠããããå šå¡ã«æ±ºå®ãããã¹ãã§ãã
@genifycomãèšã£ãããšã«
ç§ã®äŒç€Ÿã«ã¯æ°åã®é¢æ°ããããã»ãšãã©ã®å Žåããã©ã«ããŒå šäœã®æ€çŽ¢/眮æã䜿çšããŠããããã¢ããã°ã¬ãŒãããŸãïŒãããžã§ã¯ããã¡ã€ã«ããç¹å®ã®LambdaToolsããããã£ãåé€ããå¿ èŠãããå Žåã¯å°ãè€éã§ããïŒã
ç§ããLTSããŒãžã§ã³ãå©çšå¯èœã«ãªããŸã§dotnet5ã®æšç§»çãªãµããŒããæãã§ããŸãã ïŒããã¯éå»ã«å¥ã®ããŒãžã§ã³ã§çºçããŸããïŒ
çŸåšå©çšå¯èœãªå¯äžã®ãªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
Zacã¯ãã«ã¹ã¿ã ã©ã³ã¿ã€ã ã®èµ·åããã©ãŒãã³ã¹ãæ¹åããæ¹æ³ã®è©³çŽ°ã«ã€ããŠããã®å ã®æçš¿ããã©ããŒã¢ããããŸããïŒ https ïŒ//medium.com/@zaccharles/net -core-3-0-aws-lambda-benchmarks-and-recommendations- 8fee4dc131b0
ã«ã¹ã¿ã ã©ã³ã¿ã€ã ã§éåžžã«åœ¹ç«ã€ã³ãŒãããªãã³ã°ãªã©ã.NET Core3.1ã«ã¯ååšããªãã£ãå€ãã®ã³ã³ãã€ã«ã®æ¹åã.NET5ã«ããããã圌ã.NET5ããŒãžã§ã³ãæçš¿ããããšãé¡ã£ãŠããŸãã
æãåèã«ãªãã³ã¡ã³ã
.NET 5ããªãªãŒã¹ãããä»ãããã«é¢ãããã¥ãŒã¹ã¯ãããŸããïŒ