Implantar funções do Lambda como arquivos .zip - AWS Lambda

Implantar funções do Lambda como arquivos .zip

Quando você cria uma função do Lambda, você empacota o código da função em umpacote de implantação. O Lambda é compatível com dois tipos de pacotes de implantação: imagens de contêiner e arquivos .zip. O fluxo de trabalho para criar uma função depende do tipo de pacote de implantação. Para criar uma função definida como uma imagem de contêiner, consulte Criar uma função do Lambda usando uma imagem de contêiner.

Você pode usar o console do Lambda e a API do Lambda para criar uma função definida com um arquivo de arquivo.zip. Você também pode carregar um arquivo.zip atualizado para alterar o código da função.

nota

Você não pode alterar o tipo de pacote de implantação (.zip ou imagem de contêiner) de uma função existente. Por exemplo, você não pode converter uma função de imagem de contêiner para usar um arquivo compactado .zip. É necessário criar uma nova função.

Como criar a função

Ao criar uma função definida com um arquivo de arquivo .zip, você escolhe um modelo de código, a versão de idioma e a função de execução da função. Você adiciona o código da função depois do Lambda cria a função.

Para criar a função
  1. Abra a página Funções do console do Lambda.

  2. Escolha a opção Criar função.

  3. Selecione Começar do zero ou Usar um esquema para criar a função.

  4. Em Basic information (Informações básicas), faça o seguinte:

    1. Em Function name (Nome da função), insira o nome da função. Os nomes das funções têm um limite de 64 caracteres de comprimento.

    2. Para o Runtime, escolha a versão do idioma a ser usada para sua função.

    3. (Opcional) Em Architecture (Arquitetura), escolha a arquitetura do conjunto de instruções a ser usado para sua função. O valor da arquitetura padrão é X86_64. Ao criar o pacote de implantação para sua função, verifique se ela é compatível com esta arquitetura de conjunto de instruções.

  5. (Opcional) Em Permissões, expanda Alterar função de execução padrão. Crie uma função de execução ou use uma existente.

  6. (Opcional) Expanda Advanced settings (Configurações avançadas). Você pode escolher uma configuração de assinatura de código para a função. Você também pode configurar um (Amazon VPC) para que a função acesse.

  7. Escolha a opção Criar função.

O Lambda cria a nova função. Agora é possível usar o console do para adicionar o código da função e configurar outros parâmetros e recursos da função. Para obter instruções sobre implantação de código, consulte a página do manipulador de runtime que a função usa.

Node.js

Implantar funções do Lambda em Node.js com arquivos .zip

Python

Trabalhar com arquivos .zip para funções do Lambda em Python

Ruby

Implantar funções do Lambda em Ruby com arquivos .zip

Java

Implantar funções do Lambda em Java com arquivos .zip ou JAR

Go

Implantar funções do Lambda em Go com arquivos .zip

C#

Criar e implantar funções do Lambda em C# com arquivos .zip

PowerShell

Implantar funções do Lambda para PowerShell com arquivos .zip

Usando o editor de código do console

O console cria uma função do Lambda com um único arquivo de origem. Para linguagens de desenvolvimento de scripts, você pode editar esse arquivo e adicionar mais arquivos usando o editor de códigos integrado. Para salvar suas alterações, selecione Salvar. Em seguida, para executar seu código, escolha Teste.

Quando você salva seu código de função, o console do Lambda cria um pacote de implantação de arquivos .zip. Quando desenvolver o código de função fora do console (usando um IDE), você precisará criar um pacote de implantação para carregar o código na função do Lambda.

Atualizar código de função

