BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AWS Lambdaが.NET 6をサポート

AWS Lambdaが.NET 6をサポート

原文(投稿日:2022/03/08)へのリンク

AWS Lambdaは先頃、マネージドランタイムとコンテナベースイメージの両方で.NET 6のサポートを追加した。新たなランタイムには.NET言語の新機能とパフォーマンスの最適化が導入される他、ロギングが改善され、トップレベルステートメントによる関数定義の簡略化が実現されている。

新しい.NET 6 Lambdaランタイムは、x86とArms/Graviton2プロセッサをサポートし、C# 10とF# 6を新たにサポートする他、C# 9のトップレベルステートメントを使った新しいコーディングパターンをオプションで提供する。

新ランタイムの大きな強化点のひとつがロギングの改善だ。これについて、AWSのシニアソフトウェアエンジニアであるNorm Johanson氏が、別の記事の中で説明している。

.NET Lambda関数のロギングが.NET 6用に改良されて、より優れたトレーサビリティとログ対象のコントロール機能が提供できるようになりました(...)。これまでの.NET Lambdaランタイムに多く寄せられていた要望のひとつとして、ログにLambda要求IDを加えてトレーサビリティを改善する、というものがありました。これが.NET 6ランタイムで実現して、.NETのログフォーマットが他のラムダランタイムと同じ形式になりました。また、ログメッセージのレベルが、要求IDと合わせてAmazon CloudWatch Logsに表示されるようになりました。これにより、エラーや警告など、特定のメッセージパターンをログから検索する作業が簡単になります。

Johanson氏はさらに、従来の.NETバージョンを実行する既存Lambda関数の移行に関しても説明している。AWSでもガイドを公開して、自らの提供する他の.NET 6サポート対応サービスやツールについて、詳細な情報を提供している。

.NET の最新LTSリリースを提供するメリットとしては、開発プロセスの簡略化、FileStreamのパフォーマンス改善、プロファイルに基づく最適化、AOTコンパイル、といったものが挙げられる。新しいランタイムには、多くの開発者からコメントが寄せられている。Hacker News上の議論では、ユーザjdmichalが次のように発言している。

私は日頃、PowerShellラムダを実行するためにこれを使用しています。C#やF#での運用に比べれば少数派かも知れません。ただひとつ気に入らない点は、メモリが256MBを下回ると、ランタイムのパフォーマンスが低下し始めることです。実行上に問題はないのですが、相当遅くなります。あまりに遅くなるので、メモリ-秒数で考えれば、単純にメモリを増設した方が安上りなくらいです。

Redditのスレッドでは、さらにユーザchrisoverzeroが、

トップレベルステートメントが使えるのは魅力的なのですが、私はいつも、オーバーヘッドを減らすために、同じアセンブリ内に(場合によっては同じクラス内にも)複数のFunctionを置くようにしています。エントリポイントを複数用意する方法はないと思うのですが、そうですよね?

新ランタイムは、AWS Chinaリージョン以外のLambdaが使用可能な全リージョンで提供される。

作者について

この記事に星をつける

おすすめ度
スタイル

BT