我有一个作为REST API暴露的AWS Lambda函数。
当在aws lambda控制台上通过测试按钮调用时,它可以正常工作。
当通过在线REST客户端调用时,我会收到403错误。 它被创建为不需要身份验证(Open)。
我缺少了什么配置?
我有一个作为REST API暴露的AWS Lambda函数。
当在aws lambda控制台上通过测试按钮调用时,它可以正常工作。
当通过在线REST客户端调用时,我会收到403错误。 它被创建为不需要身份验证(Open)。
我缺少了什么配置?
据说Lambda通过AWS API Gateway公开。
如果您在新的“无身份验证”API Gateway资源上获得403错误的一个原因是您尚未部署更改。
在API Gateway控制台中,单击操作
下拉列表并选择部署API
。
这样就可以了。
始终确保调用正确的URL。您可以从API网关的阶段部分或Lambda函数(如果您已将Lambda函数设置为集成端点)中获取URL。
您可以在方法和集成响应中看到新的标头设置。
如果您正在将日志写入Cloudwatch,则请确保已配置CloudWatch日志角色ARN。 可以从API ->设置中访问。
如果您正在使用AWS的授权,则AWS会计算签名。
如果您传递get或post参数,则必须按字母顺序发送它。
原因是当您传递令牌计算签名UI或前端计算基础顺序时,但AWS会按字母顺序重新计算签名以匹配签名。
尝试按字母顺序发送参数。
post = { 'id':23, 'tag':'35353 }
/some/path?query=param
和/some/path/:id
。从Postman客户端,前者可以工作,但后者返回你描述的403错误。 - Kwhitejr