【问题标题】:Is there a way to create an aws custom layer from Local nodejs modules?有没有办法从本地 nodejs 模块创建 aws 自定义层?
【发布时间】:2021-07-15 02:06:59
【问题描述】:

我创建了一些自定义 aws 层并且它们可以工作,但是所有这些层都依赖于 npm 存储库,我想要做什么或知道(因为我搜索了很多但没有找到)是这种情况是否可能:

  • 我有一个没有依赖关系的 fooModule
  • 然后在 nodejs 文件夹中我使用npm init - y 然后npm i /path/to/fooModule

最后是我的文件结构

nodejs
--package.json (1)
--node_modules
  --fooModule
    --index.js
    --package.json (2)
  • 用 npm init 生成的 package.json (1) 是
{
  "dependencies": {
    "fooModule": "file:/path/to/fooModule"
  }
}
  • 我制作了一个 zip,上传 zip 后在我的 lambda 中收到此消息

Error: Cannot find module 'fooModule'\nRequire stack:\n- /var/task/src/handlers/index.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js

问题:

  • 这些消息是因为我的 fooModule 引用?
  • 我是否需要发布我的模块才能创建我的图层?
  • 如果我有 2 个模块 fooModule 和 barModule 并且 foo 依赖于 bar 怎么办?

【问题讨论】:

    标签: node.js npm node-modules aws-lambda-layers


    【解决方案1】:

    好的,我通过在生成 fooModule-1.0.0.tgz 文件的 fooModule 中使用 npm pack 实现了我想要的。

    之后,我只需使用npm i /path/to/fooModule/fooModule-1.0.0.tgz 将我的打包模块导入我的 nodejs 文件夹并创建我的 aws 自定义层。

    所以,答案:

    这些消息是因为我的 fooModule 参考? 是的,如果你想这样做,请使用npm pack 命令。

    我是否需要发布我的模块才能创建我的图层? 是的,但如果您不想使用 npm publish 发布您的模块,也可以使用本地模块

    如果我有 2 个模块, fooModule 和 barModule 并且 foo 依赖于 bar 怎么办? 无论你有多少个模块,只要使用 npm pack 正确创建本地包

    就是这样,如果有人有更好的方法,请发表评论。 :D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 2016-08-25
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      相关资源
      最近更新 更多