我有时会遇到这个错误(并非总是如此)。我在API网关功能中创建资源和方法。然后我将它映射到Lambda函数。在那里测试它,一切正常。
现在我在方法中添加自定义授权功能。现在,如果我在那里测试,
我们计算的请求签名与您的签名不符 提供。检查您的AWS Secret Access Key和签名方法。请教 有关详细信息的服务文档。\ n \ n Canonical String for 这个要求应该有 一直\ n' POST \ N / 2015年3月31日/功能/ ARN%3Aaws%3Alambda%3Aus-EAS
更多细节:删除了属于此方法的lambda函数。然后我重新创建了具有相同名称的函数。并注意到在部署API时删除了该方法。所以我重新创建了映射并将其映射到Lambda函数。从那时起,我就面临着这个问题。我确信如果我更改Lambda的名称,它可能会解决问题。但我认为它是AWS的一个错误,而不是我的最终目标。需要澄清我是否有任何错误?
答案 0 :(得分:1)
看起来当前部署的API版本正在将Authorization标头从方法请求转发到集成请求(Lambda)。如果您正在尝试修复API的当前状态,那么我建议从方法请求中删除Authorization标头,这也将从集成请求中删除它。这应该可以解决Lambda签名错误。
如果您尝试在方法上使用自定义授权程序,则无需在方法请求中设置授权标头。您只需将授权者身份来源设置为' method.request.header.Authorization'