【发布时间】:2021-09-02 01:16:21
【问题描述】:
我正在尝试使用 symfony 5 SQS 消费者使用来自 SQS 的消息,但当 aws 密钥包含特殊字符(如 + 或 \)时,我遇到了问题。
这是我的.env 文件:
MESSENGER_TRANSPORT_DSN="https://sqs.eu-west-3.amazonaws.com/XXXXXXXX/bonobo-asg?access_key=XXXX&secret_key=XXXX+XXXXX\XXXXXX®ion=eu-west-3&auto_setup=false"
还有我的messenger.yml 配置文件:
framework:
messenger:
transports:
asg:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
serializer: App\Messenger\SnsSerializer
当我启动消费者时,我收到以下错误:
[AsyncAws\Core\Exception\Http\ClientException (403)]
HTTP 403 returned for "https://sqs.eu-west-3.amazonaws.com/".
Code: SignatureDoesNotMatch
Message: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for de
tails.
我认为它来自密钥中的特殊字符,因为当我尝试使用另一个只包含字母和数字的密钥时,它可以正常工作。
我尝试使用 \ 转义特殊字符,但它给了我同样的错误。
如何在 symfony sqs 消费者中使用包含特殊字符的密钥?
【问题讨论】:
-
我可以确认这个问题。您是否在 github 中检查或打开了问题?如果没有人参与,我可能会抽出一些时间来修复它。
标签: php amazon-sqs symfony5 phpdotenv