Para linguagens de desenvolvimento de scripts (Node.js, Python, e Ruby), você pode editar o código de sua função no editor de código incorporado. Se o tamanho do código for superior a 3 MB, se você precisar adicionar bibliotecas ou para linguagens incompatíveis com o editor (Java, Go, C#), é necessário fazer upload do código da função como um arquivo.zip. Se o arquivo .zip for menor que 50 MB, você poderá fazer upload do arquivo .zip da sua máquina local. Se o arquivo for maior que 50 MB, faça upload do arquivo para a função desde um bucket do Amazon S3.

Para carregar código de função como um arquivo.zip
  1. Abra a página Funções do console do Lambda.

  2. Escolha a função a ser atualizada e escolha a guia Código.

  3. Em Fonte de código), escolha Fazer upload de.

  4. Escolha .zip file (Arquivo .zip) e, em seguida, escolha Upload (Fazer upload).

    1. No seletor de arquivos, selecione a nova versão da imagem e escolha Open (Abrir) e, em seguida, Save (Salvar).

  5. (Alternativa à etapa 4) Escolha Localização do Amazon S3.

    1. Na caixa de texto, insira o URL do link do S3 do arquivamento de arquivo.zip e, depois, escolhaSave (Salvar).

Como alterar o runtime

Se você atualizar a configuração da função para usar um novo runtime, talvez seja necessário atualizar o código da função para ser compatível com o novo runtime. Ao atualizar a configuração da função para usar um runtime diferente, você deverá fornecer um novo código de função compatível com o runtime e a arquitetura. Para obter instruções de como criar um pacote de implantação para o código da função, consulte a página do manipulador para o runtime usado pela função.

As imagens de base do Node.js 20, Python 3.12, Java 21, .NET 8, Ruby 3.3 e posteriores são baseadas na imagem de contêiner mínimo do Amazon Linux 2023. Imagens base anteriores usam o Amazon Linux 2. O AL2023 oferece várias vantagens em relação ao Amazon Linux 2, incluindo uma área de implantação menor e versões atualizadas de bibliotecas, como glibc. Para obter mais informações, consulte Introducing the Amazon Linux 2023 runtime for AWS Lambda no Blog AWS Compute.

Para alterar o runtime
  1. Abra a página Funções do console do Lambda.

  2. Escolha a função a ser atualizada e escolha a guia Código.

  3. Role para baixo até a seção Configurações de runtime abaixo do editor de código.

  4. Selecione a opção Editar.

    1. Em Runtime, selecione o identificador de runtime.

    2. Em Handler (Manipulador), especifique o manipulador de sua função.

    3. Em Architecture (Arquitetura), escolha a arquitetura do conjunto de instruções a ser usado para sua função.

  5. Escolha Salvar.

Alterar a arquitetura

Antes de alterar a arquitetura do conjunto de instruções, é necessário garantir que o código da função seja compatível com a arquitetura de destino.

Se você usa Node.js, Python ou Ruby e edita o código da sua função no editor integrado, o código existente poderá ser executado sem modificação.

No entanto, se você fornecer seu código de função usando um pacote de implantação de arquivo.zip, deverá preparar um novo arquivo .zip compilado e criado corretamente para o runtime de destino e a arquitetura do conjunto de instruções. Para obter instruções, consulte a página do manipulador do runtime da sua função.

Para alterar a arquitetura do conjunto de instruções
  1. Abra a página Funções do console do Lambda.

  2. Escolha a função a ser atualizada e escolha a guia Código.

  3. Em Configurações de execução, escolha Editas.

  4. Em Architecture (Arquitetura), escolha a arquitetura do conjunto de instruções a ser usado para sua função.

  5. Escolha Salvar.

Usar a API do Lambda

Para criar e configurar uma função que usa um arquivo .zip, use as seguintes operações de API:

AWS CloudFormation

Você pode usar AWS CloudFormation Como criar uma função do Lambda que usa um arquivo .zip. No seu modelo do AWS CloudFormation, o recurso AWS::Lambda::Function especifica a função do Lambda. Para obter descrições das propriedades no recurso AWS::Lambda::Function, consulte AWS::Lambda::Function no Manual do usuário do AWS CloudFormation.

No recurso AWS::Lambda::Function, defina as seguintes propriedades para criar uma função definida como um arquivo .zip:

  • AWS::Lambda::Function

    • PackageType: definido como Zip.

    • Código — Insira o nome do bucket do Amazon S3 e o nome do arquivo.zip na caixaS3BucketeS3Keycampos. Para Node.js ou Python, você pode fornecer código-fonte inline da sua função do Lambda.

    • Runtime: defina o valor do runtime.

    • Arquitetura: defina o valor da arquitetura como arm64 para usar o processador AWS Graviton2. Por padrão, o valor da arquitetura é x86_64.