我最近一直在尝试在 Netlify站点上设置 Lambda 函数。该站点的其余部分在 Gatsby 上运行。我能够获得一些在开发和生产中工作的基本功能(例如返回“hello world”),但是每当我尝试更复杂的东西时都会遇到问题。
我的函数似乎总是在开发中返回一个错误,表示Function invocation failed: TypeError: Expected signal to be an instanceof AbortSignal.
我没有尝试让它在生产中工作(尽管它显然不会像现在这样工作,依赖于 .env)。我正在使用netlify-lambda
这个。
例如,这是我试图开始工作的代码,来自这个 gist。我正在尝试使用他们的 API 从一个简单的 Airtable 数据库中获取记录。
require("dotenv").config({ debug: process.env.DEBUG })
const Airtable = require("airtable")
Airtable.configure({
endpointUrl: "https://api.airtable.com",
apiKey: process.env.AIRTABLE_PASS,
})
var base = Airtable.base(process.env.AIRTABLE_ID)
exports.handler = function(event, context, callback) {
const allRecords = []
base('Main')
.select({
maxRecords: 100,
view: 'all'
})
.eachPage(
function page(records, fetchNextPage) {
records.forEach(function(record) {
allRecords.push(record)
})
fetchNextPage()
},
function done(err) {
if (err) {
callback(err)
} else {
const body = JSON.stringify({ records: allRecords })
const response = {
statusCode: 200,
body: body,
headers: {
'content-type': 'application/json',
'cache-control': 'Cache-Control: max-age=300, public'
}
}
callback(null, response)
}
}
)
}
无论我是从浏览器中点击 url,还是通过 Postman 或表单发送 GET 或 POST 请求,都会发生错误。
Netlify 站点名称是ffinate-engelbart-b6885d,repo 在这里。
如果有帮助,很高兴发布错误日志。谢谢!