Criar funções Lambda com TypeScript - AWS Lambda

Criar funções Lambda com TypeScript

Você pode usar o runtime Node.js para executar o código TypeScript no AWS Lambda. Como o Node.js não executa o código TypeScript de modo nativo, você deve primeiro transcompilar seu código TypeScript em JavaScript. Em seguida, use os arquivos JavaScript para implantar o código de função no Lambda. Seu código é executado em um ambiente que inclui o AWS SDK for JavaScript, com as credenciais de uma função do AWS Identity and Access Management (IAM) que você gerencia. Para saber mais sobre as versões do SDK incluídas nos runtimes do Node.js, consulte Versões do SDK incluídas no runtime.

O Lambda oferece suporte aos runtimes Node.js a seguir.

Node.js
Nome Identificador Sistema operacional Data da substituição Bloquear a criação de funções Bloquear a atualização de funções

Node.js 20

nodejs20.x

Amazon Linux 2023

Node.js 18

nodejs18.x

Amazon Linux 2

Configurar seu ambiente de desenvolvimento de TypeScript

Use um ambiente de desenvolvimento integrado (IDE) local, um editor de texto ou o AWS Cloud9 para gravar o código de função TypeScript. Não é possível criar código TypeScript no console do Lambda.

Para transcompilar seu código TypeScript, configure um compilador como o esbuild ou o compilador de TypeScript da Microsoft (tsc), que é empacotado com a distribuição do TypeScript. Você pode usar o AWS Serverless Application Model (AWS SAM) ou o AWS Cloud Development Kit (AWS CDK) para simplificar a criação e a implantação de código TypeScript. Ambas as ferramentas usam esbuild para transcompilar código TypeScript em JavaScript.

Ao usar o esbuild, considere o seguinte:

  • Existem várias advertências de TypeScript.

  • É necessário definir as configurações de transcompilação do TypeScript para corresponder ao runtime Node.js que você pretende usar. Para obter mais informações, consulte Target (Destino) na documentação do esbuild. Para ver um exemplo de arquivo tsconfig.json que mostra como direcionar uma versão específica do Node.js compatível com o Lambda, consulte o repositório GitHub do TypeScript.

  • O esbuild não executa verificações de tipo. Para verificar tipos, use o compilador tsc. Execute tsc -noEmit ou adicione um parâmetro "noEmit" no arquivo tsconfig.json, conforme mostrado no exemplo a seguir. Isso configura tsc para não emitir arquivos JavaScript. Após verificar os tipos, use esbuild para converter os arquivos TypeScript em JavaScript.

exemplo 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"] }