typescript - Hoe voeg je esbuild-plugins toe in de template.yaml van AWS SAM?
Ik gebruik momenteel het AWS Serverless Application Model (SAM) om mijn TypeScript Lambda-functies te beheren, en ik vertrouw op esbuild voor het buildproces.
Ik wil graag esbuild-plugins gebruiken in mijn buildproces om TypeScript Project References te ondersteunen, om code te delen tussen meerdere Lambda-functies. Ik weet echter niet zeker hoe ik deze plugins direct in de template.yaml kan opnemen of dat het überhaupt wordt ondersteund. Hier is een fragment van mijn huidige template.yaml:
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Metadata:
BuildMethod: esbuild
BuildProperties:
Minify: true
Target: es2020
# ... other properties
Is er een manier om esbuild-plugins rechtstreeks in het SAM-sjabloon op te geven? Als dit niet rechtstreeks wordt ondersteund, zijn er dan aanbevolen oplossingen of best practices voor het integreren van esbuild-plugins met SAM?
Antwoord #1
Voor zover ik weet, denk ik niet dat je er informatie over kunt vinden, aangezien AWS voorstelt om lagen te gebruiken om code te delen tussen Lambdas. Lagen kunnen worden gezien als een plugin die aan een of meer Lambdas kan worden toegevoegd, waardoor de code kan worden gedeeld met elke Lambda waaraan deze is toegevoegd.
Hoe je lagen kunt bouwen in de YAML https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-layers.html
Documentatie over Layers https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html
Antwoord #2
De esbuild-bundler ondersteunt Lambda geschreven in TS, de templateconfiguratie ziet er goed uit.
Om Node.js AWS Lambda-functies te bouwen en te verpakken, kunt u de AWS SAM CLI gebruiken met de esbuild JavaScript-bundler. De esbuild-bundler ondersteunt Lambda-functies die u in TypeScript schrijft.
BuildProperties heeft een lijst met opties. Raadpleeg de AWS-documentatie Building Node.js Lambda functions with esbuild
Valideer EntryPoints, of pas doel, sourcemap enz. dienovereenkomstig aan
