Creación de funciones de Lambda con TypeScript - AWS Lambda

Creación de funciones de Lambda con TypeScript

Se puede utilizar el tiempo de ejecución de Node.js para ejecutar código TypeScript en AWS Lambda. Dado que Node.js no ejecuta código de TypeScript de manera nativa, antes se debe transpilar el código de TypeScript a JavaScript. A continuación, utilice los archivos JavaScript para implementar el código de la función en Lambda. El código se ejecuta en un entorno que incluye AWS SDK para JavaScript, con credenciales de un rol de AWS Identity and Access Management (IAM) que usted administra. Para obtener más información sobre las versiones del SDK incluidas en los tiempos de ejecución de Node.js, consulte Versiones del SDK incluidas en el tiempo de ejecución.

Lambda admite los siguientes tiempos de ejecución de Node.js.

Node.js
Nombre Identificador Sistema operativo Fecha de baja Bloqueo de la función Crear Bloqueo de la función Actualizar

Node.js 20

nodejs20.x

Amazon Linux 2023

Node.js 18

nodejs18.x

Amazon Linux 2

Configuración de un entorno de desarrollo de TypeScript

Utilice un entorno de desarrollo integrado (IDE) local, un editor de texto o AWS Cloud9 para escribir el código de la función de TypeScript. No se puede crear código de TypeScript en la consola de Lambda.

Para transpilar el código de TypeScript, configure un compilador, como esbuild o el compilador de TypeScript de Microsoft (tsc), que se incluye con la distribución de TypeScript. Puede utilizar AWS Serverless Application Model (AWS SAM) o AWS Cloud Development Kit (AWS CDK) para simplificar la compilación e implementación de código de TypeScript. Ambas herramientas utilizan esbuild para transpilar código de TypeScript a JavaScript.

Al utilizar esbuild, tenga en cuenta lo siguiente:

  • Existen varias advertencias en relación con TypeScript.

  • La configuración de transpilación de TypeScript se debe establecer de modo que coincida con el tiempo de ejecución de Node.js que se piense utilizar. Para obtener más información, consulte Target (Destino) en la documentación de esbuild. Para ver un ejemplo de archivo tsconfig.json que muestra cómo orientarse a una versión específica de Node.js compatible con Lambda, consulte el repositorio de GitHub de TypeScript.

  • esbuild no realiza comprobaciones de tipos. Para comprobar los tipos, utilice el compilador tsc. Ejecute tsc -noEmit o agregue un parámetro "noEmit" al archivo tsconfig.json, como se muestra en el siguiente ejemplo. Eso configura tsc para que no emita archivos JavaScript. Después de comprobar los tipos, utilice esbuild para convertir los archivos de TypeScript a JavaScript.

ejemplo tsconfig.json
{ "compilerOptions": { "target": "es2020", "strict": true, "preserveConstEnums": true, "noEmit": true, "sourceMap": false, "module":"commonjs", "moduleResolution":"node", "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "isolatedModules": true, }, "exclude": ["node_modules", "**/*.test.ts"] }