0

AWSでサーバーレスアーキテクチャを使用してWebアプリケーションを構築しています。AWS ServerlessアプリケーションがSpringフレームワークで時間をロードする

このアプリケーションの目的は、世界中のファイルをアップロードするためのパブリックAPIを公開することです。

AWS API-GatewayとLambdaを使用して、コードとS3をストレージとして実行します。

ラムダ関数にデプロイするコードを書くためにJava Springフレームワークを使用することは非常に可能であり、(Serverlessフレームワークのようなサードパーティでも)うまくサポートされています。

しかし、本当にお勧めですか? Springアプリケーションは通常、完全にロードするのに30秒以上かかるので、Lambdaは直ちに実行する必要があります。

このオプションはAWSでもサポートされています(非常に悪い考えです)。

+0

私はあなたがSpringフレームワークが非常に広範な用語であることを知っていれば幸いです。私が正しく覚えていれば、ラムダを書いている間、人々が使う時代の大半はスタンドアロンとして育てる春の靴です。重い春のコンポーネントではありません。言い換えれば、Springを使用してLambdaをコーディングする人は、Springの最小バージョンを使用します。 – kosa

答えて

1

Javaは、AWS Lambdaのサポートされているプログラミング言語の1つです。 Javaを使用してアプリケーションを実行することは可能ですが、ユースケースに合っている場合はウォームアップ時間を考慮する必要があります。それを使用してください。また、リクエストを受信しない場合は、SNSとラムダのフックを使用して暖かく保つことができます。

+0

私はJavaのウォームアップについて話していませんが、おそらく1〜2秒以上です。私は起動に30秒かかることがあるSpringアプリケーションの読み込み時間について話しています。 私はなぜ最悪の選択(おそらくImが何か不足していて、ロードにそれほど時間がかからないように設定している)のように見える場合、そのようなオプションをサポートするのかと尋ねています – yuz

+0

Springアプリケーションのコンテキスト30秒間ロードすると、マイクロサービスの概念を根本的に理解していないと思われます。 –

+0

アプリケーションの初期ローディング時間は、この側面のマイクロサービスとほとんど関係ありません。私は会話のどこでもマイクロサービスについて言及していません。 春の起動アプリケーションを実行する場合、.itのロードには通常数秒かかります。それは私の春のアプリケーションではありません。 これほど長い時間がかかりました。なぜなら、誰かが、そのような解決策を環境(ラムダ)で使用することを奨励していたのでしょうか。 – yuz

0

個人的には、私はのAVOIDをできるだけAWSラムダに使用します。既存の実装をマイクロサービスに移行しようとしていると仮定して、Javaを使用することは非常に魅力的です。しかし、あなたはいつも他のランタイムに比べてウォーミングアップ時間が遅いというペナルティを支払うつもりです。ラムダはC1コンパイルとC2コンパイルをトリガするのに十分な回数呼び出されないかもしれないので、Javaコンパイラの最適化を忘れるかもしれません。 AWSのラムダとJavaの使用

私の好みはあなたが無駄の実装を作成することを計画している場合のみ、ラムダのためのJavaを使用するようになり、何の春を意味し、休止状態などなど

0

は完全に罰金ですが、ラムダは機能ですアプリケーションではありません!

Springのようなフレームワークを使う必要はないので、Springのようなフレームワークを使わないでください。

質問はあなたの機能で何を達成したいのですか?そのような少量のコードを実行するためにフレームワークが必要なのはなぜですか? あなたのユースケースは何ですか?

関連する問題