我目前正在使用 AWS 无服务器应用程序模型 (SAM) 来管理我的 TypeScript Lambda 函数,并且我依靠 esbuild 来进行构建过程。
我想在构建过程中使用 esbuild 插件来支持 TypeScript 项目引用,以便在多个 Lambda 函数之间共享代码。但是,我不确定如何将这些插件直接包含在 template.yaml 中或者是否受支持。这是我当前的 template.yaml 的片段:
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Metadata:
BuildMethod: esbuild
BuildProperties:
Minify: true
Target: es2020
# ... other properties
有没有办法直接在SAM模板中指定esbuild插件?如果不直接支持,是否有任何推荐的解决方法或最佳实践来将 esbuild 插件与 SAM 集成?
AFAIK,我认为您找不到任何相关信息,因为为了在 Lambda 之间共享代码,AWS 建议使用层。 层可以被视为一个插件,可以附加到一个或多个 Lambda,从而允许代码与附加它的任何 Lambda 共享。
如何在 YAML 中构建层 https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-layers.html
图层文档 https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html