問題タブ [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.

0 投票する
1 に答える
228 参照

spring - プロジェクトは非常に小さいですが、Spring JARファイルは非常に大きい

を使用して展開する小さなSpring Bootプロジェクトがあります。Spring Cloud FunctionAWS

アプリは何をしますか?

  • エンドポイントとして機能
  • 小さなデータを DynamoDB データベースに接続して書き込む
  • URL に転送 (ステータスコード 302)

そのプロジェクトをjarファイルとしてパッケージ化すると、40,3 MB の大きなファイルが得られます...

そのファイルを AWS にLambda(クラウド機能として)デプロイする20-30 secondsと、コールド スタートに までかかります。

私の場合、ユーザーはラムダが呼び出された後に Web ページにアクセスします... ユーザーが Web ページにアクセスするまで 20 ~ 30 秒待たせるのは良くありません。

ここに私のpom.xmlがあります:

クラウド関数を呼び出すための非常に薄くて小さな jarを取得するために不足しているものはありますか?

ありがとう!

0 投票する
1 に答える
622 参照

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つ質問なのですが、

  1. 一部のブログ/投稿/ドキュメントでは、spring.cloud.function.definitionas http ヘッダーを渡すことができるようです。これがこの 3.0.9.RELEASE に当てはまる場合、application.yml で同じプロパティについて言及する必要がありますか?

  2. 使用spring.cloud.function.definition=func1;func2せずに使用routingFunctionして、ルーティング動作が適切に機能することを期待できますか? それとも、これは何か他の機能を意図したものですか?

上記の問題のため、別の構成オプションをテスト/プレイしたことはありません。春の雲に関する知識が乏しいことや、幼稚な質問をしてしまったことをお許しください。

編集

デバッグ後、Spring ドキュメントの助けを借りて、適切な構成を見つけました

この構成では、メッセージを関数にルーティングできますが、初回のみです。今、それは私を完全に混乱させたものです。アプリケーションを起動して郵便配達員からヒットすると、実際の関数を識別し、入力をGenericMessage期待どおりに変換できます (ただし、後で要求本文の解析に失敗します)。しかし、2回目以降にヒットすると、GenericMessageへの入力を解析することさえできず、別のエラーが発生します。そして、これは繰り返し可能な動作です。

参考までに、2 つの連続したリクエストのログを見つけてください (postman curl と一緒に)

最初のリクエスト:適切なルーティング 2 番目のリクエスト:ルーティングの失敗