php - AWS SQS 错误:SignatureDoesNotMatch HTTP 错误:403
问题描述
我正在制作面部跟踪思想视频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/">Sender< Code >S (truncated...) SignatureDoesNotMatch ( client):我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。此请求的规范字符串应该是 'POST / ....... < 继续......
代码如下。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";
}
提前致谢!
解决方案
我已经通过再生解决了这个问题access key
。我不能相信它,但它有一些问题。我从这个已关闭的问题中找到了这个想法。这个问题几乎是 4 年前我得到了同样的错误。
由于访问/密钥中的特殊字符可能会出现问题
重新生成密钥后AWS console
。SQS
所有方法都适用于 new credentials
。将此报告为Github 官方存储库上的错误。
推荐阅读
- amazon-web-services - 使用 AWS Systems Session Manager 加密 CloudWatch LogGroup 的 KMS 权限
- python-3.x - Python xml解析属性错误''set'对象没有属性'items'''
- javascript - javascript fetch 导致不需要的格式?
- google-bigquery - Google Bigquery,array_length 在数组中返回不正确的#
- django - Django - 用户可以查看某些字段的字段限制
- postgresql - 为什么在查询的不同点使用 DISTINCT ON () 会返回不同(不直观)的结果?
- nginx - Nginx 给 403
- ssh - 使用终端、云 shell 或窗口浏览器的 SSH 连接到 Google Cloud VM 实例不起作用
- python - 在 bs4 中为 Ebay 列表创建一个 for 循环
- google-sheets - 谷歌表格自定义公式在另一个单元格填充值时自动运行