bnnvara / simple-bus-aws-bridge-bundle
一个 Symfony 扩展包,用于将 AWS SNS/SQS 集成到 simplebus
3.1
2024-06-21 07:24 UTC
Requires
- php: ^8.3
- bnnvara/simple-bus-aws-bridge: ^2.0
- doctrine/annotations: ^2.0
- symfony/console: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-21 08:14:23 UTC
README
由 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"
根级别的凭据是必需的。这些是在没有特定凭据的情况下用于 `
topicor
queueor
的后备凭据。这意味着 `
topicand
queue`
的凭据部分是可选的,并且仅当凭据与根级别凭据不同时才需要。
主题
主题的最小配置如下所示
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