11.7. 使用方法
11.7.1. 静态凭证和默认凭证提供程序 复制链接链接已复制到粘贴板!
您可以通过指定 useDefaultCredentialsProvider 选项并将其设置为 true 来避免使用显式静态凭证。
-
Java 系统属性 -
aws.accessKeyId和aws.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 凭证文档
11.7.2. SQS producer 设置的消息标头 复制链接链接已复制到粘贴板!
| 标头 | 类型 | 描述 |
|---|---|---|
|
|
| Amazon SQS 消息的 MD5 checksum。 |
|
|
| Amazon SQS 消息 ID。 |
|
|
| Amazon SQS 消息可以被其他人看到的延迟秒数。 |
11.7.3. SQS consumer 设置的消息标头 复制链接链接已复制到粘贴板!
| 标头 | 类型 | 描述 |
|---|---|---|
|
|
| Amazon SQS 消息的 MD5 checksum。 |
|
|
| Amazon SQS 消息 ID。 |
|
|
| Amazon SQS 消息接收句柄。 |
|
|
| Amazon SQS 消息属性。 |
11.7.4. 高级 AmazonSQS 配置 复制链接链接已复制到粘贴板!
如果您的 Camel 应用程序在防火墙后面运行,或者您需要对 SqsClient 实例配置进行更多控制,您可以创建自己的实例:
from("aws2-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
11.7.5. 创建或更新 SQS 队列 复制链接链接已复制到粘贴板!
在 SQS 组件中,当端点启动时,会执行检查来获取与队列存在的信息。您可以使用 SQSConfiguration 选项通过 QueueAttributeName 映射自定义创建。
from("aws2-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
在本例中,如果 AWS 上尚未创建 MyQueue 队列(并且 autoCreateQueue 选项设为 true),则会使用 SQS 配置中的默认参数来创建它。如果已在 AWS 上启动,则使用 SQS 配置选项来覆盖现有的 AWS 配置。
11.7.6. DelayQueue VS Delay for Single 消息 复制链接链接已复制到粘贴板!
当选项 delayQueue 设为 true 时,SQS Queue 将是一个 DelayQueue,并将 DelaySeconds 选项设为 delay。有关 DelayQueue 的更多信息,您可以阅读 AWS SQS 文档。要考虑的一个重要信息是:
- 对于标准队列,每个队列延迟设置不会重新修改设置不会影响队列中已存在的消息的延迟。
- 对于 FIFO 队列,每个队列延迟设置正在重新修改设置,会影响队列中已存在的消息延迟。
如官方文档中所述。如果要在单个消息上指定延迟,您可以忽略 delayQueue 选项,但如果您需要向所有消息添加固定延迟,则可以将此选项设置为 true。
11.7.7. 服务器交换加密 复制链接链接已复制到粘贴板!
队列有一组服务器交换加密属性。相关的选项为 serverSideEncryptionEnabled、keyMasterKeyId 和 kmsDataKeyReusePeriod。默认情况下禁用 SSE。您需要明确将选项设置为 true,并将相关的参数设置为 queue 属性。