我目前正在使用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?
2条答案
按热度按时间iyr7buue1#
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
eivnm1vs2#
esbuild插件支持在TS上编写的Lambda,模板配置看起来很好。
要构建和打包Node.js AWS Lambda函数,您可以将AWS SAM CLI与esbuild JavaScript编译器配合使用。esbuild编译器支持您用TypeScript编写的Lambda函数。
BuildProperties
有选项列表。参考AWS文档Building Node.js Lambda functions with esbuild设置入口点,或自定义目标,sourcemap等。因此