AWS SQS 错误:SignatureDoesNotMatch HTTP 错误:403

问题描述 投票:0回答:2

我正在制作面部追踪思维视频

AWS Rekognition
(
StartFaceSearch
)。它将返回作业 ID。我已经设置了所有
SQS
SNS
部分。 我的问题是我无法使用
receiveMessage()
从SQS获取消息。即使
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(客户端):我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。详情请参阅服务文档。< Code >

此请求的规范字符串应该是 '邮政 / .......

< continue.............

代码如下。 AWS PHP SDK 版本 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"; }

提前致谢!

php laravel amazon-web-services amazon-sqs aws-php-sdk
2个回答
8
投票

我已经通过重新生成access key解决了问题

。我简直不敢相信
但有一些问题。我从这个已关闭的
issue中发现了这个想法。这个问题几乎是四年前的事了,现在我也遇到了同样的错误。

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

AWS console

 中重新生成密钥后。 
SQS
 所有方法都可以与新的 
credentials
 配合使用。在 
Github 官方存储库上将此报告为错误。


0
投票
是的,在这种情况下,用新的密钥替换密钥就可以了

© www.soinside.com 2019 - 2024. All rights reserved.