AWS SQS 错误:SignatureDoesNotMatch HTTP 错误:403

Pra*_* Sp 3 php amazon-sqs amazon-web-services laravel aws-php-sdk

我正在制作一个面部追踪思维视频AWS Rekognition( StartFaceSearch)。它将返回作业 ID。我已经设置了所有SQS SNS部分。我的问题是我无法使用receiveMessage(). 甚至listQueues()也不工作。它给出了以下错误。

“ https://sqs.us-east-1.amazonaws.com ”上的“ListQueues” ;AWS HTTP 错误:客户端错误:POST https://sqs.us-east-1.amazonaws.com导致403 Forbidden响应:< ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">发件人<代码>S(已截断...)SignatureDoesNotMatch ( client): 我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。

此请求的规范字符串应该是 'POST / .... < continue.............

代码如下。AWS PHP 开发工具包版本 3.64.11。

$queueUrl = "https://sqs.us-east-1.amazonaws.com/xxxxxxx/facetrackingreceive";
        // Get the client from the builder by namespace
        $sqs_client = new SqsClient(array(
            'credentials' => array(
                'key'    => 'xxxxxxxxxx',
                'secret' => 'xxxxxxxxxxxxxxxxxxxxxxx',
            ),
            'version' => '2012-11-05',
            'region'  => 'us-east-1',
            'http' => [ 'verify' => false ],

        ));

        $result = $sqs_client->listQueues();

        foreach ($result->get('QueueUrls') as $queueUrl) {
            echo "$queueUrl\n";
        }
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Pra*_* Sp 8

我已经通过重新生成解决了这个问题access key。我简直不敢相信,但这确实有问题。我从这个已关闭的问题中发现了这个想法。这个问题几乎是四年前的事了,现在我也遇到了同样的错误。

访问/秘密密钥中的特殊字符可能会出现问题

重新生成密钥后AWS consoleSQS所有方法都适用于 new credentials在Github 官方存储库上将此报告为错误。