首次尝试使用 NodeJS 进行 AWS Amplify 时出现 404 页面未找到

First attempt at AWS Amplify with NodeJS gives 404 page not found

当转到给定的 url 时,是这样的:https://master.xyz.amplifyapp.com/, I get 404 page not found. I don't need my own domain for this proof of concept. I also tried https://master.xyz.amplifyapp.com/poc(请参阅下面我的目录结构)。相同的结果。

之前采取的步骤:

  1. 该目录最初是通过克隆一个空的 AWSCodeCommit 存储库创建的。

  2. 我 运行 create-react-app poc,当我在“poc”目录中执行 npm start 时,它在浏览器中显示正常url: http://localhost:3000/(注意底部 post,我用 NodeJS RESTAPI 做了同样的事情并得到了相同的结果)。

  3. 这是我的目录结构,从那里我做了:

    git 添加-全部 git commit -m“第一次检查” git推

在 AWSCodeCommit 中,我可以浏览存储库并查看那里的代码。

  1. 这是将 CodeCommit 连接到 Amplify 的结果:

我希望从提供的 URL (https://master.xyz.amplifyapp.com/) 中看到与我在本地计算机 (localhost:3000) 上看到的相同的东西。

  1. 我有一个想法。我将 poc 目录复制到主目录,提交,推送,看到它 rebuild/deploy,然后再次尝试,但结果相同。

注意:我已经使用简单的 NodeJS REST API 进行了相同的练习。它还得到“找不到页面”。

本地:http://localhost:8080/api/books returns: [{"title":"哈利波特","id":1},{"title":"暮光之城","id":2},{"title":"洛里恩遗产", "id":3}]

使用放大: https://master.xyz.amplifyapp.com/api/books 给出“找不到 404 页面”。

我认为 React 的问题在于它是一个常规的 React 应用程序,而不是一个 Native-React 应用程序。但现在我在使用更简单的 nodeJS 应用程序时遇到了同样的问题,不知道接下来该尝试什么。

即使我没有使用 Cognito,这个视频也给了我让它发挥作用的想法。 https://www.youtube.com/watch?v=g4qKydnd0vU

第一个视频没有提到安装和 运行在本地放大。

所以我在 Windows 笔记本电脑上安装了 amplify。然后基本上必须从 windows 命令提示符 运行 这些命令:

npm install -g @aws-amplify/cli
amplify configure 
amplify init 

当我 运行 第二个命令时,它在 AWS 中创建了另一个放大应用程序。幸运的是,我的第一个项目中有破折号,而这个没有,所以它们没有冲突。 (我会回去删除我的原件或尝试让它们稍后工作)。

许多视频都使用 GitHub 进行演示,但我使用的是 CodeCommit。

如果您在构建阶段遇到“请求的 URL 返回错误:403”的错误,这意味着您的代码库存在访问问题。我通过将我的 Amplify 应用程序的“服务角色”更改为我之前创建的角色来解决这个问题。如果您对这个答案发表评论,我很可能不会有任何答案。

放大配置: (我使用了我已经为第一次尝试创建的现有用户名。如果你还没有这样做,我认为你需要这样做,这样你就可以为用户、访问代码和秘密粘贴数据。

放大初始化:

所以这就是我为启动和工作所做的(对于 React 和我的 NodeJS api 后端)。我有更多的阅读或观看视频并提前进行实验以了解更多信息。有许多视频在 AWS Web 控制台中创建应用程序,而没有使用命令行“amplify config”和“amplify init”命令。大约 4 天没有人回答这个问题,所以看起来它可能仍然是新的并且还没有那么受欢迎。

我在 NodeJS api/backend 上还有一个小问题,接下来我会解决这个问题。对于这个 url: https://master.xyz.amplifyapp.com/api/books/ 它 returns:

<Error>
   <script/>
   <Code>AccessDenied</Code>
   <Message>Access Denied</Message>
   <RequestId>1Z3T564T3SSGXJQE</RequestId>  
   <HostId>mx8RKnqMS1MDe0oOiZ0it3A1sL0bRXHsdZrL5IBuin9S2llrwLFNI+y=</HostId>
</Error>

这可能表示“找不到页面”,需要重定向才能解决,如 中所述。 NodeJS 代码是执行此操作的一个简单示例:

app.get('/api/books', (req,res)=> {
    res.send(books);
});

我做了以下导致另一个 build/deploy,但访问被拒绝的错误仍在发生:

git status   (I see new Amplify folder) 
git add --all 
git commit -am"after amplify config/init" 
git push 

我的 package.json 包含这个,以及其他设置:

  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "node index.js",
    "prod": "node index.js"
  },