問題タブ [spring-cloud-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - プロジェクトは非常に小さいですが、Spring JARファイルは非常に大きい
を使用して展開する小さなSpring Boot
プロジェクトがあります。Spring Cloud Function
AWS
アプリは何をしますか?
- エンドポイントとして機能
- 小さなデータを DynamoDB データベースに接続して書き込む
- URL に転送 (ステータスコード 302)
そのプロジェクトをjar
ファイルとしてパッケージ化すると、40,3 MB の大きなファイルが得られます...
そのファイルを AWS にLambda
(クラウド機能として)デプロイする20-30 seconds
と、コールド スタートに までかかります。
私の場合、ユーザーはラムダが呼び出された後に Web ページにアクセスします... ユーザーが Web ページにアクセスするまで 20 ~ 30 秒待たせるのは良くありません。
ここに私のpom.xmlがあります:
クラウド関数を呼び出すための非常に薄くて小さな jarを取得するために不足しているものはありますか?
ありがとう!
routes - ルーティングを使用した Vanilla Spring Cloud Function
Spring クラウドの新しいミツバチとして、私は spring-cloud-function-starter-web ( 3.0.9.RELEASE ) 依存関係で正常に動作する多機能 Spring クラウド関数アプリケーションを開発しています。注:パッケージごとに異なる機能があり、以下の構成で正常に動作しています。
たとえば、[POST] localhost:8080/func1
それは呼び出しFunc1 implements Function<I, O>
です。今回はルーティングについて紹介したいと思います。そのために、以下のみを変更しましたapplication.yml
今私が使用して呼び出すとき
例外は
今、私が見つけたコードを調べるRequestProcessor
と、以下の関数で
デフォルトでは、ルーティングするためにメッセージヘッダーに「function.name」が必要なようです。そのため、application.yml の行をコメントアウトすることを考えましたrouting-expression
。無限ループに入り、stackoverflow エラーが発生します。
私は何か間違ったことをしていますか?これが機能したとしても、プロパティごとに持っているさまざまな関数を認識しspring.cloud.function.scan.packages
ますか? 助けてください。あと2つ質問なのですが、
一部のブログ/投稿/ドキュメントでは、
spring.cloud.function.definition
as http ヘッダーを渡すことができるようです。これがこの 3.0.9.RELEASE に当てはまる場合、application.yml で同じプロパティについて言及する必要がありますか?使用
spring.cloud.function.definition=func1;func2
せずに使用routingFunction
して、ルーティング動作が適切に機能することを期待できますか? それとも、これは何か他の機能を意図したものですか?
上記の問題のため、別の構成オプションをテスト/プレイしたことはありません。春の雲に関する知識が乏しいことや、幼稚な質問をしてしまったことをお許しください。
編集
デバッグ後、Spring ドキュメントの助けを借りて、適切な構成を見つけました
この構成では、メッセージを関数にルーティングできますが、初回のみです。今、それは私を完全に混乱させたものです。アプリケーションを起動して郵便配達員からヒットすると、実際の関数を識別し、入力をGenericMessage
期待どおりに変換できます (ただし、後で要求本文の解析に失敗します)。しかし、2回目以降にヒットすると、GenericMessageへの入力を解析することさえできず、別のエラーが発生します。そして、これは繰り返し可能な動作です。
参考までに、2 つの連続したリクエストのログを見つけてください (postman curl と一緒に)