首次尝试使用 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(请参阅下面我的目录结构)。相同的结果。
之前采取的步骤:
该目录最初是通过克隆一个空的 AWSCodeCommit 存储库创建的。
我 运行 create-react-app poc,当我在“poc”目录中执行 npm start 时,它在浏览器中显示正常url: http://localhost:3000/(注意底部 post,我用 NodeJS RESTAPI 做了同样的事情并得到了相同的结果)。
这是我的目录结构,从那里我做了:
git 添加-全部
git commit -m“第一次检查”
git推
在 AWSCodeCommit 中,我可以浏览存储库并查看那里的代码。
- 这是将 CodeCommit 连接到 Amplify 的结果:
我希望从提供的 URL (https://master.xyz.amplifyapp.com/) 中看到与我在本地计算机 (localhost:3000) 上看到的相同的东西。
- 我有一个想法。我将 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"
},
当转到给定的 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(请参阅下面我的目录结构)。相同的结果。
之前采取的步骤:
该目录最初是通过克隆一个空的 AWSCodeCommit 存储库创建的。
我 运行 create-react-app poc,当我在“poc”目录中执行 npm start 时,它在浏览器中显示正常url: http://localhost:3000/(注意底部 post,我用 NodeJS RESTAPI 做了同样的事情并得到了相同的结果)。
这是我的目录结构,从那里我做了:
git 添加-全部 git commit -m“第一次检查” git推
在 AWSCodeCommit 中,我可以浏览存储库并查看那里的代码。
- 这是将 CodeCommit 连接到 Amplify 的结果:
我希望从提供的 URL (https://master.xyz.amplifyapp.com/) 中看到与我在本地计算机 (localhost:3000) 上看到的相同的东西。
- 我有一个想法。我将 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>
这可能表示“找不到页面”,需要重定向才能解决,如
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"
},