我想创建一个端点,其他人可以在其中发布数据,然后我可以使用它进行进一步的操作。我正在使用 lambda 和无服务器框架进行部署。它在我的本地工作正常,但每次部署时都会给出 404 notfoundError。(部署中没有问题)。在测试 API 时,我在失眠中收到以下消息- 无法发布/测试/更新 (测试是我的基本路径) 我已经交叉验证了这些域,它们与 serverless.yml 文件中存在的域完全相同。目前,我有以下用于帖子请求的代码-
const express = require('express')
const eApp = express()
eApp.post('/update', async (req, res) => {
try {
// console.log('post req is:', req)
console.log('body', JSON.stringify(req.body))
res.sendStatus(200)
}
catch (e) {
console.log('error in post request is:',e)
res.sendStatus(200)
}
})
exports.eApp = eApp
const handler = serverless(eApp)
module.exports.handler = async (event, context) => {
context.callbackWaitsForEmptyEventLoop = false
const result = await handler(event, context)
return result
}
(上述代码位于routes文件夹中的index.js中)。 serverless.yml 文件中的 lambda 函数如下 -
updateEndPoint:
handler: routes/index.handler
events:
- http:
path: /update
method: post
cors: true
我在cloudwatch日志中也没有收到任何错误,也找不到问题的根本原因。任何帮助,将不胜感激。预先感谢!
编辑-它正在使用 aws 中的 lambda 中提到的域地址(由 aws 自动分配的域地址),但不使用我在 serverless.yml 文件中给出的域地址。有解决办法吗??
尝试添加
functions:
api:
handler: index.handler
events:
- httpApi: '*'
默认无服务器它就像这样,只允许“/”路径
functions:
api:
handler: index.handler
events:
- httpApi:
path: /
method: get
我知道这已经晚了,但请为未来的用户保留。