AWS API Gateway {“消息”:“缺少身份验证令牌”}

时间:2020-05-31 10:24:39

标签: amazon-web-services aws-api-gateway

我正在使用API​​网关构建REST API,以通过aws lambda与已部署的aws sagemaker模型进行通信。当我测试方法(Method Test Results)时,我的lambda函数返回所需的结果。我肯定已经部署了API,并且使用了正确的调用URL,并在资源名称后附加了(Method Invoke URL)。最后,我检查了此方法请求(Method Auth Settings)的所有身份验证设置。当我在浏览器中输入调用URL或尝试调用REST API(从cloud9 IDE –我正在开发的Web应用程序)时,出现以下错误:{“ message”:“ Missing Authentication Token”}({{3} })

我的API非常简单,只有一个POST请求,它不包含任何其他资源或方法。我也尝试在'/'下设置方法,但存在相同的问题。

这个问题有很多人,我花了一段时间阅读类似的帖子-但是解决方案归结为我在上面检查过的问题。如果有人可以帮助,将不胜感激!

伊恩

4 个答案:

答案 0 :(得分:5)

为了使其他任何与我一样愚蠢的人受益,您可能会收到此错误的另一个原因是,您正在请求未配置的URL。

例如,您已经在/上设置了代理API,该代理API将请求发送到后端,并且其路径为https://mumblemumble/prod,而您自己请求了https://mumblemumble/prodhttps://mumblemumble/prod/your/resource中,您会收到此错误。

答案 1 :(得分:1)

您已使用POST方法配置了API网关资源,并且在使用API​​ Gateway控制台进行测试时,该控制台会处理将HTTP方法设置为POST。但是,当您直接从浏览器中访问调用URL时,将使用GET方法。

默认情况下,API网关针对未定义的方法或不存在的路径返回{"message":"Missing Authentication Token"}响应,如给定here

如果API Gateway无法处理传入的请求,则会将错误响应返回给客户端,而不会将请求转发到集成后端。默认情况下,错误响应包含简短的描述性错误消息。例如,如果尝试在未定义的API资源上调用操作,则会收到带有{“ message”:“ Missing Authentication Token”}消息的错误响应。

使用POST方法测试您的API。可以使用命令行(curl)或使用Postman来完成。

答案 2 :(得分:0)

另一个潜在原因是 Lambda 函数代码抛出的错误。我有一个类似的问题,结果证明是我的 python 代码中的 TypeError。您可以查看 CloudWatch 日志以获取更多信息。

答案 3 :(得分:0)

就我而言,网址不正确。从 Aws API,转到您的 api,转到您的方法的“阶段”,找到“调用 URL”,然后在邮递员中使用它。