【问题标题】:Invoking a Lambda through API-Gateway giving 403 response?通过 API-Gateway 调用 Lambda 给出 403 响应?
【发布时间】:2018-09-28 17:51:33
【问题描述】:

我正在使用 AWS codestar 通过使用无服务器 nodejs 模板的反应应用程序进行部署。这是 codestar 在成功完成所有阶段后给出的 url https://xxxxx.execute-api.us-east-1.amazonaws.com/Prod 。此 url 正确显示了我的应用程序中的所有组件。在我的应用程序的导航栏中,我有这样的项目abc。单击它们中的每一个将重定向到一个新组件。(即https://xxxxx.execute-api.us-east-1.amazonaws.com/ahttps://xxxxx.execute-api.us-east-1.amazonaws.com/b 等。但是当我刷新具有类似https://xxxxx.execute-api.us-east-1.amazonaws.com/b 的网址的页面时,我收到类似{"message":"Forbidden"} 的错误在我的控制台中它显示如下favicon.ico:1 GET https://xxxx.execute-api.us-east-1.amazonaws.com/favicon.ico 403

似乎 chrome 正在根据 https 链接获取网站图标,但由于该位置没有这样的 favicon 而失败。我试图在 index.html 中删除favicon.ico link,但即便如此,chrome 仍在使用相同的 url 来获取最终失败的 favicon。我遵循了 SO 中的最大数量的建议来实现这一点,但没有运气。有没有办法说api-gateway 排除这些favicon get requests 并显示我的应用程序而不是显示message forbidden

我很确定我已经为 agi-gateway 和 lambda 启用了日志,但我没有发现任何被禁止的错误(即 403),这很奇怪,因为我可以在控制台中看到那些 403 错误。

谢谢 非常感谢任何帮助。

【问题讨论】:

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


    【解决方案1】:

    API Gateway 提供的 https://xxxxx.execute-api.us-east-1.amazonaws.com/Prod 网址是您网站的基本网址,因此这些路径必须是 /Prod/a 而不是 /a

    解决此问题的一种方法是注册您自己的域并通过custom domain 将其连接到 API 网关。这将允许您将https://example.com 作为您的基本网址,并且您的路径可以保留/a/b 等。

    【讨论】:

    • 谢谢@Tom。你的意思是因为这个我得到{"message":"Forbidden"}?不是因为favicon get requests吗?
    • 您的网站图标请求失败,因为 https://xxxxx.execute-api.us-east-1.amazonaws.com/favicon.ico 的 url 基础错误。我认为浏览器会在/favicon.ico 自动请求网站图标,因此您可能无法将路径更改为/Prod/favicon.ico
    • 是的,你所说的关于网站图标的事情是完全正确的。在您的回答中,您说一种方法是通过自定义域是否有任何其他方式,因为我没有自定义域,因为它不是免费的。
    • 看起来浏览器请求/favicon.ico 而不查看页面的基本网址,因此即使提供<base> 标签也无济于事。所以我没有看到解决图标问题的另一种方法。使用 标记至少可以简化您的链接,因此您不需要在所有链接前面都使用/Prod
    • 感谢&lt;base&gt; 标签。一个问题即使在使用自定义域之后仍然会读取相同的 url 对吗?假设我有像 https://www.example.com 这样的自定义域,那么我将使用基本 url(i.e.https://xxxxx.execute-api.us-east-1.amazonaws.com/Prod) 分配它。之后,我将为我的自定义域分配路径,例如https://www.example.com/ahttps://www.example.com/b 等。然后当我在浏览器内部点击此https://www.example.com/a 时,它只指向https://xxxxx.execute-api.us-east-1.amazonaws.com/Prod/a,对吗?
    猜你喜欢
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2019-12-15
    • 2021-10-23
    • 2017-04-27
    • 1970-01-01
    • 2017-01-14
    • 2017-04-13
    相关资源
    最近更新 更多