gpt4 book ai didi

node.js - AWS Lambda : module initialization error: Error at Error (native) at Object. fs.openSync (fs.js:641:18)

转载 作者:搜寻专家 更新时间:2023-11-01 00:04:16 25 4
gpt4 key购买 nike

我有一个由 DynamoDB 流触发的 AWS DynammoDB lambda。所有的实现都是用 ClaudiJS 在 JS 中完成的。当使用 claudia create 命令部署 lambda 时,没有问题。

问题是当调用 lambda 函数时发生以下错误后,使用 dockerized 构建服务器使用 GoCD 管道部署相同的函数。

module initialization error: Error
at Error (native)
at Object.fs.openSync (fs.js:641:18)
at Object.fs.readFileSync (fs.js:509:33)
at Object.Module._extensions..js (module.js:578:20)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)

现在我已经花了 10 多个小时,我不知道如何解决这个问题。有人可以帮帮我吗?

Lambda 使用 Node 6.10,我使用 babel 转译到 node 6.10。尝试使用 node:boronubuntu:16.04 图像作为 Docker 的构建器图像。

最佳答案

我在这个问题上花了一天多的时间。最后,我几乎尝试了所有可能的方法,最终通过切换到 Serverless 解决了这个问题。来自 ClaudiaJS .为了方便大家使用,我将在这里提及我尝试过的方法。

  1. 在 GoCD 管道使用的构建 docker 容器内使用相同的本地主机环境(相同的 Node 版本,相同的 yarn 版本,Ubuntu 16:04)。但问题仍然存在。
  2. 删除了 docker 并将 GoCD 管道设置为直接在构建服务器上运行(再次使用相同的 Node 版本、相同的 yarn 版本、Ubuntu 16:04 与我在本地机器上使用的一样)。但是再次没有锁,问题就在那里,没有任何变化。
  3. 将我本地计算机的 node_modules 文件夹和构建文件夹提交到 git 存储库,并使用相同的 node_modules 和 GoCD 管道构建文件,而不执行 yarn 并且不在构建服务器上转译代码。但一切都没有改变。

最后,我转向了 Serverless 框架。在第一次尝试中,我将无服务器与 babel 一起使用,但没有使用 webpack,尽管无服务器建议是使用 webpack。但是当 lambda 与管道一起部署时,同样的问题再次发生。我更改了配置以将 webpack 与无服务器一起使用。然后所有的问题都解决了,lambda部署成功了。这是我最后使用的webpack.config.js

const path = require('path');

const slsw = require('serverless-webpack');
const nodeExternals = require('webpack-node-externals');

const build = {
entry: slsw.lib.entries,
resolve: {
extensions: ['.js'],
},
target: 'node',
output: {
libraryTarget: 'commonjs',
path: path.join(__dirname, '.webpack'),
filename: '[name].js',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
},
],
},
],
},
mode: slsw.lib.webpack.isLocal ? 'development' : 'production',
optimization: {
// Do not minimize the code.
minimize: false,
},
performance: {
// Turn off size warnings for entry points
hints: false,
},
externals: [nodeExternals()],
};

module.exports = build;

关于node.js - AWS Lambda : module initialization error: Error at Error (native) at Object. fs.openSync (fs.js:641:18),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50084227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com