ããã©ã«ãã®ã±ãŒã·ã³ã°ã®åäœãAmazon.Lambda.Serialization.Json.JsonSerializer
ãšAmazon.Lambda.Serialization.SystemTextJson.LambdaJsonSerializer
éã§å€æŽãããããã§ãã
éãããã¹ãããããã®ãµã³ãã«ã³ãŒãã次ã«ç€ºããŸãã
// create an instance to serialize
var record = new Record {
Foo = "Hello world!"
};
// show serialization with original Lambda serializer based on Newtonsoft.Json
var oldSerializer = SerializeWith(record, new Amazon.Lambda.Serialization.Json.JsonSerializer());
Console.WriteLine($"Amazon.Lambda.Serialization.Json.JsonSerializer: {oldSerializer}");
// show serialization with new Lambda serializer based on System.Text.Json
var newSerializer = SerializeWith(record, new Amazon.Lambda.Serialization.SystemTextJson.LambdaJsonSerializer());
Console.WriteLine($"Amazon.Lambda.Serialization.SystemTextJson.LambdaJsonSerializer: {newSerializer}");
// show serialization with System.Json.Text
var jsonTextSerializer = System.Text.Json.JsonSerializer.Serialize<Record>(record);
Console.WriteLine($"System.Text.Json.JsonSerializer: {jsonTextSerializer}");
// local functions
string SerializeWith<T>(T value, Amazon.Lambda.Core.ILambdaSerializer serializer) {
using var buffer = new MemoryStream();
serializer.Serialize<T>(value, buffer);;
return System.Text.Encoding.UTF8.GetString(buffer.ToArray());
}
äžèšã®ã³ãŒãã¯ã次ã®åºåãçæããŸãã
Amazon.Lambda.Serialization.Json.JsonSerializer: {"Foo":"Hello world!"}
Amazon.Lambda.Serialization.SystemTextJson.LambdaJsonSerializer: {"foo":"Hello world!"}
System.Text.Json.JsonSerializer: {"Foo":"Hello world!"}
2ã€ã®ã©ã€ãã©ãªéã§ã±ãŒã·ã³ã°ãåãæ¿ããã¹ãã§ã¯ãªãããšã«åæããŸããã ãã¹ãã¯äž»ã«AWSã€ãã³ãã«çŠç¹ãåãããŠãããããã«ã¹ã¿ã ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã®ãã¹ããäžè¶³ããŠãããšæããŸãã
ãããåºè·ãããã®ã§ãããã©ã«ãã®åäœãå€æŽããããšã¯å®éã«ã¯å®è¡äžå¯èœã§ãã ç§ã®ææ¡ã¯ã䜿çšããã±ãŒã·ã³ã°ã宣èšã§ããããã«ãã±ãŒã·ã³ã°ã¹ã¿ã€ã«ã®åæåãåã蟌ãæ°ããã³ã³ã¹ãã©ã¯ã¿ãŒãè¿œå ããããšã§ãã 次ã«ãæ°ããã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããããã«ãã³ãã¬ãŒããæŽæ°ã§ããŸãã ãã®åé¿çã«ã€ããŠã©ãæããŸããïŒ
ããã§ã®ã¢ã€ãã¢ãäœã ã£ãã®ãããããŸããã äŸåé¢ä¿ã«ãããããããªã人ã
ãå£ããããªããšç§ã¯ç解ããŠããŸãã AWSãJSONãã£ãŒã«ãã®åœåã«äžè²«æ§ããããšä¿¡ããŠããã®ã¯ééãã ã£ãããã§ãïŒã€ãŸãã AWSNamingPolicy
ïŒã ããã§ã¯ãããŸããã CloudFormationãªã©ã®äžéšã®ãµãŒãã¹ã¯Pascalã±ãŒã¹ã䜿çšããŸãã
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-responses.html
ã±ãŒã·ã³ã°ãèªåçã«å€æŽããããã©ã«ãã®System.Text.Json
åäœãå°éããªãããšã¯ãèŽåœçãªæ¬ é¥ã§ããIMHOã ãã¶ãã Amazon.Lambda.Serialization.SystemTextJson.LambdaJsonSerializerV2
ããªãªãŒã¹ããŠãå€ããã®ãæ°·äžã«çœ®ãããšãæ€èšããŠãã ããã
æ確ã«ããããã«ããããã©ã®ããã«æ©èœãããããããããªãã®ã§ãã¢ã»ã³ããªå±æ§å®£èšã¯éã·ãªã¢ã«åã«ã®ã¿äœ¿çšãããŸãããïŒ
[assembly: LambdaSerializer(typeof(Amazon.Lambda.SystemTextJson.LambdaJsonSerializer))]
ãã ãããã®ãã³ãã©ãŒçœ²åã䜿çšããå Žåã§ãå¿ èŠã§ããïŒ
Task<Stream> FunctionHandlerAsync(Stream stream, ILambdaContext context)
ã¢ã»ã³ããªãŸãã¯ãšã³ããªãã€ã³ãã¡ãœããã«LambdaSerializerAttribute
宣èšããªãå Žåã¯ã©ããªããŸããïŒ
@normjãªãã·ã§ã³ã¯ãå±æ§ãè¿œå ããŠjsonããããã£ã«æ瀺çã«ååãä»ããããšã§ã
ç§ã¯ãã®ææ¡ã«åæããŸã-ããããè¿œå ããã®ã¯éå±ãªäžåéãã®äœæ¥ã§ãããããããã°ãããã¯åžžã«æ£ããã§ãã
@normj IMHOããã¯å®è£ ã®åé¡ã§ãããããã¯
@ 3GDXCå®è£
ã®ãã°ã§ããããšã«åæããŸãã 解決çãèããŠããã ãã§ãã çŸåšãããã±ãŒãžã«ã¯LambdaJsonSerializer
ãšãã1ã€ã®ã·ãªã¢ã©ã€ã¶ãŒããããŸãã LambdaJsonSerializer
ããæ¡åŒµããPascalCaseLambdaJsonSerializer
ãšCamelCaseLambdaJsonSerializer
ã·ãªã¢ã©ã€ã¶ãŒãè¿œå ãããšã©ããªããŸããã ãã³ãã¬ãŒããå€æŽããŠPascalCaseLambdaJsonSerializer
ã䜿çšããæ¢åã®åäœãç¶æããããšãã§ããŸãã ããã¯ããœãŒãLambdaJsonSerializerV2ãæã€ã®@bjorgææ¡ã®ããæ瀺çãªããŒãžã§ã³ã§ãã
@normj IMHOã¯ãã¡ãã»ãŒãžã«JsonPropertyNameå±æ§ãè¿œå ããŠãã·ãªã¢ã©ã€ã¶ãŒã®æ§æ/ãªãã·ã§ã³ã«é¢ä¿ãªããçµæã®Jsonãå±æ§ã®åœåã«æºæ ããããã«ããããšããå§ãããŸãã
.NET 3.1ãµããŒãã®ãªãªãŒã¹ããæ°æ¥ä»¥å ã«ïŒä¿®æ£ãå ããŠïŒããã«é倧ãªå€æŽãå°å ¥ããããšãèºèºããçç±ãå®å šã«ç解ããŠããŸãã ãŸãã UP-FOR-GRABSã®åé¡ã
å¿ èŠã«å¿ããŠãèšèãèšã£ãŠãã ããã
ãããŸã§ã®ãšããçŽ æŽãããä»äºã§ãããawslambaãš.netã³ã¢ãµããŒããæé·ããã®ãèŠãã®ã倧奜ãã§ã
@ 3GDXC倧æåãšå°æåã¯ã.NETãªããžã§ã¯ãããJSONæååã«ç§»åããå¿ èŠãããæ»ããªããžã§ã¯ãã«ã®ã¿åœ±é¿ããããšã«ãŸããäŸã次ã«ç€ºããŸãïŒ //github.com/aws/aws-lambda-dotnet/blob/master/Libraries/src/Amazon.Lambda.APIGatewayEvents/APIGatewayProxyResponseã csïŒL18
åé¡ã¯ãä»ã®äººãäœæããå¿çãªããžã§ã¯ãã§ãJsonPropertyNameå±æ§ã䜿çšãããã©ãããå¶åŸ¡ã§ããŸããã
@normjè¯ãç¹; å©èšãããããåžžã«JsonPropertyNameãããªãã®ç¹æ§ããã³/ãŸãã¯ããŒã¿ã³ã³ãã©ã¯ãïŒãã¹ããã©ã¯ãã£ã¹ïŒã®æ瀺çãªããŒãã³ã°ã匷å¶ããããã«å±æ§ã䜿çšå«ããå¿ èŠããããŸã
@normjã®ä»£ããã«ãJsonSerializerOptionsãLambdaSerializerOptionsã¯ã©ã¹ã«æœè±¡åããå±æ§ã®ã³ã³ã¹ãã©ã¯ã¿ãŒãã©ã¡ãŒã¿ãŒãšããŠãªãã·ã§ã³ãè¿œå ããŠãéçºè ãã¢ã»ã³ããª/ã¡ãœããã¬ãã«ã§ãªãŒããŒã©ã€ãã§ããã«ã¹ã¿ã ãªãã·ã§ã³ãã·ãªã¢ã©ã€ã¶ãŒãæã€ããšãã§ããããã«ããããšãã§ããŸãã
ããå€ãã®å®³ãåºããã®ã§ã¯ãªãããªã°ã¬ãã·ã§ã³ãšããŠãã©ã°ãç«ãŠãä»ããé倧ãªå€æŽãšããŠä¿®æ£ããã®ã¯ã©ãã§ããïŒ System.Text.Json
ã«åºã¥ãLambdaJsonSerializer
ãããããã£ã®ã·ãªã¢ã«åæ¹æ³ã®ããã©ã«ãã®åäœãå°éããªããããããã_harm_ãšåŒã³ãŸãã ãã¡ããã [JsonPropertyName]
ãããšä¿®æ£ãããŸãããæãŸãããªãåäœã«å¯Ÿæããããã«å
šå¡ã«äœããèŠæ±ããã®ã¯æéããããããã§ãã
æšæºã®ã·ãªã¢ã©ã€ã¶ãŒãšããŠLambdaJsonSerializer
ãæ¡çšãããšããäœäººã®äººã_ïŒïŒïŒïŒïŒ_ã®ç¬éãšããŠããã«ééãç¶ããã§ããããïŒ
ããã«ã¡ã¯ãã©ã ãã¿ã¹ã¯ã.Net3.1 +æ°ããã·ãªã¢ã©ã€ã¶ãŒã«åãæ¿ããåŸãã¹ãããé¢æ°ã§ãã®åé¡ãçºçããŠããŸãã åºåããã£ã¡ã«ã±ãŒã¹ã«ãªã£ãŠããããã倧混乱ãåŒãèµ·ãããŠããŸãã次ã®ã¹ããŒããã·ã³ã·ã§ã€ãã¯ãAmazon States Languageã䜿çšããŠæ°ããJSONãè©äŸ¡ããããšããStepFunctionäŸå€ãã¹ããŒããŸãã
ä»ã®ãšãããåä»ãªåé¿çããããŸãã ç°å¢å€æ°ã«LAMBDA_NET_SERIALIZER_DEBUG=true
ãèšå®ããããšã«ããã _.options
ãã·ãªã¢ã©ã€ã¶ãŒã«èšå®ãããããšã¯ãªããã±ãŒã¹ã¯ãã®ãŸãŸè¿ãããŸãã ããã«ãã£ãŠãè¿œå ã®JSON以å€ã®åœ±é¿ãCloudwatchãã°ã«åºåããããã©ããã¯ããããŸããã
https://github.com/aws/aws-lambda-dotnet/blob/master/Libraries/src/Amazon.Lambda.Serialization.SystemTextJson/LambdaJsonSerializer.cs#L69 -L90
IMOãã¢ãã«ã¯å€ãã®nugetã©ã€ãã©ãªã«åã蟌ãŸããŠããããããã¹ãŠã®ã¢ãã«ã[JsonPropertyName]
è£
食ã§è£
食ããã®ã¯é¢åã§ãã çæ³çã«ã¯ãããã©ã«ãã®åäœã以åãšåãããã«å
ã®PascalCasingã«æ»ãããã®ã§ãããStep Functionãããžã§ã¯ãã§åŒã³åºããããšãã«ãã©ã ãã§æ瀺çãªPascalCaseLambdaJsonSerializer
ããŠãåé¡ãããŸããã
ããããšãïŒ
åä»ãªåé¿çã¯ãã°ã ãšç¢ºä¿¡ããŠããŸãã
ã¢ããã¹ããªãŒã ã¢ã»ã³ããªã«ãã£ãŠå®çŸ©ãããããŒã¿æ§é ã®è¯ãç¹ã
[JsonPropertyName]
å±æ§ããªããšãä»ã®ãã®ã«ã©ã®ãããªå¯äœçšããããããããŸããããJSONã·ãªã¢ã©ã€ã¶ãŒãã«ã¹ã¿ãã€ãºã§ããLambdaJsonSerializer
ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšãããšã次ã®æ¹æ³ã§ããã©ã«ãã®PascalCaseã®åäœã«æ»ãããšãã§ããŸãã JsonSerializerOptions.PropertyNamingPolicy
ãnull
ãŸãã
ãã®ãã£ã¹ã«ãã·ã§ã³ã«é¢é£ããŠãããããåé¡ïŒ628ã«ãªã³ã¯ããŠããŸãã
ããã¯é¢ä¿ããããšæããŸãã
APIGatewayProxyRequest.csãèŠããšã [JsonPropertyName]
ã¢ãããŒã·ã§ã³ããªãããšã«æ°ã¥ããŸããã ãããæ©èœããå¯äžã®çç±ã¯ãaïŒ LambdaJsonSerializer
ããã©ã«ãã§å€§æåãšå°æåãåºå¥ããªãéã·ãªã¢ã«åã«ãªããbïŒ LambdaJsonSerializer
ãã·ãªã¢ã«åã«ãã£ã¡ã«ã±ãŒã¹ã䜿çšããããã§ãã
ããã«ãããããŸããŸãªãã«ããŒã¢ã»ã³ããªã®ãã¹ãŠã®èŠæ±/å¿çã¯ã©ã¹ã«æ³šéãä»ããã®ã«å€ãã®æéãç¯çŽã§ããããšãããããŸããããã«ããŒã¢ã»ã³ããªã䜿çšããå Žåã¯ãé¢æ°ã§LambdaJsonSerializer
ã䜿çšããå¿
èŠãããããšãæå³ããŸãã
åŸããèãããšãé¢æ°ã¯ã©ã¹èªäœã§ã¯ãªããé¢æ°ãã³ãã©ãŒã«ãã£ãŠäœ¿çšãããPOCOã¯ã©ã¹ã«[LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
ã¢ãããŒã·ã§ã³ãä»ããæ¹ãçã«ããªã£ãŠããŸããïŒ æçµçã«ãé¢æ°ã¯èŠæ±/å¿çã¯ã©ã¹ã«äžèŽããã·ãªã¢ã©ã€ã¶ãŒã䜿çšããå¿
èŠãããããã§ãã
@bjorg IMO POCOã¯ã䜿çšãããã·ãªã¢ã«åã«é¢ããå±æ§ã¡ã¿ããŒã¿ãæã€ã®ã«ééã£ãå Žæã§ãã POCOã¯ããã®ãã¡ã€ã³ãã€ãŸãã¢ãã«æ€èšŒå±æ§ãšããããã£ã¿ã€ã/ååä»ãã®ã¿ã«é¢ä¿ããå¿ èŠããããŸãã ã·ãªã¢ã«åã§ã¯ããããã®ã¢ãã«æ³šéãå°é/䜿çšããå¿ èŠããããŸãã
IMHO LambdaSerializerå±æ§ã¯ãã·ãªã¢ã«åã®ã¿ã€ããåãå ¥ããããã«å€æŽããå¿ èŠããããŸãã ãªãã·ã§ã³ã®ã·ãªã¢ã«åãªãã·ã§ã³ãåããAmazon.Lambda.Serialization.Json.JsonSerializerã ãªãã·ã§ã³ãæå®ãããŠããªãå Žåãããã©ã«ãã§äºææ§ã®ããèšå®ã䜿çšãããŸãã
ãã ããPOCOã«ã¯ãæ£ããã·ãªã¢ã©ã€ã¶ãŒå±æ§ïŒNewtonsoftã®å Žåã¯[JsonProperty]
[JsonPropertyName]
ãSystem.Text.Jsonã®å Žåã¯
[DataMember]
ã¯Newtonsoft.Json
ãšSystem.Text.Json
äž¡æ¹ã§ãµããŒããããããã§ãã ãã ããåŸè
ã®å Žåã¯.NET5ãŸã§ã§ã¯ãããŸããã :(
https://github.com/dotnet/runtime/issues/29975
ãããŸã§ã®éã解決çã¯ããã¹ãŠã®POCOã«[DataMember]
ãš[JsonPropertyName]
泚éãä»ããããšã§ãã ã©ã¡ãã®å±æ§ã.NETCore 3.1ã§å®çŸ©ãããŠãããããè¿œå ã®å€éšäŸåé¢ä¿ã¯å¿
èŠãããŸããã
ããã«ãããå°ãªããšãããããã£åã«ã€ããŠããã¹ãŠã®ã¯ã©ã¹ã§äžè²«ããã·ãªã¢ã«å/éã·ãªã¢ã«åãä¿èšŒãããŸãããïŒ ã³ã³ããŒã¿ãŒã¯ã ILambdaSerialize
å®è£
ã«ãã£ãŠç»é²ãããå¿
èŠããããŸãã
ããã«ãªã³ã¯ãããŠããåé¡ã¯ã¯ããŒãºãããŠããŸãã ãã®ã¹ã¬ãããèªãã ã¹ãã ããã®ç§ã®ç解ã¯ã圌ããããããµããŒãããã€ããã¯ãªããšããããšã§ãïŒ https ïŒ
ããã èªã¿ééããŸããã 5.0ã®ãªã³ã¯ãèŠãŠãééã£ãçµè«ã«é£ã³ã€ããŸããã
ãã®åé¡ã«å¯ŸåŠããããã«ãPRhttps ïŒ//github.com/aws/aws-lambda-dotnet/pull/636ãå ¬ââéããŸããã ãã£ãŒãããã¯ãããã ããã°å¹žãã§ãããPRã®ãªã³ã¯ãããã¬ãã¥ãŒãã«ããããŠã³ããŒãããŠãå€æŽãæ©èœããããšã確èªããŠãã ããã
ãŸããããã«éåžžã«è¿ éã«åãçµãã§ãããŠããããšãã åææ¥ãå°ç¡ãã«ããŠãã¿ãŸããã
äžèŠè¯ãããã§ãã çŸåšããã¹ãŠã®Newtonsoft.Json
åç
§ãåé€ããããã»ã¹ãé²ããŠããŸãããæ®å¿µãªãããä¿®æ£ã確èªã§ããç¶æ
ã§ã¯ãããŸããã ä»ã®ãšãããåé¡ã®ããã·ãªã¢ã©ã€ã¶ãŒã¯ã©ã¹ãã³ããŒããŠãåé¡ã®ããã¹ããŒãã¡ã³ããåé€ããŸããã ããŸãããã°ãææ¥ã®EODãŸã§ã«ãéçºãã©ã³ãã§ãã®å€æŽããã¹ãã§ããŸãã
æåã«é ã«æµ®ãã¶ã®ã¯ã泚éãæ¬ èœããŠããå¯èœæ§ãããããšã§ãã [DataMember]
ã䜿çšããã代ããã«æé»ã®ãã£ã¡ã«ã±ãŒã¹ã«äŸåããå¿çããŒã¿æ§é ã¯ãããŸãããïŒ
@bjorgå¿é ãããŸããã 1é±éã®äŒè°ãããã¥ã¡ã³ãã®äœæãåŠæ ¡ã§ã®åäŸãã¡ã®æ¯æŽã®åŸãéããªæéãéãããåææ¥ã®ã³ãŒãã£ã³ã°ãè¡ãããšã¯éåžžã«å¿«é©ã§ããã
Newtonsoftã·ãªã¢ã©ã€ã¶ãŒã§[DataMember]
ã¢ãããŒã·ã§ã³ãæ¬ èœããå¯èœæ§ããããŸããã æ¢ç¥ã®ã¿ã€ãã«ã€ããŠã¯ãã¹ããããã®ã§ãç§ã¯ããã«ã€ããŠããŸãå¿é
ããŠããŸããã ãã®å Žåãç§ã®ã®ã£ããã«ã¯ã«ã¹ã¿ã å¿çã®ãã¹ãããããŸããã§ããã
-rc1
ããªãªãŒã¹ããããšã¯å¯èœã§ããããïŒ å¥ã®æ¹æ³ã§ããAFAIKã¯ãé©åãªã³ã³ãã€ã«å®æ°ãæå¹ã«ããŠ_.csproj_ãã¡ã€ã«ãããã¯ããæ¹æ³ã§ãã å¥ã®æ¹æ³ã¯ãããŸããïŒ
@bjorg PRã«ã¯ããã«ãæžã¿ã®NuGetããã±ãŒãžãå«ãzipãã¡ã€ã«ãžã®ãªã³ã¯ããããŸããããŒã«ã«ã®NuGetãœãŒã¹ãã»ããã¢ããããŠãããã«ããã±ãŒãžãé 眮ã§ããŸããïŒ
ä»æ¥ãäœãæ°ããããšãåŠã³ãŸãããããŒã«ã«ãã£ãŒããååŸããæ¹æ³ã§ãã .NET Coreã§ã¯éåžžã«ç°¡åã§ããããšãå€æããŸããïŒ SOã®èšäºãåç §ïŒã
ç§ã®æãé©åãªãã£ãŒãããã¯ã¯ã _options
ãä¿è·ããã/ãããªãã¯ã®Options
ããããã£ãšããŠå
¬éãã掟çã¯ã©ã¹ã§ã䜿çšã§ããããã«ããããšã§ãã
ããã§ãªããã°ãç§ã®åŽããã®ãã®æ°ããã³ãŒãã§ãã¹ãŠãçŽ æŽãããã§ãã THXïŒ
@normjã¯ãæŽæ°ãããnugetããã±ãŒãžããããã©ãã/ãã€æŽæ°ãããããç¥ãããŠãããŸãã ããäžåºŠãã¹ããå®è¡ããŠãã ããã
https://github.com/aws/aws-lambda-dotnet/issues/544#issuecomment -567780775
^ãã£ã¡ã«ã±ãŒã¹ã䜿çšããªããšãAPI Gatewayãç Žæããããã§ããïŒ
ã©ã ããALBäžã«ããå ŽåãCos Pascalã¯æ£åžžã«æ©èœããŸãããAPI Gatewayã§ã¯æ©èœããªãããããã®äžæŽåã¯æ··ä¹±ãæããŸãã system.textã«ç§»è¡ããåã¯ãããã¯ã©ã®ããã«æ©èœããŸãããïŒ
ããã¯é倧ãªå€æŽã§ãã ã€ã³ã¿ãŒãã§ã€ã¹ã¯æºæ ããŠããŸããã çµ±åãã¹ãããªãªãŒã¹åè£ã®ã³ãã¥ããã£ã¬ãã¥ãŒãäžè¶³ããŠããããããã®ã€ã³ã¿ãŒãã§ã€ã¹åé¢ã®ååã®éåã¯ããæããŸããã ãããæªè§£æ±ºã®ãŸãŸã§ããæéãé·ããã°é·ãã»ã©ãAWSã¯ã©ã€ã¢ã³ãã«ã³ã¹ããšå·¥æ°ã®æµªè²»ãçºçããAWSã®è©å€ã«åœ±é¿ãåãŒããŸãã
ãã®ãªãªãŒã¹ãå£ãããã®ãšããŠããŒã¯ããããã«ç§»åããä¿®æ£ãåæããããŸã§ããã¹ãŠã®éçºè
ã3.1ã«ç§»è¡ããªãããã«ããããšããå§ãããŸãã
ããã«ãåé¡ãããã«æªåããå¯èœæ§ãæžããããã«ãä¿®æ£ã«ã€ããŠã³ãã¥ããã£ã§è©±ãåããå®å
šã«ãã¹ãããããšããå§ãããŸãã
@lukebrowellã·ãªã¢ã©ã€ã¶ãŒã®äœæ¥ã¯ã1æã«æåºãããPRã§å ¬éãããŸããã https://github.com/aws/aws-lambda-dotnet/pull/568 PRã¯ãã«ã¹ã¿ã Lambdaã©ã³ã¿ã€ã ã§å®è¡ã§ãããã¹ãçšã®ãã«ãæžã¿ããã±ãŒãžãæ·»ä»ããŸããã
ããã§ã¯PRãšãšãã«ä¿®æ£ã«ã€ããŠè©±ãåã£ãŠãããææ¡ãããä¿®æ£ã«é¢ãããã£ãŒãããã¯ãæè¿ããŸãhttps://github.com/aws/aws-lambda-dotnet/pull/636
ç§ã¯ãããé倧ãªå€æŽã§ããããšã«åæãããããèµ·ããã®ã¯æ®å¿µã§ãããããªããææ¡ããé倧床ã«ã¯åæããŸããã ãã®åé¡ã¯ãã«ã¹ã¿ã å¿çãè¿ãLambdaé¢æ°ã«ã®ã¿åœ±é¿ãããã¹ãŠã®Lambdaé¢æ°ãšæ¢åã®Amazon.Lambda.Serialization.Jsonãåãããã«æ©èœããããã§ã¯ãªãããã3.1LambdaãªãªãŒã¹å šäœãå£ããŠãããšèšã£ãŠãéèšã§ã¯ãããŸããã ããããç§ã¯ãã©ã¹ãã¬ãŒã·ã§ã³ãç解ããŠããŸãããã®ãã°ãããæããŠãã¿ãŸããã
ãªãªãŒã¹ãé ããåå ãšãªãå€æŽã«é¢ããéèŠãªãã£ãŒãããã¯ããªãéããæ¥é±åãã«PRã®å€æŽãããã·ã¥ããããšæããŸãã
@bjorg PRãæŽæ°ããããã«ãæžã¿ããã±ãŒãžã®preview2ãžã®ãªã³ã¯ãè¿œå ãããŸããã https://normj-packages.s3.us-west-2.amazonaws.com/rework-serialization-preview2.zip
@normj .netcore 3.1ã©ã³ã¿ã€ã ãå ¬åŒã®ã©ã ãã€ã¡ãŒãžãšããŠãªãªãŒã¹/ãµããŒãããããå§åãããããããå ±åããã£ãŒãããã¯ãããªãã£ãããããããã®åé¡ã®æ¬ èœã«é¢ããŠã³ãã¥ããã£ãéšåçã«è²¬ä»»ãè² ã£ãŠããããšãç解ããŠããŸãã ç§èŠç§ãã«é¢ããŠããªãã®ãã¥ãŒãaspnetcoreã©ã ãé¢æ°/ãµãŒãã¹ã©ã€ãã©ãªã®æ©èœ/ãã¶ã€ã³ãäžå¿ã«è°è«ãéãããã«ïŒãã«ã³ãã¥ããã£ã®é¢äžãïŒç§ã¯@lukebrowellãšäžéšã«åæããäœæ¥åäœãéå§ãããããšã瀺åããŠããã³ã¡ã³ãã@lukebrowellç解ããªããããã®ããã±ãŒãžã¯å°ãæ¥ãã§TBHãæããŠãããããéçºãé²ããã®ã«åœ¹ç«ã€ãããŒã§ç¹å®ãããæ¬ ç¹ããã°ã«å¯ŸåŠããããšãç®çãšããŠããŸãã
ãã匷åãªã³ãã¥ããã£ãèŠããã§ãã ç§ã¯awsdevelopers.slack.comã«ãããããŠããŸããããïŒdotnetãã£ãã«ã¯å°ãéãã§ãã Lambda .NET Coreã®äººã ãéãŸã£ãŠããå¥ã®å Žæã¯ãããŸããïŒ
@bjorgç§ã¯åå ããŸã;ïŒããã«ïŒäºå®äžïŒ
@bjorgã¯æåŸ ãåããããšãã§ããŸããïŒ
ã¢ãã¬ãŒã¿ãŒããæåŸ ãªã³ã¯ãååŸããŸãã ããã«æçš¿ããŸãã
ãã®åé¡ã話é¡ã«ä¿ã€ããšã¯å¯èœã§ããïŒ
åæããŸãããããããããã¯ã«çããŠãããŸãããã AWS slackã°ã«ãŒãã«è¿œå ããããã®é£çµ¡æ¹æ³ã«é¢ããã³ãã¥ããã£ã®åé¡ïŒ647ãäœæããŸããã
ã¯ããã³ãã¥ããã£ã³ãã¥ãã±ãŒã·ã§ã³ãããé©åã«èšå®ããæ¹æ³ãèªåã®ã³ãã¥ãã±ãŒã·ã§ã³ãããé©åã«è¡ãæ¹æ³ãããã³ããé¢äžããæ¹æ³ã«ã€ããŠã®ææ¡ãæè¿ããŸãã
_preview2_ã¯ç§ã«ã¯è¯ãããã§ãã
Amazon.Lambda.Serialization.SystemTextJsonã®ããŒãžã§ã³2.0.0ãå€æŽãããŸããã ã¡ã€ã³ãã€ã¯ã¢ãŠãã¯ãã·ãªã¢ã©ã€ã¶ãŒã¯ã©ã¹ãDefaultLambdaJsonSerializer
ã«æŽæ°ããŸãã
ãŸããå€æŽã«ã€ããŠèª¬æããã»ã¯ã·ã§ã³ãããããã°æçš¿ãå
¬éããŸããã
https://aws.amazon.com/blogs/developer/one-month-update-to-net-core-3-1-lambda/
æãåèã«ãªãã³ã¡ã³ã
ãã®åé¡ã話é¡ã«ä¿ã€ããšã¯å¯èœã§ããïŒ