35.5. 使用方法
35.5.1. SQS プロデューサーによって設定されるメッセージヘッダー
ヘッダー | タイプ | 説明 |
---|---|---|
|
| Amazon SQS メッセージの MD5 チェックサム。 |
|
| Amazon SQS メッセージ ID。 |
|
| Camel 2.11 以降、Amazon SQS メッセージが他のユーザーに表示される遅延秒数。 |
35.5.2. SQS コンシューマーによって設定されるメッセージヘッダー
ヘッダー | タイプ | 説明 |
---|---|---|
|
| Amazon SQS メッセージの MD5 チェックサム。 |
|
| Amazon SQS メッセージ ID。 |
|
| Amazon SQS メッセージ受信ハンドル。 |
|
| Amazon SQS メッセージ属性。 |
35.5.3. 高度な AmazonSQS 設定
Camel アプリケーションがファイアウォールの背後で実行されている場合、または AmazonSQS インスタンス設定をより詳細に制御する必要がある場合は、独自のインスタンスを作成できます。
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey"); ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setProxyHost("http://myProxyHost"); clientConfiguration.setProxyPort(8080); AmazonSQS client = new AmazonSQSClient(awsCredentials, clientConfiguration); registry.bind("client", client);
Camel aws-sqs コンポーネント設定で参照します。
from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5") .to("mock:result");
35.5.4. SQS キューの作成または更新
SQS コンポーネントでは、エンドポイントが開始されると、チェックが実行され、キューの存在に関する情報が取得されます。SQSConfiguration オプションを使用して QueueAttributeName マッピングを介して作成をカスタマイズできます。
from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5") .to("mock:result");
この例では、AWS で MyQueue キューがまだ作成されていない場合、SQS 設定のデフォルトパラメーターで作成されます。すでに AWS で稼働している場合は、SQS 設定オプションを使用して既存の AWS 設定をオーバーライドします。
35.5.5. 単一メッセージの DelayQueue VS 遅延
2.23.0 から、コンポーネントに新しいオプション delayQueue が追加されました。オプション delayQueue が true に設定されている場合、SQS キューは DelaySeconds オプションが遅延として指定された DelayQueue になります。DelayQueue の詳細については、AWS SQS のドキュメント を参照してください。考慮すべき重要な情報の 1 つは、次のとおりです。
- 標準キューの場合、キューごとの遅延設定は遡及的ではありません。設定を変更しても、すでにキューにあるメッセージの遅延には影響しません。
- FIFO キューの場合、キューごとの遅延設定は遡及的です。設定を変更すると、すでにキューにあるメッセージの遅延に影響します。
公式ドキュメントに記載されているとおりです。単一のメッセージに遅延を指定する場合は、delayQueue オプションを無視できますが、エンキューされたすべてのメッセージに固定遅延を追加する必要がある場合は、このオプションを true に設定できます。