問題タブ [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.
java - spring cloud aws プロジェクトのアクティブな所有者はもういませんか?
プロジェクトspring-cloud-awsで、過去 2 か月以内にアクティビティが見られません。問題が解決されることはなく、PR がレビューまたはマージされることもありません。Spring Boot アプリと sqs キューに大きく依存しているため、このモジュールを使用しようとしているため、これは私のチームにとって問題ですが、モジュールに含まれなくなった新機能があります。たとえば、 SNS メッセージの型付きメッセージ属性を一覧表示します。
私の同僚の 1 人は、上記の問題を修正する PR を開始しましたが、反応はありません。春のチーム内でこの問題の認識を高める方法がよくわかりません。
Spring 開発者チームはこの問題を認識していて、気にしていないだけなのか、それとも知られていないのか? 少なくとも PR を承認するために、誰かがプロジェクトの所有権を取得できれば、それは素晴らしいことです。個人的には、AWS と統合するためのカスタム実装を作成したり、Spring なしで生の API を使用したりしたくありません。
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 を使用しているか、@SqsListener
1 つのキューのみでアノテーションを使用していました。
複数のキューに異なる資格情報を提供する他の方法はありますか?
私のテストコード:
編集:
もう少し試した後、AmazonSQS クライアントを 2 つの別々の に注入することができましたSimpleMessageListenerContainer
。その後、問題はQueueMessageHandler
.
@SqsListener
Bean コンテキストなしで手動で作成すると、アノテーションを使用してメソッドが検索されません。また、ハンドラーを手動で設定する方法はありません。
Bean として作成すると、注釈のすべての Bean が表示されます。そのため、探すべきではないキューのメソッドも見つけます。そして、資格情報が機能しないため、クラッシュします。単一の SqsListener メソッドのみ
を作成する方法がわかりません。
そして、 a 以外は何も取りません。QueueMessageHandler
SimpleMessageListenerContainer
QueueMessageHandler
java - spring-cloud-aws-messaging がキューを停止しようとするのを防ぎます
spring-cloud-aws-messaging
Spring Boot プロジェクトで使用しています。
AWS で SQS キューを手動で作成しました。
次のように使用されています。
それは正常に動作します。しかし、IDE でアプリケーションを停止するか、Spring Boot テストが終了すると、キューを停止しようとします。それを止めることはできず、最終的にはタイムアウトします。次の例外がスローされます。
この待機により、アプリケーションまたはテストのシャットダウンが遅くなります。
spring-cloud-aws-messaging
これが手動で作成されたキューであり、シャットダウンしようとしないことをどのように確認すればよいですか?
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
アプリケーションのプロパティ
アイデアはありますか、なぜこれが起こっているのですか?