node-fetch 无法与 AWS lambda 函数一起使用(“找不到 node-fetch”)

基本上我试图从 API 网关调用 lambda 函数。该 API 是从我制作的 index.html 文件中调用的,该文件通过单击按钮调用 api 并返回值(最好是天气)。我可以让它返回一些文本值,但每当我尝试使用节点获取函数使用 lambda 函数实际调用 API 时,都会出现错误,提示“无法找到节点获取模块”。


const fetch = require('node-fetch')


module.exports.getTulsaCurrentWeather = (event, context, callback) => {


//API endpoint

const endpoint = `http://api.openweathermap.org/data/2.5/weather? 

APPID=${process.env.APPID}&q=Tulsa&units=imperial`;


fetch(endpoint)

.then( res => res.json() )

.then( body =>  {

const response = {

  statusCode: 200,

  headers: {

    "Access-Control-Allow-Origin" : "*",

  },

  body: JSON.stringify({ temperature: body.main.temp })

};


callback(null, response);

});

};


隔江千里
浏览 151回答 1
1回答

繁华开满天机

请参阅如何为 Node.js 构建 Lambda 部署包?Node.js 中 Lambda 函数的一个常见错误是“找不到模块”。当您的部署包没有正确的文件夹结构供 Lambda 服务加载您的模块和库时,或者它具有不正确的文件权限时,通常会导致此错误。(Lambda 需要全局读取权限。)按照以下说明构建部署包,其中包含 .zip 文件根目录中的函数代码,并对所有文件具有读取和执行权限。请注意,您的代码也不会在 Lambda 之外运行,例如在您自己的计算机上,除非您之前已从node-fetchNPM 安装了该软件包。AWS Lambda 中的类似过程是打包并上传第三方依赖项,或者将包部署到 Lambda 层并配置 Lambda 函数以使用该层。Lambda 不npm install node-fetch适合你。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript