BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AWSがLambda向けのPowerShellカスタムランタイムを発表

AWSがLambda向けのPowerShellカスタムランタイムを発表

原文(投稿日:2022/06/04)へのリンク

AWSは最近、AWS Lambda向けの新たなPowerShellカスタムランタイムを発表した。これはPowerShellで記述したLambda関数を実行するためのランタイムである。この新たなランタイムを使うことで開発者はLambdaでネイティブPowerShellコードをコンパイルせずに記述できるため、デプロイとテストがシンプルになる。

AWSのサーバーレスディベロッパーアドボケートのJulian Wood氏は、その利点について次のように説明している。

PowerShell向けのこの新たなカスタムランタイムでは、PowerShellをコンパイルして.NETランタイムでホストせずに、ネイティブPowerShellを使用します。ネイティブPowerShellを使うということは、関数ランタイム環境が標準のPowerShellセッションと一致することを意味します。これにより、開発とテストのプロセスがシンプルになります(...)このカスタムランタイムでは、Write-Outputの出力を含め、パイプラインに出力されるものをすべて関数出力として返します。これにより、関数の出力、エラーメッセージ、ログをより細かく制御することができます。

Lambdaは2018年からPowerShellをサポートしているが、以前のソリューションではPowerShell向けの.NET Coreランタイム実装が必要であり、関数はPowerShellパイプラインからの最後の出力のみを返していた。Microsoft MVPおよびPowershellエバンジェリストのJustin Grote氏は次のようにツイートしている。

ついにAWS LambdaにPowerShellランタイムが登場しました。「PowerShellホストのC#アプリを構築してください。これが私たちがPowerShellをサポートする方法です」ではないのです。すばらしい取り組みです!

出典: https://aws.amazon.com/blogs/compute/introducing-the-powershell-custom-runtime-for-aws-lambda/

PowerShellを使ったLambda関数の構築は、現在 .NET 6と.NET Core 3.1をサポートしている。このランタイムでは、Lambda関数で使用できる2つの主要な変数が定義される。1つは$LambdaInputで、入力イベントデータを含むPSObjectである。もう一つは$LambdaContextで、呼び出しとランタイム環境に関する情報をメソッドとプロパティに提供するオブジェクトである。

Amazonのシステム開発エンジニアでPowerShell Explainedの著者であるKevin Marquette氏は、次のように書いている

これは本当に素晴らしい。元のPowerShell Lambda開発エクスペリエンスに満足できていなかったため、ユーザエクスペリエンスがどのようにできるかを示すカスタムランタイムを開発しました。彼らは私のコンセプトを採用し、実稼働させるためにリソースを配置しました。最終的にリリースできたことをうれしく思います。

この新たなカスタムランタイムでは、PowerShellコードをLambdaコンソール内で直接編集でき、Add-Typeやさまざまなハンドラーオプションなどの追加機能をサポートしている。Wood氏は、どのように構築してパッケージ化するかを説明している。

このカスタムランタイムは、Lambdaのprovided.al2ランタイムをベースとしています。これはAmazon Linux環境で実行されます(...)ランタイムをLambdaレイヤーとしてビルドしてパッケージ化するか、コンテナーイメージに含めることができます。レイヤーとしてパッケージ化する場合、複数の機能に追加できるため、デプロイがシンプルになります。ランタイムは、クロスプラットフォームPowerShellコアをベースにしています。これは、Windows、Linux、macOSでPowerShell向けのLambda関数を開発できることを意味します。

GitHubリポジトリでは、このカスタムランタイム向けのコードに加え、インストールオプションやさまざまな例を入手できる。

>

作者について

この記事に星をつける

おすすめ度
スタイル

BT