

# Implantar funções do Lambda como arquivos .zip
<a name="configuration-function-zip"></a>

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](images-create.md).

É possível usar o console do Lambda e a API do Lambda para criar uma função definida com um arquivo de arquivo.zip. Também é possível carregar um arquivo.zip atualizado para alterar o código da função. 

**nota**  
Não é possível alterar o [tipo de pacote de implantação](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html#lambda-CreateFunction-request-PackageType) (.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.

**Topics**
+ [Como criar a função](#configuration-function-create)
+ [Usando o editor de código do console](#configuration-functions-console-update)
+ [Atualizar código de função](#configuration-function-update)
+ [Como alterar o runtime](#configuration-function-runtime)
+ [Alterar a arquitetura](#configuration-function-arch)
+ [Usar a API do Lambda](#configuration-function-api)
+ [Baixar o código da sua função](#configuration-function-download)
+ [CloudFormation](#configuration-function-cloudformation)
+ [Criptografia dos pacotes de implantação .zip do Lambda](encrypt-zip-package.md)

## Como criar a função
<a name="configuration-function-create"></a>

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](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Escolha a opção **Criar função**.

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

1. 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.

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

   1. (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](foundation-arch.md).

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

1. (Opcional) Expanda **Advanced settings (Configurações avançadas)**. É possível escolher uma **configuração de assinatura de código** para a função. Também é possível configurar um (Amazon VPC) para que a função acesse.

1. 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](nodejs-package.md) 

------
#### [ Python ]

 [Trabalhar com arquivos .zip para funções do Lambda em Python](python-package.md) 

------
#### [ Ruby ]

 [Implantar funções do Lambda em Ruby com arquivos .zip](ruby-package.md) 

------
#### [ Java ]

 [Implantar funções do Lambda em Java com arquivos .zip ou JAR](java-package.md) 

------
#### [ Go ]

 [Implantar funções do Lambda em Go com arquivos .zip](golang-package.md) 

------
#### [ C\# ]

 [Criar e implantar funções do Lambda em C\# com arquivos .zip](csharp-package.md) 

------
#### [ PowerShell ]

 [Implantar funções do Lambda para PowerShell com arquivos .zip](powershell-package.md) 

------

## Usando o editor de código do console
<a name="configuration-functions-console-update"></a>

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](nodejs-package.md) para carregar o código na função do Lambda.

## Atualizar código de função
<a name="configuration-function-update"></a>

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](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

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

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

1. 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).

1. (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, escolha **Salvar**.

## Como alterar o runtime
<a name="configuration-function-runtime"></a>

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](https://aws.amazon.com/blogs/compute/introducing-the-amazon-linux-2023-runtime-for-aws-lambda/) no Blog AWS Compute.

**Para alterar o runtime**

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

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

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

1. Escolha **Editar**.

   1. Em **Runtime**, selecione o identificador de runtime.

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

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

1. Escolha **Salvar**.

## Alterar a arquitetura
<a name="configuration-function-arch"></a>

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](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

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

1. Em **Configurações de runtime**, escolha **Editar**.

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

1. Escolha **Salvar**.

## Usar a API do Lambda
<a name="configuration-function-api"></a>

Para criar e configurar uma função que usa um arquivo .zip, use as seguintes operações de API: 
+ [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)
+ [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)

## Baixar o código da sua função
<a name="configuration-function-download"></a>

É possível baixar a versão atual não publicada (`$LATEST`) do código da sua função em .zip por meio do console do Lambda. Para fazer isso, primeiro verifique se você tem as seguintes permissões do IAM:
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetRole`
+ `iam:GetRolePolicy`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListRolePolicies`
+ `iam:ListRoles`

**Para baixar o código da função em .zip**

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Escolha a função para a qual você deseja baixar o código da função em .zip.

1. Na **Visão geral da função**, escolha o botão **Download** e escolha **Baixar código da função em .zip**.

   1. Como alternativa, selecione **Baixar arquivo AWS SAM** para gerar e baixar um modelo SAM com base na configuração da sua função. Também é possível escolher **Baixar ambos** para baixar tanto o arquivo .zip quanto o modelo SAM.

## CloudFormation
<a name="configuration-function-cloudformation"></a>

É possível usar CloudFormation Como criar uma função do Lambda que usa um arquivo .zip. No seu modelo do 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html) 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 caixa`S3Bucket`e`S3Key`campos. 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`.