2.4. 连接到 Amazon Simple Queue Service (SQS)
集成可以从 Amazon SQS 队列检索消息,或发送消息到 Amazon SQS 队列。为此,请创建一个 Amazon SQS 连接,然后将该连接添加到集成流中。详情请查看:
2.4.1. 创建 Amazon SQS 连接
在向集成中添加 Amazon SQS 连接前,您必须创建一个 Amazon SQS 连接。
先决条件
- AWS 访问密钥。请参阅 获取 AWS 凭证。
- 您必须知道 SQS 队列所在的区域。这是您希望创建 SQS 连接来发送消息的队列。
流程
- 在 Fuse Online 中,在左侧面板中,单击 Connections 以显示任何可用连接。
- 单击 Create Connection 以显示 Fuse Online 连接器。
- 点 Amazon SQS 连接器。
在 Access Key 字段中,输入作为 AWS 帐户中的用户访问密钥一部分的 Amazon 访问密钥 ID,该密钥管理您希望连接访问的队列。
如果您希望连接访问的队列尚不存在,则 Fuse Online 尝试开始运行集成时,它将使用此访问密钥关联的 AWS 帐户来创建队列。但是,如果队列已在其他 AWS 帐户中存在,则连接无法创建队列,且集成无法启动。
- 在 Secret Key 字段中,为您指定的 Amazon 访问密钥 ID 输入 Amazon secret 访问密钥。
- 在 Region 字段中,选择队列所在的 AWS 区域。如果连接创建队列,则它会在所选区域中创建它。
- 单击 Validate。Fuse Online 立即尝试验证连接并显示一条消息,指示验证是否成功。如果验证失败,请根据需要重新传输配置详情,然后重试。
- 验证成功后,单击 Next。
-
在 Name 字段中输入您选择的名称,可帮助您将这个连接与任何其他连接区分开来。例如,输入
SQS 南部
。 -
在 Description 字段中,输入有助于了解此连接的任何信息。例如,输入
Sample SQS 连接,将消息发送到我们南部地区队列。
- 点 Save 查看您创建的连接现在可用。如果您输入了示例名称,您会看到 SQS South 显示为可以添加到集成的连接。
2.4.2. 从 Amazon SQS 获取消息以触发集成执行
要通过从 Amazon SQS 队列获取消息来启动集成,请将 Amazon SQS 连接添加为简单的集成启动连接。
先决条件
- 您创建了 Amazon SQS 连接,该连接配置为访问您要获取消息的队列。
- 您知道希望连接从中获取消息的 SQS 队列的名称。
流程
- 在左侧的 Fuse Online 面板中,单击 Integrations。
- 点 Create Integration。
- 在 Choose a connection 页面上,单击您要用来启动集成的 Amazon SQS 连接。
- 在 Choose an action 页面上,选择 Poll a Amazon SQS Queue 来定期从 SQS 队列检索消息。
配置此操作:
- 在 Delay 字段中,接受默认的 500 毫秒,作为轮询之间经过的时间。或者,要指定不同的轮询间隔,输入数字并选择其时间单位。
在 Maximum Objects to Retrieve 字段中,输入一次轮询操作可以获取的最大消息数。默认值为 10。
要对可以获取的消息数量没有限制,请指定
0
或负整数。当 Retrieve 的最大对象 没有限制时,poll 操作会获取 SQS 队列中的所有消息。- 在 Queue Name 或 Amazon Resource Name 字段中,指定要从中检索消息的 SQS 队列的名称,或队列的 ARN。如果具有此名称的队列不存在,连接会创建它。这是唯一必填字段。
- 指明您是否希望 获取消息,然后从队列中删除它们。获取消息,然后从队列中删除它们是默认行为。只有在您希望连接检索消息并将其保留在队列中时,取消选择这个选项,这意味着将再次检索消息。
- 指明是否 通过 Camel 过滤器获取消息并删除 消息。默认选择这个选项。当您想通过过滤器传递检索到的消息时,保留它,以确定是否将其从队列中删除。您不需要取消选择 Obtain 消息,然后从队列 删除。在选择 Obtain 消息时,Fuse Online 确保了正确的行为,并在通过 Camel 过滤器进行时删除消息。
- 点击 Next。
结果
连接会出现在集成流的开头。
后续步骤
如果您选择了 Obtain 消息并删除其通过 Camel 过滤器进行的操作, 那么您需要在此 SQS 连接后添加过滤器步骤。在 SQS 连接后,过滤器步骤不需要立即生效。添加所有连接到集成,然后添加过滤器步骤。在执行期间,如果存在通过过滤器的消息,Fuse Online 会使用同一个连接(SQS 启动连接)从队列中删除这些消息。
2.4.3. 将消息发送到 Amazon SQS 队列
在流中,或完成简单集成,您可以将消息发送到 Amazon SQS 队列。
先决条件
- 您创建了 Amazon SQS 连接,该连接配置为访问要发送消息的队列。
- 您知道您希望连接将消息发送到的 SQS 队列的名称。
- Fuse Online 会提示您添加到集成,或者选择完成连接以进行简单集成。
流程
- 在 Add to Integration 页面上,单击您要添加连接的加号。如果 Fuse Online 正在提示您选择完成连接,请跳过这一步。
- 点击您要用来发送消息的 Amazon SQS 连接。
选择您要连接执行的操作:
- 发送对象 向队列发送一条消息。
- 发送批处理 对象将批处理消息发送到队列。
在 Message group ID 策略 字段中,对于 first-in, first-out (FIFO)队列,接受
ConstantMessageGroupIdStrategy
或点击字段中并选择不同的策略。此参数的设置对简单队列没有影响。消息组 ID 标识消息所属的组。属于同一消息组的消息始终逐一处理,其严格顺序相对于消息组。消息组 ID 策略决定了连接如何为消息分配组 ID。这些选项是:
-
ConstantMessageGroupIdStrategy
mvapich-wagonThe 连接使用恒定来对消息进行分组。 -
ExchangeIdMessageGroupIdStrategy
criu-wagonThe 连接使用交换 ID (位于每个消息中)来对消息进行分组。 -
PropertyValueMessageGroupIdStrategy
mvapich-wagonThe 连接使用 internal 属性的值来对消息进行分组。
FIFO 队列旨在确保信息被严格保留和接收的顺序,并且每个消息都完全被处理一次。FIFO 队列名称具有
.fifo
作为后缀。-
在 Message deduplication ID 策略 字段中,对于 FIFO 队列,接受
NullMessageDeduplicationIdStrategy
或点击字段中以选择ExchangeIdMessageDeduplicationIdStrategy
。此参数的设置对简单队列没有影响。对于 FIFO 队列,连接使用所选策略来确保它不会向队列发送重复消息。
-
NullMessageDeduplicationIdStrategy
使用消息正文作为 deduplication 元素。换句话说,连接比较了消息正文以识别重复消息。 -
ExchangeIdMessageDeduplicationIdStrategy
使用消息的交换 ID 作为 deduplication 元素。换句话说,连接比较交换 ID 以识别重复消息。
-
- 在 Queue Name 或 Amazon Resource Name 字段中输入要发送消息的队列名称。如果队列不存在,连接会创建它。
- 在 Delay 字段中,接受默认值,即 0 代表没有延迟。或者,要添加延迟,请指定一个数字。集成会在发送消息前等待这个秒数。当消息消费者可能不会立即准备好连接发送的消息时,这非常有用。
- 点击 Next。
结果
连接会出现在您添加它的集成流中。