【问题标题】:AWS Lambda gateway API gives error messageAWS Lambda 网关 API 给出错误消息
【发布时间】: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 用户创建授权标头/跨度>

标签: node.js amazon-web-services lambda aws-api-gateway


【解决方案1】:

如果您使用的是最新版本的 Postman,您可以自动生成 SigV4 签名。该区域应与您的 API 区域相对应(即“us-east-1”),服务名称应为“execute-api”

【讨论】:

  • 这实际上解决了ryan的问题。你救了我几天。非常感谢。
【解决方案2】:

这不是一个解决方案,但它不止一次地帮助了我:

仔细检查您是否确实在访问现有端点!特别是如果您使用 AWS。如果您没有在 Lambda 中设置正确的处理程序,或者您的 API Gateway 未配置为提供此资源/动词/等,AWS 将返回此错误。

【讨论】:

  • 对我来说就是这样!
猜你喜欢
  • 2019-12-10
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 2017-09-28
  • 2019-05-02
  • 1970-01-01
相关资源
最近更新 更多