无法使用 Nodejs14.x ES 模块在 AWS lambda 中导入包

我是

我有一个 node_modules 的路径所在的层nodejs/node14/node_modules

使用该层,我尝试在 Lambda 函数中导入一个包,例如“aws-cloudfront-sign”,如下所示:

import cfsign from 'aws-cloudfront-sign'

我收到错误消息

Cannot find package 'aws-cloudfront-sign' imported from /var/task/signer.js\nDid you mean to import aws-cloudfront-sign/lib/cloudfrontUtil.js?

但是如果我像这样导入包:

import cfsign from '/opt/nodejs/node14/node_modules/aws-cloudfront-sign/lib/cloudfrontUtil.js'

它成功了。

你知道为什么吗?如何正确导入包?

亨达尔斯特

这似乎是一个错误。它发生在图层和 SDK 中。Github 上有许多类似的未解决问题:

Nodejs Lambda:找不到包'aws-sdk'

使用 ES 模块和 Lambda 层时找不到包

ES6 导入在 @aws-sdk/client-iotsitewise 中不起作用

如您所见,目前唯一的解决方法似乎是使用绝对路径。例如:

import { DynamoDB } from 'aws-sdk;'

失败,而

import AWS from '/var/runtime/node_modules/aws-sdk/lib/aws.js';
const { DynamoDB } = AWS;

将工作。

我建议您将您的声音添加到现有的未解决问题中,以帮助确保它得到关注。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从包中导入模块

如何在 AWS lambda 中导入任何会引发无法导入错误的模块

无法从AWS Lambda层导入模块

Python 中的 AWS Lambda 无法导入模块

AWS Lambda返回“无法导入模块”

无法在Node.js中导入模块``处理程序''AWS Lambda函数

无法从包中导入python模块

Python无法从包中导入模块

AWS Lambda-无法导入模块“ lambda_function”

在ES6中导入包:“无法解析模块说明符“ vue””

无法从AWS Lambda函数导入模块'aws_encryption_sdk'

AWS Lambda NodeJS 导入返回空模块,但仅在 AWS 中

无法在 aws lambda 函数中导入图层

无法在AWS Lambda中导入熊猫

AWS Lambda导入模块故障

无法在 AWS Lambda 中导入 numpy 1.19.1 没有名为“numpy.core._multiarray_umath”的模块

在 AWS Lambda 中,为什么无法导入函数的模块?

AWS Lambda函数错误-无法导入模块“索引”:错误

如何修复AWS Lambda中的“无法导入模块”错误

AWS Lambda无法识别部署包中的python模块

aws lambda无法导入模块“ lambda_function”:没有名为“ requests”的模块

AWS Lambda 返回无法导入模块“main”:存在模块时没有名为“main”的模块

在Lambda中导入枕头模块

无法在子模块中导入软件包

当我取消对导入之一的注释时,AWS lambda“无法导入模块'lambda_function”

我无法在 python 3.x 中导入 docx 模块

AWS Lambda“无法导入模块'处理程序':没有名为处理程序的模块”

AWS Lambda:无法导入模块“ python_handler”:没有名为“ _cffi_backend”的模块

Python使用importlib从包目录中导入模块