【问题标题】:Symfony5 SQS consumer invalid access keySymfony5 SQS 消费者无效的访问密钥
【发布时间】: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&region=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


【解决方案1】:

我遇到了同样的问题,但发现 Symfony 的 DSN 被解析为普通 URL。

因此,如果您的 URL 参数(在我们的例子中为 access_keysecret_key)包含一些特殊字符,则需要对它们进行 URL 编码。

我将+ 替换为%2B,将/ 替换为%2F,效果很好。

参考:https://github.com/symfony/symfony/issues/32021

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 2012-07-29
    • 2016-04-14
    • 2021-05-30
    相关资源
    最近更新 更多