首页 > 解决方案 > AWS Amplify 中的 NodeJS API 访问被拒绝

问题描述

我正在用 NodeJS 和 AWS Amplify 做一个简单的概念证明。

当我在本地机器上运行时,URL http://localhost:8080/api/books 从一个简单的 API 返回结果:

 [{"title":"Harry Potter","id":1},{"title":"Twilight","id":2},{"title":"Lorien Legacies","id":3}]

我在我的机器上运行 AWS Amplify CLI 来创建、部署和构建 AWS Amplify 应用程序。这些步骤是成功的,但是当我尝试使用 AMPLIFY 域 ( https://master.abcdefgyijkl.amplifyapp.com/api/books/ ) 访问相同的页面 URL 时,我得到了以下结果:

<Error>
   <script/>
   <Code>AccessDenied</Code>
   <Message>Access Denied</Message>
   <RequestId>GF09KD45YG10T9FV</RequestId>
   <HostId>+KnvI89dc3G2KGbfV+nrIZuLrDkEIRE+98PzqR0C4camFhqdDmjZR8X/i3hpIDVT9lYtmG5mIk=</HostId>
</Error>

这个Stackoverflow 问题/答案将我引导至重写规则。我尝试在那里使用 Vinit 的答案,替换 index.js,结果是浏览器显示了我的 index.js 程序的源代码,而不是“访问被拒绝”。这显然不是我想做的。

我没有这个StackOverflow中提到的 amplify.yaml 文件。

标签: node.jsaws-amplify

解决方案


您不应更改此答案中的重定向规则。这个想法是它应该重定向到构建的 index.html,假设这是一个前端项目。

另外,有时我需要创建一个默认值amplify.yaml,因为它不能正确地自动检测到某些东西。


推荐阅读