AWS Lambda 网关 API 给出错误消息
Posted
技术标签:
【中文标题】AWS Lambda 网关 API 给出错误消息【英文标题】:AWS Lambda gateway API gives error message 【发布时间】:2016-09-05 07:20:48 【问题描述】:我为 lambda 函数创建了一个 API 端点,例如 - https://XXXXXXXXX.execute-api.us-east-1.amazonaws.com/XXXX/XXXXXXXXXXXX/,它是 GET 方法。
当从邮递员那里调用那个端点时,它给了我
“消息”:“‘XXXXXXXXX3LPDGPBF33Q:XXXXXXXXXXBLh219REWwTsNMyyyyfbucW8MuM7’不是授权标头中的有效键 = 值对(缺少等号):‘AWS XXXXXXXXX3LPDGPBF33Q:XXXXXXXXXXBLh219REWwTsNMyyyyfbucW8MuM7’。”
这是亚马逊 Lambda 上传网站的截图:http://i.stack.imgur.com/mwJ3w.png
我有 IAM 用户的访问密钥 ID 和秘密访问密钥。我全部使用了,但没有运气。任何人都可以建议对此进行调整。
【问题讨论】:
Sigv4 签名似乎有问题。您如何生成授权标头? 我能够解决这个问题,但陷入了以下问题 - “消息”:“凭据应限定为正确的服务:'execute-api'。”这是截图:i.stack.imgur.com/J5OvT.png 以下是我用来创建授权标头的格式 - AWS4-HMAC-SHA256 + Credential=AccessKeyId/timezoneArea/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature =SecretAccessKey 有谁知道如何使用 aws4_request 和时区 us-east-1iam 用户创建授权标头/跨度> 【参考方案1】:如果您使用的是最新版本的 Postman,您可以自动生成 SigV4 签名。该区域应与您的 API 区域相对应(即“us-east-1”),服务名称应为“execute-api”
【讨论】:
这实际上解决了ryan的问题。你救了我几天。非常感谢。【参考方案2】:这不是一个解决方案,但它不止一次地帮助了我:
仔细检查您是否确实在访问现有端点!特别是如果您使用 AWS。如果您没有在 Lambda 中设置正确的处理程序,或者您的 API Gateway 未配置为提供此资源/动词/等,AWS 将返回此错误。
【讨论】:
对我来说就是这样!以上是关于AWS Lambda 网关 API 给出错误消息的主要内容,如果未能解决你的问题,请参考以下文章
使用代理通过 AWS API Gateway 的 Lambda 错误
AWS Lambda + 网关 API + React JS
在 SQS 消息触发的 Lambda 上跟踪 AWS API Gateway request_id