【问题标题】:AWS API Gateway {"message":"Missing Authentication Token"}AWS API Gateway {"message":"缺少身份验证令牌"}
【发布时间】:2020-09-18 17:22:20
【问题描述】:

我正在使用 API Gateway 构建一个 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"} (URL Response)

我的 API 很简单,只有一个 POST 请求,不包含任何其他资源或方法。我也尝试在“/”下设置方法,但遇到了同样的问题。

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

伊恩

【问题讨论】:

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


【解决方案1】:

为了其他像我一样愚蠢的人的利益,您可能会收到此错误的另一个原因是您请求的 URL 未配置。

例如,您在 / 上设置了一个代理 API,该 API 将请求发送到您的后端,其路径是 https://mumblemumble/prod,并且您请求 https://mumblemumble/prod 本身而不是 https://mumblemumble/prod/your/resource,您'会得到这个错误。

【讨论】:

  • 很高兴有这样的提醒...今天早上为我节省了无数分钟的调试时间。
【解决方案2】:

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

API Gateway 默认返回{"message":"Missing Authentication Token"} 响应未定义的方法或不存在的路径,如给定的here

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2020-08-27
        • 2021-08-28
        • 1970-01-01
        • 2018-09-27
        • 1970-01-01
        • 2018-02-14
        • 1970-01-01
        • 2019-03-25
        • 2017-12-07
        相关资源
        最近更新 更多