bnnvara/simple-bus-aws-bridge-bundle

一个 Symfony 扩展包,用于将 AWS SNS/SQS 集成到 simplebus

3.1 2024-06-21 07:24 UTC

README

Code Coverage Build Status Scrutinizer Code Quality

BNNVARA 提供

README

免责声明

请注意:异步事件不能由发布该事件的同一服务消费。这样做会将事件再次发布到异步队列中,从而创建一个无限循环。可以通过创建两个单独的事件来绕过此限制,一个用于内部处理,另一个发布到事件总线。

安装

使用 Composer

composer require bnnvara/simple-bus-aws-bridge-bundle

bundles.php 中启用扩展包

return [
        ...
        BNNVARA\SimpleBusAwsBridgeBundle\SimpleBusAwsBridgeBundle::class => ['all' => true],
        ...
];

配置

以下是对此扩展包配置的完整概述

simple_bus_aws_bridge:
    credentials
        key: value
        secret: value
        token: value
        expires: value
        region: value
    topic:
        name: arn-of-topic
        credentials:
            key: value
            secret: value
            token: value
            expires: value
            region: value
        version: "1.0"
        asynchronous_events:
            - event1
            - event2
    queue:
        url: url-to-sqs-queue
        credentials:
            key: value
            secret: value
            token: value
            expires: value
            region: value
        version: "1.0"
        

根级别的凭据是必需的。这些是在没有特定凭据的情况下用于 `topicorqueueor 的后备凭据。这意味着 `topicandqueue` 的凭据部分是可选的,并且仅当凭据与根级别凭据不同时才需要。

主题

主题的最小配置如下所示

simple_bus_aws_bridge:
    credentials
        key: can-be-generated-or-found-in-iam-console-aws
        secret: can-be-generated-or-found-in-iam-console-aws
        region: region-in-which-your-credentials-are-valid
    topic:
        name: arn-of-topic
        version: "version-of-aws-sdk"
        asynchronous_events:
            - first-event-you-want-handled-async
            - second-event-you-want-handled-async
            - etc
            

只有定义在 `asynchronous_events` 部分的异步事件才会被处理。

要配置 simplebus 使用此桥接器,请添加/修改配置以匹配以下配置

simple_bus_asynchronous:
  events:
    strategy: 'predefined'
    publisher_service_id: BNNVARA\SimpleBusAwsBridge\Publisher\SnsPublisher

有关如何配置 simplebus 的更多信息,请参阅 文档

队列

这是最小的消费者配置

simple_bus_aws_bridge:
    credentials
        key: can-be-generated-or-found-in-iam-console-aws
        secret: can-be-generated-or-found-in-iam-console-aws
        region: region-in-which-your-credentials-are-valid
    queue:
        url: 'url'
        version: '1.0'
        

队列的 URL 通常如下所示 `https://sqs.REGION.amazonaws.com/123456789098/QUEUENAME```。配置中的 url 值应与 不包含 QUEUENAME 的值相同。

消费

使用控制台命令消费消息

bnnvara:simplebus:consume <<QUEUENAME>>

假设队列的 AWS URL 为 `https://sqs.REGION.amazonaws.com/123456789098/QUEUENAME```,则消费命令如下所示

bin/console bnnvara:simplebus:consume QUEUENAME