如何向 AWS Amplify Express 服务器添加额外的终端节点?
How to add an additional endpoint to the AWS Amplify Express Server?
我已经使用 Amplify 生成了一个 REST Express 服务器。
我尝试向它添加更多端点:
// using serverless express
app.post('/myendpoint', function(req, res) {
console.log('body: ', req.body)
res.json(req.body)
});
// using serverless express
app.get('/myendpoint', function(req, res) {
res.json({success: 'get call to my endpoint succeed!', url: req.url});
});
在 运行 amplify push
之后,我在控制台中看不到这些端点,我无法通过放大向它们发出请求。
作为初始配置工作的一部分生成的端点。
添加更多 REST 端点的正确方法是什么?我感觉我缺少一些额外的配置步骤。
部署 API 和函数后,要添加其他路径,您应该使用 "amplify update api"
正如 Kevin Le 所说 运行 "amplify update api" 将允许您添加另一个 "root" 路径,例如“/items”或“/customers”,但我已经 运行 在初始 api 创建后添加嵌套路径(如“/customer/addAddress”时出现问题。
我尝试过的:
- 我可以在 API 的初始创建期间添加它们,但不能在更新期间添加它们
- 我可以更改云形成模板以将它们包含在 API 网关中,但是对嵌套路径的任何调用都会被根路径代理接收。
- 我可以在 express lambda 函数中添加它们(违背 API 网关的目的)
他们需要添加一些增强功能来增强其余 API 以便我们可以利用 API 网关。在我们可以分离 GET、POST、PUT 等函数之前,它不是真正的无服务器
更新:我想在进一步调查后跟进。我找到的一个解决方案是在 API 网关的云形成文件中删除 "root" 路径的 {proxy} 端点。该文件应位于:"project root"/amplify/backend/api/"api name"/"api name"-cloudformation-template.json。然后去掉位于Resources->"api name"->Properties->Body->paths->"api name"/{proxy+}.
的路径
进一步调查:我还没有尝试过,但是云形成文件中路径的顺序可能会影响请求的处理方式,因此如果您将 "root" 代理移动到最后一条路径,您可能不必将其删除。也感谢 Piotr 修正了我糟糕的语法!
您可以运行“放大更新api”
然后选择添加新端点
并为此端点选择分配新(旧)lambda 函数
我已经使用 Amplify 生成了一个 REST Express 服务器。
我尝试向它添加更多端点:
// using serverless express
app.post('/myendpoint', function(req, res) {
console.log('body: ', req.body)
res.json(req.body)
});
// using serverless express
app.get('/myendpoint', function(req, res) {
res.json({success: 'get call to my endpoint succeed!', url: req.url});
});
在 运行 amplify push
之后,我在控制台中看不到这些端点,我无法通过放大向它们发出请求。
作为初始配置工作的一部分生成的端点。
添加更多 REST 端点的正确方法是什么?我感觉我缺少一些额外的配置步骤。
部署 API 和函数后,要添加其他路径,您应该使用 "amplify update api"
正如 Kevin Le 所说 运行 "amplify update api" 将允许您添加另一个 "root" 路径,例如“/items”或“/customers”,但我已经 运行 在初始 api 创建后添加嵌套路径(如“/customer/addAddress”时出现问题。
我尝试过的:
- 我可以在 API 的初始创建期间添加它们,但不能在更新期间添加它们
- 我可以更改云形成模板以将它们包含在 API 网关中,但是对嵌套路径的任何调用都会被根路径代理接收。
- 我可以在 express lambda 函数中添加它们(违背 API 网关的目的)
他们需要添加一些增强功能来增强其余 API 以便我们可以利用 API 网关。在我们可以分离 GET、POST、PUT 等函数之前,它不是真正的无服务器
更新:我想在进一步调查后跟进。我找到的一个解决方案是在 API 网关的云形成文件中删除 "root" 路径的 {proxy} 端点。该文件应位于:"project root"/amplify/backend/api/"api name"/"api name"-cloudformation-template.json。然后去掉位于Resources->"api name"->Properties->Body->paths->"api name"/{proxy+}.
的路径进一步调查:我还没有尝试过,但是云形成文件中路径的顺序可能会影响请求的处理方式,因此如果您将 "root" 代理移动到最后一条路径,您可能不必将其删除。也感谢 Piotr 修正了我糟糕的语法!
您可以运行“放大更新api” 然后选择添加新端点 并为此端点选择分配新(旧)lambda 函数