0

我最近一直在尝试在 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 在这里

如果有帮助,很高兴发布错误日志。谢谢!

4

1 回答 1

1

将 airtable 降级到版本 0.8.1。

我遇到过同样的问题。我发现这很有帮助

于 2021-02-03T03:17:14.790 回答