Criar funções do Lambda com Node.js - AWS Lambda

Criar funções do Lambda com Node.js

Você pode executar Código JavaScript com Node.js no AWS Lambda. O Lambda fornece tempos de execução para o Node.js que executa o seu código para processar eventos. O 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.

O Lambda oferece suporte aos seguintes tempos de execução do Node.js.

Tempos de execução Node.js
Nome Identificador AWS SDK para JavaScript Sistema operacional

Node.js 12

nodejs12.x

2.631.0

Amazon Linux 2

Node.js 10

nodejs10.x

2.631.0

Amazon Linux 2

As funções Lambda usam uma função de execução para obter permissão para gravar logs no Amazon CloudWatch Logs e acessar outros serviços e recursos. Se você ainda não tiver uma função de execução para o desenvolvimento de funções, crie uma.

Para criar uma função de execução

  1. Abra a página Roles no console do IAM.

  2. Selecione Create role.

  3. Crie uma função com as seguintes propriedades.

    • Trusted entity (Entidade confiável)Lambda.

    • Permissions (Permissões)AWSLambdaBasicExecutionRole.

    • Nome da funçãolambda-role.

    A política AWSLambdaBasicExecutionRole tem as permissões necessárias para a função gravar logs no CloudWatch Logs.

Você pode adicionar permissões à função posteriormente ou trocá-la para uma função diferente específica de uma única função.

Para criar uma função do Node.js

  1. Abra o console do Lambda.

  2. Selecione Create function (Criar função).

  3. Configure as definições a seguir:

    • Name (Nome)my-function.

    • Runtime (Tempo de execução)Node.js 12.x.

    • Role (Função)Choose an existing role (Escolher uma função existente).

    • Existing role (Função existente)lambda-role.

  4. Selecione Create function (Criar função).

  5. Para configurar um evento de teste, escolha Test (Testar).

  6. Em Event name (Nome do evento), insira test.

  7. Escolha Criar.

  8. Para executar a função, escolha Test (Testar).

O console cria uma função Lambda com um único arquivo de origem chamado index.js. Você pode editar esse arquivo e adicionar mais arquivos no editor de códigos integrado. Para salvar suas alterações, escolha Save. Em seguida, para executar o código, escolha Test.

nota

O console do Lambda usa o AWS Cloud9 para fornecer um ambiente de desenvolvimento integrado no navegador. Você também pode usar o AWS Cloud9 para desenvolver funções Lambda em seu próprio ambiente. Para obter mais informações, consulte Trabalhar com funções do AWS Lambda no guia do usuário do AWS Cloud9.

O arquivo index.js exporta uma função chamada handler que usa um objeto de evento e um objeto de contexto. Esta é a função de handler que o Lambda chama quando a função é invocada. O tempo de execução da função do Node.js recebe eventos de invocação do Lambda e os transmite ao handler. Na configuração da função, o valor do handler é index.handler.

Cada vez que você salva o código da função, o console do Lambda cria um pacote de implantação, que é um arquivo ZIP que contém o código da função. À medida que o desenvolvimento da função progredir, você desejará armazenar o código da função no controle de origem, adicionar bibliotecas e automatizar implantações. Comece criando um pacote de implantação e atualizando o seu código na linha de comando.

nota

Para começar com o desenvolvimento de aplicativos no ambiente local, implante um dos aplicativos de exemplo disponíveis no repositório GitHub deste guia.

Aplicativos de exemplo do Lambda em Node.js

  • blank-nodejs – uma função do Node.js que mostra o uso do registro em log, variáveis de ambiente, rastreamento do AWS X-Ray, camadas, testes de unidade e do AWS SDK.

  • nodejs-apig – uma função com endpoint de API pública que processa um evento do API Gateway e retorna uma resposta HTTP.

  • rds-mysql – uma função que retransmite consultas para um banco de dados MySQL para RDS. Este exemplo inclui uma VPC privada e uma instância de banco de dados configurada com uma senha no AWS Secrets Manager.

  • efs-nodejs – uma função que usa um sistema de arquivos do Amazon EFS em uma Amazon VPC. Esse exemplo inclui uma VPC, um sistema de arquivos, destinos de montagem e ponto de acesso configurado para uso com o Lambda.

  • list-manager – uma função processa eventos de um stream de dados do Amazon Kinesis e atualiza listas agregadas no Amazon DynamoDB. A função armazena um registro de cada evento em um banco de dados MySQL para RDS em uma VPC privada. Este exemplo inclui uma VPC privada com um VPC endpoint para DynamoDB e uma instância de banco de dados.

  • error-processor – uma função do Node.js gera erros para uma porcentagem especificada de solicitações. Uma assinatura do CloudWatch Logs invoca uma segunda função quando um erro é registrado. A função do processador usa o AWS SDK para coletar detalhes sobre a solicitação e os armazena em um bucket do Amazon S3.

O tempo de execução da função transmite um objeto de contexto para o handler, além do evento de invocação. O objeto de contexto contém informações adicionais sobre a invocação, a função e o ambiente de execução. Mais informações sobre variáveis do ambiente estão disponíveis.

A função do Lambda é fornecida com um grupo de logs do CloudWatch Logs. O tempo de execução da função envia detalhes sobre cada invocação para o CloudWatch Logs. Ele transmite todos os logs que sua função envia durante a invocação. Se a sua função retornar um erro, o Lambda formatará o erro e o retornará para o chamador.