授权标头需要“凭证”参数。授权标头需要“签名”参数。

10

我曾交付过AWS无服务器(Lambda,API GW和DynamoDB),但在开发人员测试期间,他们在使用“Postman”工具时遇到了以下错误:

{

    "message": "Authorization header requires 'Credential' parameter. 
               Authorization header requires 'Signature' parameter. 
               Authorization header requires 'SignedHeaders' parameter. 
               Authorization header requires existence of either a 'X-Amz-Date' or a 'Date'          
               header. 
               Authorization=xxxxxxxxxxxxxxxxxxxx"
} 

我已经检查了CloudWatch日志,但没有发现任何问题,我认为这意味着请求没有到达API端点,但我不知道原因。
实际上,我需要找出是否由于Postman参数或API端点导致此错误。
附注:Lambda代码是使用Python开发的。
请给予建议。

我们需要更多的信息来帮助您。让我们从这个问题开始:它对您有效吗? - John Glenn
你能直接运行Lambda函数吗? - John Glenn
不,我不能直接运行Lambda函数,开发者通过Postman运行它。如果您有问题或问题清单,请在此处放下,我会为您获取所有答案。 - Haytham
2个回答

31

这些错误很容易理解。不是这样的。根据API 网关故障排除文档,错误信息如下:

授权标头需要“凭证”参数。授权标头需要“签名”参数。授权标头需要存在“SignedHeaders”参数。授权标头需要存在“X-Amz-Date”或“Date”标头之一。Authorization=allow

表示资源路径不存在。检查您的URL并确保您正在访问正确的终端节点。


1
如果您尝试执行的 HTTP 方法不在 API 网关上的资源路径中,您也会看到此错误消息。 - steveinatorx
在我的情况下,我的问题是在REST API网关中没有一个{proxy+}子资源。所以我的根路径可以工作,但是任何子路径都不行。我的子路径资源确实不存在。如果您正在使用VPC链接,请不要忘记将{proxy}添加到您的终端点URL中。 - undefined

0

在使用terraform进行部署时,我遇到了这个错误。由于某些原因,我们必须通过AWS控制台进行API的部署,以消除此消息。


你的回答可以通过提供更多支持信息来改进。请[编辑]以添加进一步的细节,例如引文或文档,以便其他人可以确认你的回答是正确的。你可以在帮助中心找到有关如何编写好回答的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接