为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

隔江千里 2023-11-02 16:51:54
基本上我试图从 API 网关调用 lambda 函数。该 API 是从我制作的 index.html 文件中调用的,该文件通过单击按钮调用 api 并返回值(最好是天气)。我可以让它返回一些文本值,但每当我尝试使用节点获取函数使用 lambda 函数实际调用 API 时,都会出现错误,提示“无法找到节点获取模块”。const fetch = require('node-fetch')module.exports.getTulsaCurrentWeather = (event, context, callback) => {//API endpointconst 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);});};
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

请参阅如何为 Node.js 构建 Lambda 部署包?

Node.js 中 Lambda 函数的一个常见错误是“找不到模块”。当您的部署包没有正确的文件夹结构供 Lambda 服务加载您的模块和库时,或者它具有不正确的文件权限时,通常会导致此错误。(Lambda 需要全局读取权限。)

按照以下说明构建部署包,其中包含 .zip 文件根目录中的函数代码,并对所有文件具有读取和执行权限。

请注意,您的代码也不会在 Lambda 之外运行,例如在您自己的计算机上,除非您之前已从node-fetchNPM 安装了该软件包。

AWS Lambda 中的类似过程是打包并上传第三方依赖项,或者将包部署到 Lambda 层并配置 Lambda 函数以使用该层。Lambda 不npm install node-fetch适合你。


查看完整回答
反对 回复 2023-11-02
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信