new-immo-group / messenger-transport-sqs-iam
处理 IAM 文件以访问 IAM 角色的 aws 连接器
v2.0.0
2024-09-13 10:20 UTC
Requires
- php: >=7.4
- ext-json: *
- aws/aws-sdk-php: ^3
- psr/log: >=1.1
- symfony/messenger: >4.4|>=5.4
Requires (Dev)
- ext-ctype: *
- ext-iconv: *
- friendsofphp/php-cs-fixer: ^3.9
- g1a/composer-test-scenarios: ^3.2
- maglnet/composer-require-checker: ^3.8
- nig-devteam/messenger-serializers: ^1.5
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
- symfony/console: 5.4.*
- symfony/dotenv: 5.4.*
- symfony/flex: ^1.17|^2
- symfony/framework-bundle: 5.4.*
- symfony/phpunit-bridge: ^6.1
- symfony/runtime: 5.4.*
- symfony/serializer: 5.4.*
- symfony/yaml: 5.4.*
Conflicts
- dev-main
- v2.0.0
- v1.11.0
- v1.10.1
- v1.10.0
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.0
- v1.6.0
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.30
- v1.0.29
- v1.0.28
- v1.0.27
- v1.0.26
- v1.0.25
- v1.0.24
- v1.0.23
- v1.0.22
- v1.0.21
- v1.0.20
- v1.0.19
- v1.0.18
- v1.0.17
- v1.0.16
- v1.0.15
- v1.0.14
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-renovate/g1a-composer-test-scenarios-3.x-lockfile
- dev-feat/single-json
- dev-feat/send-message-batch
- dev-renovate/major-symfony
- dev-renovate/symfony
- dev-renovate/phpstan-phpstan-1.x-lockfile
- dev-renovate/friendsofphp-php-cs-fixer-3.x-lockfile
- dev-renovate/aws-aws-sdk-php-3.x-lockfile
- dev-renovate/lock-file-maintenance
- dev-renovate/psr-log-3.x
- dev-renovate/phpunit-phpunit-10.x
- dev-renovate/maglnet-composer-require-checker-4.x
- dev-renovate/maglnet-composer-require-checker-4.x-lockfile
- dev-test-multipass
- dev-symfony-in-subfolder
- dev-fix/composer
This package is auto-updated.
Last update: 2024-09-15 21:06:22 UTC
README
此库允许通过 IAM 认证简化 AWS 的 SQS 队列的集成。
它将为匹配 ^https://sqs.
的任何 DSN 注册一个新的 Messenger 传输。
安装
$ composer require new-immo-group/messenger-transport-sqs-iam
配置
环境变量
需要以下环境变量
AWS_REGION= # in my case, eu-west-3
AWS_VERSION= # generically latest
AWS_SDK_LOAD_NONDEFAULT_CONFIG=true # whether to load .aws/config
AWS_PROFILE= # profile in $HOME/.aws/config you want to load
AWS_ACCOUNT_ID=
MESSENGER_TRANSPORT_DSN=https://sqs.${AWS_REGION}.amazonaws.com/${AWS_ACCOUNT_ID}
AWS SDK
主机的 $HOME/.aws/config
和 $HOME/.aws/credentials
文件必须存在。
注意,如果设置了环境变量 AWS_SDK_LOAD_NONDEFAULT_CONFIG
,在加载 .aws/credentials
时,AWS-SDK 也会加载 .aws/config
。
如果存在活动的 open_basedir()
限制,请确保将 $HOME/.aws
添加到允许的路径列表中。
Symfony
注册 SQS 传输
services:
NewImmoGroup\AwsBroker\SqsTransportFactory:
class: NewImmoGroup\AwsBroker\SqsTransportFactory
tags: [messenger.transport_factory]
arguments:
$defaultOptions:
auto_setup: true
queue_prefix: 'some-prefix-'
queue_tags:
queue_env: "%env(APP_ENV)%"
我们可以提供可选的默认工厂选项值
auto_setup
:它控制传输级别上,是否在发送消息时自动创建队列。默认为false
。queue_prefix
:定义将添加到队列名称的前缀。queue_tags
:将设置在所有创建的队列上的标签列表。
这些选项中的任何一个都可以在队列级别上覆盖(见下文)。
队列配置示例
framework:
messenger:
transports:
async:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
serializer: messenger_serializer
options:
queue_name: "my-queue-name-here"
auto_setup: false
queue_prefix: 'some-prefix-'
queue_tags:
env: "%env(APP_ENV)%"
auto_setup
、queue_prefix
和 queue_tags
参数是可选的。如果存在,它们将覆盖工厂默认值。
CI/测试
需要 PHP7.4-CLI 和 PHP8.1-CLI。
端到端/功能测试将需要一个有效的 AWS 配置(通常几小时后到期)。
make test # Symfony5/PHP7.4
make test@php8 # Symfony5/PHP8.1
make test@sf6 # Symfony6/PHP8.1
AWS.SQS 权限
提供用户应能够调用
- GetQueueUrl
- CreateQueue
- SendMessage
- DeleteMessage
- GetQueueAttribute