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 连接以便发送消息或从中检索消息的队列。

流程

  1. 在 Fuse Online 中,在左侧面板中,单击 Connections 以显示任何可用的连接。
  2. 单击 Create Connection 以显示 Fuse Online 连接器。
  3. Amazon SQS 连接器。
  4. Access Key 字段中,在 AWS 帐户中输入属于用户访问密钥的 Amazon 访问密钥 ID,用于管理您要连接可访问的队列。

    如果您要连接访问的队列不存在,那么当 Fuse Online 尝试运行集成时,它使用与此访问密钥关联的 AWS 帐户来创建队列。但是,如果队列已在其他 AWS 帐户中已存在,则连接无法创建队列,且集成无法启动。

  5. Secret Key 字段中,为您指定的 Amazon 访问密钥 ID 输入 Amazon secret 访问密钥。
  6. Region 字段中,选择队列中的 AWS 区域。如果连接创建了队列,它会在所选区域中创建它。
  7. 单击 Validate。Fuse Online 立即尝试验证连接并显示一条消息,指示验证是否成功。如果验证失败,请根据需要修改配置详情并重试。
  8. 验证成功后,单击 下一步
  9. Name 字段中输入您的选择的名称,帮助您将这个连接与任何其他连接区分开来。例如,输入 SQS South
  10. Description 字段中输入任何有助于了解这个连接的信息。例如,输入 Sample SQS 连接来向我们的南北区域队列发送信息。
  11. Save 以查看您创建的连接现在可用。如果您输入了示例名称,则 SQS South 显示为可选择添加到集成的连接。

2.4.2. 从 Amazon SQS 获取消息以触发集成执行

要通过从 Amazon SQS 队列获取信息来启动集成,请将 Amazon SQS 连接添加为简单的集成启动连接。

先决条件

  • 您创建了 Amazon SQS 连接,该连接被配置为访问您要从中获取消息的队列。
  • 您知道希望连接从中获取消息的 SQS 队列的名称。

流程

  1. 在左侧的 Fuse Online 面板中,单击 Integrations
  2. Create Integration
  3. Choose a connection 页面中,点击您要用来开始集成的 Amazon SQS 连接。
  4. 在 Choose a action 页面上,选择 Poll a Amazon SQS Queue 以定期从 SQS 队列检索消息。
  5. 配置此操作:

    1. Delay 字段中,接受默认的 500 毫秒作为轮询之间的时间。或者,要指定不同的轮询间隔,请输入一个数字并选择其单位。
    2. Maximum Objects to Retrieve 字段中,输入一个轮询操作可以获取的最大消息数。默认值为 10。

      要对可以获取的信息数量没有限制,请指定 0 或一个负整数。当 Maximum Objects to Retrieve 为无限时,Pol poll 操作会获取 SQS 队列中的所有消息。

    3. Queue Name 或 Amazon Resource Name 字段中,指定要从检索消息的 SQS 队列的名称,或者指定队列的 ARN。如果具有此名称的队列不存在,连接会创建它。这是唯一必填字段。
    4. 指明您是否要 获取消息,然后从队列 中删除它们。获取消息,然后从队列中删除它们是默认行为。只有您希望连接检索信息并在队列中保留它们时,取消选择此选项。这意味着将再次检索消息。
    5. 如果消息通过 Camel 过滤器,指明是否希望获取消息并删除 消息。默认选择这个选项。当您要传递通过过滤器的消息,以确定是否将其从队列中删除时,请保留该消息。您不需要取消选择 Obtain 信息,然后从队列 中删除。Fuse Online 可确保在选择 Obtain 消息时正确的行为,如果通过 Camel 过滤器将其删除,则会删除消息
  6. 点击 Next

结果

连接会出现在集成流的开始。

后续步骤

如果您选择了 Obtain 消息,如果消息通过 Camel 过滤器将其删除, 则需要在该 SQS 连接后添加过滤器步骤。在 SQS 连接后,过滤器步骤不需要立即。将所有连接添加到集成,然后添加过滤器步骤。在执行过程中,如果有通过过滤器的消息,Fuse Online 使用相同连接(SQS 启动连接)从队列中删除这些消息。

2.4.3. 将消息发送到 Amazon SQS 队列

在流的中间,或完成简单集成,您可以将消息发送到 Amazon SQS 队列。

先决条件

  • 您创建了 Amazon SQS 连接,该连接配置为访问您要发送消息的队列。
  • 您知道希望连接要发送消息的 SQS 队列的名称。
  • Fuse Online 会提示您添加到集成中,或选择用于简单集成的完成连接。

流程

  1. Add to Integration 页面中,点您要添加连接的加号。如果 Fuse Online 提示您选择完成连接,请跳过这一步。
  2. 点您要用来发送消息的 Amazon SQS 连接。
  3. 选择您要连接执行的操作:

    • 发送对象 向队列发送一条消息。
    • 发送批处理对象 将批处理消息发送到队列。
  4. Message group ID strategy 字段中,在 first-in, first-out(FIFO)队列中,接受 ConstantMessageGroupIdStrategy,或者点击字段中的项并选择不同的策略。

    此参数的设置对简单队列没有影响。消息组 ID 标识消息所属的组。属于同一消息组的消息始终会按照与消息组的严格顺序处理。消息组 ID 策略决定连接如何将组 ID 分配给消息。这些选项是:

    • ConstantMessageGroupIdStrategy the connection使用恒定分组消息。
    • ExchangeIdMessageGroupIdStrategy the connection 使用交换 ID(在每条消息中)对消息进行分组。
    • PropertyValueMessageGroupIdStrategy InventoryService-abrtThe connection 使用 internal 属性的值来对消息进行分组。

    FIFO 队列旨在确保发送和接收消息的顺序严格保留,并且每个消息都完全处理一次。FIFO 队列名称具有 .fifo 作为后缀。

  5. Message deduplication ID 策略 字段中,对于 FIFO 队列,接受 NullMessageDeduplicationIdStrategy,或者点击字段中选择 ExchangeIdMessageDeduplicationIdStrategy

    此参数的设置对简单队列没有影响。对于 FIFO 队列,连接使用所选的策略来确保它不会向队列发送重复的消息。

    • NullMessageDeduplicationIdStrategy 使用消息正文作为 deduplication 元素。换句话说,连接比较消息正文,以识别重复的消息。
    • ExchangeIdMessageDeduplicationIdStrategy 使用消息的交换 ID 作为 deduplication 元素。换句话说,连接比较交换 ID 来识别重复的消息。
  6. Queue Name 或 Amazon Resource Name 字段中输入要发送消息的队列的名称。如果队列不存在,连接会创建它。
  7. Delay 字段中,接受默认值,即 0,无延迟。或者,要添加延迟,请指定一个数字。在发送消息前,集成会等待这个秒数。当消息使用者可能不会立即为连接发送的消息就绪时,这很有用。
  8. 点击 Next

结果

这个连接会出现在您添加它的集成流中。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.