将身份验证传递到AWS Lambda + AWS API Gateway

时间:2019-07-08 15:19:15

标签: aws-lambda aws-api-gateway

通过遵循网站上显示的示例,我已经使用AWS Lambda + API Gateway + DynamoDB创建了无服务器应用程序:

https://medium.com/statuscode/serverless-ice-cream-or-create-your-serverless-node-js-micro-service-with-a-database-17a6946251e0

但是在测试期间,我触发了以下命令:

〜/ Documents / workspaces / nodejs / ice-cream-shop $ curl -H“内容类型:应用程序/ json” -X POST -d'{“ icecreamId”:“ 123”,“ name”:“ chocolate”}'https://0k213z6zp2.execute-api.us-east-1.amazonaws.com/latest

我收到此错误{“ message”:“缺少身份验证令牌”}:

%总接收百分比%Xferd平均速度时间时间时间当前                                  Dload上传总花费左速度 100 82 100 42 100 40 90 86-:-:--:-:--:-:-176 {“ message”:“缺少身份验证令牌”}

我已经创建了aws_access_key_id和aws_secret_access_key并将其保存在用户文件夹下.aws文件夹下的凭据文件中。 仍然出现上述错误。

现在,我正在研究如何将身份验证信息传递给curl命令。

有任何提示/建议吗?

谢谢!

我添加了Autherization标头:

curl -H“内容类型:application / json” -H'授权:令牌aws_secret_access_key ='-X POST -d'{“ icecreamId”:“ 123”,“ name”:“ chocolate”}'{{ 3}}

但是我得到了这个错误: {“ message”:“授权标头需要'Credential'参数。授权标头需要'Signature'参数。授权标头需要'SignedHeaders'参数。授权标头需要存在'X-Amz-Date'或'Date'标头。“}

1 个答案:

答案 0 :(得分:0)

请为API启用CORS,并确保未为API启用IAM。另外,可以直接从API网关本身对其进行测试以确保准确性。