keboola / messenger-bundle
Keboola Messenger Bundle
1.1.3
2023-11-28 12:50 UTC
Requires
- php: >=8.2
- ext-pcntl: *
- aymdev/messenger-azure-bundle: dev-dsnParser
- petitpress/gps-messenger-bundle: ^1.6
- symfony/amazon-sqs-messenger: ^6.3
- symfony/dependency-injection: ^6.0
- symfony/messenger: ^6.0
Requires (Dev)
- keboola/coding-standard: ^15.0
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-symfony: ^1.3
- phpunit/phpunit: ^9.6
- sempro/phpunit-pretty-print: ^1.4
- symfony/console: ^6.3
- symfony/dotenv: ^6.3
- symfony/framework-bundle: ^6.0
- symfony/yaml: ^6.0
- dev-main
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.0
- dev-erik-PST-2051
- dev-odin-PST-1670
- dev-pepa_PST-777_tableIngoGenerator
- dev-pepa_k8s_deployment
- dev-roman-pst-1710
- dev-erik-PST-850-part2
- dev-pepa_auth_adminToken
- dev-rrik-om-ci-fixup
- dev-erik-GCP-472
- dev-erik-GCP-374-part1
- dev-erik-GCP-374-part3
- dev-odin-GCP-374-c
This package is auto-updated.
Last update: 2024-09-20 10:14:06 UTC
README
为Keboola平台预先配置的Symfony Messenger扩展包。
安装
使用Composer安装包
composer require keboola/messenger-bundle
配置
扩展包支持以下配置选项
- platform - 可选,
aws
、azure
、gcp
或null
- 当未设置(或设置为
null
)时,扩展包将不会设置任何传输
- 当未设置(或设置为
- connection_events_queue_dsn - 可选,连接事件队列的DSN
- connection_audit_log_queue_dsn - 可选,连接审计日志队列的DSN
有关DSN语法的详细信息,请参阅每个平台驱动程序的文档
- 对于AWS,使用队列URL,例如
https://sqs.eu-central-1.amazonaws.com/025303414634/queue-name
,有关详细信息请参阅 https://symfony.ac.cn/doc/current/messenger.html#amazon-sqs - 对于Azure,使用格式
azure://<sas-key-name>:<sas-kev-value>@<servicebus-namespace>?entity_path=<servicebus-queue-name>
,有关详细信息请参阅 https://github.com/AymDev/MessengerAzureBundle - 对于GCP,使用格式
gps://default/<topic-name>
,有关详细信息请参阅 https://github.com/petitpress/gps-messenger-bundle
参考
keboola_messenger: platform: "%env(PLATFORM)%" connection_events_queue_dsn: "%env(CONNECTION_EVENTS_QUEUE_DSN)%" connection_audit_log_queue_dsn: "%env(CONNECTION_AUDIT_LOG_QUEUE_DSN)%"
开发
先决条件
aws
CLI,已配置Keboola-Dev-Platform-Services-AWSAdministratorAccess
配置文件az
CLI,已配置用于Keboola开发平台服务团队订阅- 运行
az account set --subscription c5182964-8dca-42c8-a77a-fa2a3c6946ea
- 运行
- 安装
terraform
(https://www.terraform.io) 和jq
(https://stedolan.github.io/jq) 以设置本地环境 - 安装
docker
以运行和开发应用程序
TL;DR
export NAME_PREFIX= # your name/nickname to make your resource unique & recognizable cat <<EOF > ./provisioning/local/terraform.tfvars name_prefix = "${NAME_PREFIX}" EOF terraform -chdir=./provisioning/local init -backend-config="key=messenger-bundle/${NAME_PREFIX}.tfstate" terraform -chdir=./provisioning/local apply ./provisioning/local/update-env.sh aws # or azure docker compose run --rm dev-messenger-bundle composer install docker compose run --rm dev-messenger-bundle composer ci
逆向工程事件
如果在现有的序列化器中找到问题,或者需要实现新的序列化器以支持新平台,则可以连接到测试环境中的真实队列以检查事件结构。
每个平台的过程略有不同,但基本思路是相同的
- 在Web控制台中打开测试账户/项目/环境 (https://portal.azure.com、https://console.cloud.google.com 等.)
- 配置队列以进行您想要调试的事件类型
- 在GCP中为现有主题创建新的订阅
- 在Pub/Sub中打开您想订阅的主题
- 具体来说,转到“订阅”选项卡,点击“创建订阅”
- 在AWS中创建新的SQS队列,并将其订阅到现有的SNS主题
- 转到SQS并创建新的队列
- 转到队列列表,选择队列,然后在“操作”菜单中选择“订阅SNS主题”
- 在Azure中创建新的Service Bus并将其订阅到现有的Event Grid主题
- 在GCP中为现有主题创建新的订阅
- 手动更新
.env.local
配置以连接到队列- 将队列DSN设置为之前步骤中创建的队列
- 在GCP中,您可以使用本地应用程序默认凭证
- 将
~/.config/gcloud/application_default_credentials.json
的内容复制到./var/gcp/private-key.json
- 设置额外的ENV
GCLOUD_PROJECT
- 将
- 运行
php tests/console messenger:consume <transport_name> -vvv --limit 1
从队列中接收一个事件
如果事件成功消费,你可以在输出中看到其内容。
完成操作后,别忘了清理并删除队列。
许可证
MIT 许可,请参阅 LICENSE 文件。