【问题标题】:AWS Lambda Layer Using Another Layer使用另一层的 AWS Lambda 层
【发布时间】:2021-11-01 06:29:51
【问题描述】:

我有一个 nodejs AWS Lambda 层(我们称之为 dbUtil),带有一些低级数据库访问代码(诸如打开连接、执行准备好的语句等)。

现在我想创建另一个层(我们称之为modelUtil),其中包含更高级别的特定于数据模型的代码(诸如数据传输对象和特定于模型的转换之类的东西)。

我非常希望能够在更高级别的 modelUtil 层中利用 dbUtil 层中的代码,同时仍然能够独立地将 dbUtil 导入 lambda 函数。

将层导入 lambda 函数很容易,因为 SAM 将层代码放入 /opt/nodejs/。但据我所知,层不存在类似的东西。 AWS 不让您能够以相同的方式将一个层导入另一个 层。此外,每一层都是自包含的,所以我不能让层只将const dbUtil = require('./dbUtil') 放在modelUtil.js 文件中,除非它们在我构建层时位于同一目录中,因此,强制它们 同一层。

有没有一种方法可以让一个层 (modelUtil) 依赖于另一层 (dbUtil),同时仍然允许它们被视为独立层?

【问题讨论】:

    标签: node.js aws-lambda layer aws-sam


    【解决方案1】:

    我刚刚在 Lambda 上进行了测试,我可以证明 一个层可以从另一个层导入函数和依赖项。甚至合并顺序也无所谓。

    对于您的情况,对于modelUtil 层从dbUtil导入函数: (内modelUtilconst func1 = require('/opt/<the location of func1 in dbUtil>')

    对于 modelUtil 层从 dbUtil 层导入 npm 依赖项: (内modelUtilconst dependency = require(dependency)

    就这么简单!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2020-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      相关资源
      最近更新 更多