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

AWS Lambda 设备上没有剩余空间错误

在 SQS 消息触发的 Lambda 上跟踪 AWS API Gateway request_id

使用代理集成时,API 网关和 Lambda 出现 CORS 错误**仅**

AWS - 从公共 API 网关到 VPC 内 lambda 的路由