35.5. 使用方法


35.5.1. SQS プロデューサーによって設定されるメッセージヘッダー

ヘッダータイプ説明

CamelAwsSqsMD5OfBody

String

Amazon SQS メッセージの MD5 チェックサム。

CamelAwsSqsMessageId

String

Amazon SQS メッセージ ID。

CamelAwsSqsDelaySeconds

Integer

Camel 2.11 以降、Amazon SQS メッセージが他のユーザーに表示される遅延秒数。

35.5.2. SQS コンシューマーによって設定されるメッセージヘッダー

ヘッダータイプ説明

CamelAwsSqsMD5OfBody

String

Amazon SQS メッセージの MD5 チェックサム。

CamelAwsSqsMessageId

String

Amazon SQS メッセージ ID。

CamelAwsSqsReceiptHandle

String

Amazon SQS メッセージ受信ハンドル。

CamelAwsSqsMessageAttributes

Map<String, String>

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 に設定できます。

35.5.6. SQS コンポーネントで AWS IAM 認証情報を使用する

AWS IAM クレデンシャルを使用するには、Camel アプリケーションを起動する EC2 インスタンスに関連付けられた IAM ロールがあり、適切なポリシーがアタッチされていることを最初に確認する必要があります。

この機能は、リモートインスタンスでのみ true に設定する必要があります。さらに、IAM は AWS 固有のコンポーネントであるため、静的認証情報もローカルで使用する必要があります。

この機能を実装するには、useIAMCredentialstrue に設定します。

注記

ローカル環境とリモート環境に基づいてこの機能のオンとオフを切り替えるには、システム環境変数でこのクエリーパラメーターを有効にすることを検討できます。たとえば、isRemote という名前のシステム環境変数が true に設定されている場合、コードで useIAMCredentials クエリーパラメーターを true に設定できます。

この機能により、静的な認証情報が完全に不要になるわけではありませんが、AWS 環境で IAM 認証情報を使用すると、リモート環境でリフレッシュする必要がなくなり、IAM 認証情報は 6 時間ごとに自動的にリフレッシュされ、EC2のセキュリティポリシーが更新されたときにも更新されるのでより安全です。

これは AWS が認証情報を管理するために推奨する方法であるため、できるだけ頻繁に使用する必要があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.