問題タブ [spring-cloud-aws]

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 に答える
69 参照

java - spring cloud aws プロジェクトのアクティブな所有者はもういませんか?

プロジェクトspring-cloud-awsで、過去 2 か月以内にアクティビティが見られません。問題が解決されることはなく、PR がレビューまたはマージされることもありません。Spring Boot アプリと sqs キューに大きく依存しているため、このモジュールを使用しようとしているため、これは私のチームにとって問題ですが、モジュールに含まれなくなった新機能があります。たとえば、 SNS メッセージの型付きメッセージ属性を一覧表示します。

私の同僚の 1 人は、上記の問題を修正する PR を開始しましたが、反応はありません。春のチーム内でこの問題の認識を高める方法がよくわかりません。

Spring 開発者チームはこの問題を認識していて、気にしていないだけなのか、それとも知られていないのか? 少なくとも PR を承認するために、誰かがプロジェクトの所有権を取得できれば、それは素晴らしいことです。個人的には、AWS と統合するためのカスタム実装を作成したり、Spring なしで生の API を使用したりしたくありません。

0 投票する
2 に答える
3631 参照

java - Spring Boot の異なる資格情報を持つ複数の AWS SQS キュー

Spring Boot アプリケーションがあり、複数の AWS SQS キューからメッセージを受信したいと考えています。これらのキューはすべて独自の認証情報を持っています (悲しいことに、それについて私にできることは何もありません)。これらのクレデンシャルはいずれも、他のキューの 1 つにアクセスできません。それらはすべて、1 つのキューだけに制限されています。

キューと資格情報が 1 つだけなので、簡単です。AWSCredentialsProvider資格情報をBeanとして提供し、メソッドに@SqsListener\で注釈を付けるだけ@EnableSqsです。
しかし、複数の資格情報でそれを行う方法がわかりません。

@SqsListener注釈には、資格情報、事前構成されたオブジェクト、またはその他の役立つものを提供する方法がありませんAmazonSqs

CredentialsProviderまたはAmazonSqsクライアントを拡張して、キューを資格情報にマップする方法を探しましたが、役に立ちませんでした。
AmazonHttpClient のヘッダーに認証情報を挿入しようとしましたが、それもできませんでした。

SQS キューを手動でリッスンするために必要なものをすべて作成しようとしました。しかし、私は の MessageHandler を作成することに行き詰まっていSimpleMessageListenerContainerます。
requiredQueueMessageHandlerは、アプリケーション コンテキストを使用して Bean として作成された場合にのみ機能します。そうしないと、 で注釈が付けられたメソッドが検索されません@SqsListener
悲しいことに、私が見つけることができた唯一のチュートリアルまたは例は、避けたい JMS を使用しているか、@SqsListener1 つのキューのみでアノテーションを使用していました。

複数のキューに異なる資格情報を提供する他の方法はありますか?

私のテストコード:

編集:

もう少し試した後、AmazonSQS クライアントを 2 つの別々の に注入することができましたSimpleMessageListenerContainer。その後、問題はQueueMessageHandler.

@SqsListenerBean コンテキストなしで手動で作成すると、アノテーションを使用してメソッドが検索されません。また、ハンドラーを手動で設定する方法はありません。
Bean として作成すると、注釈のすべての Bean が表示されます。そのため、探すべきではないキューのメソッドも見つけます。そして、資格情報が機能しないため、クラッシュします。単一の SqsListener メソッドのみ
を作成する方法がわかりません。 そして、 a 以外は何も取りません。QueueMessageHandler
SimpleMessageListenerContainerQueueMessageHandler

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

java - spring-cloud-aws-messaging がキューを停止しようとするのを防ぎます

spring-cloud-aws-messagingSpring Boot プロジェクトで使用しています。
AWS で SQS キューを手動で作成しました。

次のように使用されています。

それは正常に動作します。しかし、IDE でアプリケーションを停止するか、Spring Boot テストが終了すると、キューを停止しようとします。それを止めることはできず、最終的にはタイムアウトします。次の例外がスローされます。

この待機により、アプリケーションまたはテストのシャットダウンが遅くなります。

spring-cloud-aws-messagingこれが手動で作成されたキューであり、シャットダウンしようとしないことをどのように確認すればよいですか?

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

spring - 「amazonS3Client」という名前の Bean 作成エラー: 要求された Bean は現在作成中です: 解決できない循環参照はありますか?

Spring Cloud AWS がSimpleStorageProtocolResolverを正しく構成していないため、すべてが開始されました。このクラスは、 ResourceLoaderの使用中に s3:// プロトコルを処理します。詳細については問題を参照してください: Spring AWS の例では org.springframework.core.io.WritableResource にキャストできません

そのため、手動で作成する必要がありました。しかし、私は LocalStack ソリューション ( https://github.com/localstack/localstack ) も使用しています。Spring Cloud AWS にはエンドポイントを手動で構成するオプションがないため、AmazonS3Clientを作成する必要がありました (何だと思いますか?)。手で。

ここで問題が発生します。クラスS3Configurationクラス (以下を参照) で両方の Bean を作成すると、Spring Framework は Bean の作成をスキップします。そして、S3Handlerクラス (以下を参照) に接続しようとすると、次のエラーが発生します: 「 amazonS3Client 」という名前の Bean の作成中にエラーが発生しました: 要求された Bean は現在作成中です: 解決できない循環参照はありますか?

しかし、繰り返しになりますが、すべてがここにあります。これらのクラス間に循環参照はありません。

プロジェクトを簡略化したので、ここに投稿できます。

pom.xml

S3Configuration.java

S3Handle.java

アプリケーション.java

アプリケーションのプロパティ

アイデアはありますか、なぜこれが起こっているのですか?