7.6. 使用方法
7.6.1. 静态凭证和默认凭证提供程序
您可以通过指定 useDefaultCredentialsProvider
选项并将其设置为 true 来避免使用显式静态凭证。
-
Java system properties -
aws.accessKeyId
andaws.secretKey
-
环境变量 -
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。 - AWS STS 的 Web Identity Token。
- 共享凭证和配置文件。
-
Amazon ECS 容器凭证 - 如果设置了环境变量
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
,则从 Amazon ECS 加载。 - Amazon EC2 实例配置集凭据。
有关此信息的更多信息,您可以查看 AWS 凭证文档
7.6.2. SQS producer 设置的消息标头
标头 | 类型 | 描述 |
---|---|---|
|
| Amazon SQS 消息的 MD5 校验和。 |
|
| Amazon SQS 消息 ID。 |
|
| Amazon SQS 消息可看到的延迟时间。 |
7.6.3. SQS consumer 设置的消息标头
标头 | 类型 | 描述 |
---|---|---|
|
| Amazon SQS 消息的 MD5 校验和。 |
|
| Amazon SQS 消息 ID。 |
|
| Amazon SQS 消息接收处理。 |
|
| Amazon SQS 消息属性。 |
7.6.4. 高级 AmazonSQS 配置
如果您的 Camel 应用程序在防火墙后面运行,或者需要对 SqsClient
实例配置拥有更多控制,您可以创建自己的实例:
from("aws2-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5") .to("mock:result");
7.6.5. 创建或更新 SQS Queue
在 SQS 组件中,当启动端点时,将执行检查来获取队列是否存在的信息。您可以使用 SQSConfiguration
选项通过 QueueAttributeName
映射自定义创建。
from("aws2-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5") .to("mock:result");
在本例中,如果 AWS 上尚未创建 MyQueue
队列(并且 autoCreateQueue
选项设为 true),它将使用 SQS 配置中的默认参数创建。如果已在 AWS 上启动,则使用 SQS 配置选项来覆盖现有的 AWS 配置。
7.6.6. DelayQueue VS Delay 用于单消息
当选项 delayQueue
设为 true 时,SQS Queue 将是一个带有 DelaySeconds
选项的 DelayQueue
。有关 DelayQueue
的更多信息,请参阅 AWS SQS 文档。要考虑的一个重要信息如下:
- 对于标准队列,每个队列的延迟设置不会改变设置不会影响队列中已存在的消息的延迟。
- 对于 FIFO 队列,每个队列延迟设置是重新发生的,设置会影响队列中已存在的消息的延迟。
如官方文档中所述。如果要在单个消息上指定延迟,您可以忽略 delayQueue
选项,而您可以忽略 delayQueue 选项,而您可以将此选项设置为 true (如果需要向所有消息添加固定延迟)。
7.6.7. 服务器段加密
队列有一组服务器回送加密属性。相关选项包括 serverSideEncryptionEnabled
,keyMasterKeyId
和 kmsDataKeyReusePeriod
。默认情况下禁用 SSE。您需要明确将选项设置为 true,并将相关参数设置为队列属性。