AWS Lambda
Guia do desenvolvedor

Pacote de implantação do AWS Lambda no Node.js

Um pacote de implantação é um arquivo ZIP que contém as dependências e o código da função. Você precisará criar um pacote de implantação se usar a API do Lambda para gerenciar funções ou se for necessário incluir bibliotecas e dependências diferentes do AWS SDK. Você pode fazer upload do pacote diretamente no Lambda ou pode usar um bucket do Amazon S3 e fazer upload dele no Lambda. Se o pacote de implantação for maior do que 50 MB, você deverá usar Amazon S3.

Se você usar o editor do console do Lambda para criar a função, o console gerenciará o pacote de implantação. Você pode usar esse método, desde que não precise adicionar bibliotecas. Você também pode usá-lo para atualizar uma função que já tem bibliotecas no pacote de implantação, desde que o tamanho total não exceda 3 MB.

nota

Para manter baixo o tamanho do pacote de implantação, empacote as dependências da função em camadas. As camadas permitem gerenciar as suas dependências de forma independente, podem ser usadas por várias funções e podem ser compartilhadas com outras contas. Para obter mais detalhes, consulte Camadas do AWS Lambda.

Atualização de uma função sem dependências

Para criar ou atualizar uma função usando a API do Lambda, crie um arquivo que contém o seu código de função e faça upload dele usando a AWS CLI.

Como atualizar uma função do Node.js sem dependências

  1. Crie um arquivo ZIP.

    ~/my-function$ zip function.zip index.js
  2. Use o comando update-function-code para fazer upload do pacote.

    ~/my-function$ aws lambda update-function-code --function-name my-function --zip-file fileb://function.zip { "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Runtime": "nodejs10.x", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "index.handler", "CodeSize": 300, "Description": "", "Timeout": 3, "MemorySize": 128, "LastModified": "2018-11-23T21:00:10.248+0000", "CodeSha256": "Qf0hMc1I2di6YFMi9aXm3JtGTmcDbjniEuiYonYptAk=", "Version": "$LATEST", "TracingConfig": { "Mode": "Active" }, "RevisionId": "983ed1e3-ca8e-434b-8dc1-7d72ebadd83d" }

Atualização de uma função com dependências adicionais

Se sua função depende de outras bibliotecas que não o SDK for JavaScript, instale-as em um diretório local com NPM e as inclua em seu pacote de implantação. Você também pode incluir o SDK for JavaScript se precisar de uma versão mais recente do que a incluída no tempo de execução, ou para garantir que a versão não seja alterada no futuro.

Para atualizar uma função Node.js com dependências

  1. Instale bibliotecas no diretório node_modules com o comando npm install.

    ~/my-function$ npm install aws-xray-sdk

    Isso cria uma estrutura de pastas que é semelhante à seguinte.

    ~/my-function ├── index.js └── node_modules ├── async ├── async-listener ├── atomic-batcher ├── aws-sdk ├── aws-xray-sdk ├── aws-xray-sdk-core
  2. Crie um arquivo ZIP com o conteúdo da pasta do projeto.

    ~/my-function$ zip -r function.zip .
  3. Use o comando update-function-code para fazer upload do pacote.

    ~/my-function$ aws lambda update-function-code --function-name my-function --zip-file fileb://function.zip { "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Runtime": "nodejs10.x", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "index.handler", "CodeSize": 300, "Description": "My function", "Timeout": 3, "MemorySize": 128, "LastModified": "2018-11-23T21:00:10.248+0000", "CodeSha256": "Qf0hMc1I2di6YFMi9aXm3JtGTmcDbjniEuiYonYptAk=", "Version": "$LATEST", "TracingConfig": { "Mode": "Active" }, "RevisionId": "983ed1e3-ca8e-434b-8dc1-7d72ebadd83d" }

Além do código e bibliotecas, o pacote de implantação também pode conter arquivos executáveis e outros recursos. Para obter mais informações, consulte: