Amazon.Lambda.AspNetCoreServerは、reInvent中に発表されたばかりのApplication Load Balancer統合と連携しますか? これを試してみると、奇妙な動作に気づきました。何か間違ったことをしているのか、それとも既知の問題なのかはわかりません。
私はちょうど新しいALB統合を見ていました。 Lambda関数に送信されるJSONリクエストは、APIGatewayとは異なります。 APIGatewayProxyFunctionでJSON形式を検出し、ソースに基づいて異なる解析ロジックを実行することはそれほど難しくありません。
それは素晴らしいことです。 すでにALBを多用しているので、おそらくALBを統合の推奨方法として使用します。
現在APIGatewayProxyFunctionを使用していますが、APIGatewayはトランザクションを完了するのに30秒しか許可していません。 ELBは、処理が必要な大規模なデータの回避策として適しています。 (ラムダ関数の制限まで15分)
LambdaEntryPoint:Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunctionを使用して、APIGatewayとELBのどちらを使用するかを気にしないでください。
私はalb-supportブランチでALBサポートに取り組んできました。 そのブランチの次のステップはAmazon.Lambda.AspNetCoreServer
に取り組んでいます
すごい速かった! =)ありがとう!
待てない!
これは素晴らしいです、ありがとう。 これをdotnetコアWebアプリに使用することを楽しみにしています。 ありがとう!
同意しました、この機能を待つことはできません!
ステータスの更新Amazon.Lambda.AspNetCoreServer
の更新を含むブランチalb-support-aspnetcoreをプッシュしました。
変更は、私がホップしたよりも大きなリファクタリングをトリガーすることになりました。 このライブラリを最初に作成したとき、Lambda関数用に複数のHTTPフロントエンドがあるとはまったく予想していませんでした。
誰かがリポジトリのクローンを作成して、検証を終える間にこれを試してみるのであれば、それは素晴らしいことです。 リポジトリのクローンを作成し、 Amazon.Lambda.ApplicationLoadBalancerEvents
とAmazon.Lambda.AspNetCoreServer
に移動して、 dotnet pack
を実行する必要があります。 次に、作成したNuGetパッケージをローカルフィードに追加します。
ほとんどのアプリでは、 LambdaEntryPoint
で行う必要がある唯一の変更、または名前を付けたものは、基本クラスをAPIGatewayProxyFunction
からApplicationLoadBalancerFunction
に変更します。
面白いことに、masterを使用してLAMBDA名に再デプロイし、ブランチの前にLambdaEntryPoint:Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunctionでELBを使用でき、すべてが機能しました。 (パス「api / *」を使用するには、ELBトリガーにルールを設定する必要があります)
(どういうわけか、新しいラムダ関数でELBトリガーを設定すると、ヘッダー/応答がほぼ同じであるために、ブランチがなくてもゲートが機能します。)
時間があれば、今日の後半にあなたのブランチをテストします。
API GatewayとALBイベントの間にはかなりの類似性があり、幸運を得ることができます。 複数値ヘッダーを有効にした場合、またはリクエスト本文からのバイナリデータがある場合は、失敗します。
ブランチはよさそうだ。
これはすごいですね! この機能が実際にどのように機能するかを知りたいと思っています。 これをマージしてパッケージ化できる時期について、ETAの見積もりはありますか?
公式パッケージでこれを見るのを本当に楽しみにしています。
これはあなたが持っている最高のサーバーレス製品だと思います。 2つの大きな欠点がなければ、ほとんどのAPIとWebサイトをこれに移行します。 APIゲートウェイと(ラムダ)コールドスタートの遅延。 これにより、そのうちの1つが修正され、ALBヘルスチェックはラムダを存続させるのに役立つはずです:-)
@normj 、これがNugetで利用可能になると期待できるときにETAがあるかどうかだけ知りたいですか?
この機能がNugetにも含まれるのを心待ちにしています。
既存のアプリケーションでこれをテストしましたが、問題なく動作しているようです。
Amazon.Lambda.AspNetCoreServerのバージョン3.0.0は、ALBをサポートして本日リリースされました。 詳細については、ブログ投稿を確認してください。 https://aws.amazon.com/blogs/developer/updates-for-serverless-asp-net-core/
@normj素晴らしい投稿と素晴らしい仕事! .NETをAWSエコシステムに統合するためにあなたがするすべてに感謝します。
@ryanpagelようこそ😄
機能がリリースされたら終了します。
最も参考になるコメント
私はalb-supportブランチでALBサポートに取り組んできました。 そのブランチの次のステップは
Amazon.Lambda.AspNetCoreServer
に取り組んでいます