Trabalhar com arquivos .zip para funções do Lambda em Python
O código da sua função do AWS Lambda compreende um arquivo .py contendo o código do manipulador da função e todos os pacotes e módulos adicionais dos quais o código depende. Para implantar o código dessa função no Lambda, você usa um pacote de implantação. Esse pacote pode ser um arquivo .zip ou uma imagem de contêiner. Para obter mais informações sobre o uso de imagens de contêiner com Python, consulte Implantar funções do Lambda em Python com imagens de contêiner.
Para criar um pacote de implantação como arquivo .zip, você pode usar um utilitário de arquivo .zip integrado da ferramenta da linha de comando ou qualquer outro utilitário de arquivo .zip, como o 7zipzip
da linha de comando em um ambiente Linux ou MacOS. Para usar os mesmos comandos no Windows, você pode instalar o Subsistema Windows para Linux
Observe que o Lambda usa permissões de arquivo POSIX, então pode ser necessário definir permissões para a pasta do pacote de implantação
Tópicos
- Dependências de runtime em Python
- Criar um pacote de implantação .zip sem dependências
- Criar um pacote de implantação .zip com dependências
- Caminho de pesquisa de dependências e bibliotecas incluídas no runtime
- Usar pastas __pycache__
- Criar pacotes de implantação .zip com bibliotecas nativas
- Criar e atualizar funções do Lambda em Python usando arquivos .zip
Dependências de runtime em Python
Para funções do Lambda que usam o runtime do Python, uma dependência pode ser qualquer pacote ou módulo do Python. Ao implantar a função usando um arquivo .zip, você pode adicionar essas dependências ao arquivo .zip com o código da função ou usar uma camada do Lambda. Uma camada é um arquivo .zip que pode conter código adicional e outro conteúdo. Para saber mais sobre como usar camadas do Lambda no Python, consulte Como trabalhar com camadas para funções do Lambda em Python.
Os runtimes do Lambda em Python incluem o AWS SDK for Python (Boto3) e suas dependências. O Lambda fornece o SDK no runtime para cenários de implantação em que você não consegue adicionar suas próprias dependências. Esses cenários incluem a criação de funções no console usando o editor de código integrado ou funções embutidas em modelos do AWS Serverless Application Model (AWS SAM) ou do AWS CloudFormation.
O Lambda atualiza periodicamente as bibliotecas no runtime do Python para incluir as atualizações e os patches de segurança mais recentes. Se sua função usa a versão do SDK Boto3 incluída no runtime, mas o pacote de implantação inclui dependências do SDK, isso pode causar problemas de desalinhamento de versão. Por exemplo, o pacote de implantação pode incluir a dependência urllib3 do SDK. Quando o Lambda atualiza o SDK no runtime, problemas de compatibilidade entre a nova versão do runtime e a versão do urllib3 no pacote de implantação podem fazer com que a função apresente falha.
Importante
Para manter o controle total sobre suas dependências e evitar possíveis problemas de desalinhamento de versão, recomendamos que você adicione todas as dependências da função ao pacote de implantação, mesmo que as versões delas estejam incluídas no runtime do Lambda. Isso inclui o SDK do Boto3.
Para descobrir qual versão do SDK para Python (Boto3) está incluída no runtime que você está usando, consulte Versões do SDK incluídas no runtime.
No modelo de responsabilidade compartilhada da AWS, você é responsável pelo gerenciamento de todas as dependências dos pacotes de implantação das suas funções. Isso inclui a aplicação de atualizações e patches de segurança. Para atualizar as dependências no pacote de implantação da função, primeiro crie um novo arquivo .zip e depois carregue esse arquivo no Lambda. Consulte Criar um pacote de implantação .zip com dependências e Criar e atualizar funções do Lambda em Python usando arquivos .zip para obter mais informações.
Criar um pacote de implantação .zip sem dependências
Se o código da função não tiver dependências, o arquivo .zip conterá somente o arquivo .py com o código do manipulador da função. Use seu utilitário zip preferencial para criar um arquivo .zip com o arquivo .py na raiz. Se o arquivo .py não estiver na raiz do arquivo .zip, o Lambda não poderá executar o código.
Para saber como implantar o arquivo .zip para criar uma função do Lambda ou atualizar uma já existente, consulte Criar e atualizar funções do Lambda em Python usando arquivos .zip.
Criar um pacote de implantação .zip com dependências
Se o código da função depender de pacotes ou módulos adicionais, você poderá acrescentar essas dependências ao arquivo .zip com o código da função ou usar uma camada do Lambda. As instruções desta seção mostram como incluir as dependências no pacote de implantação .zip. Para que o Lambda execute seu código, o arquivo .py contendo o código do manipulador e todas as dependências da sua função devem ser instalados na raiz do arquivo .zip.
Suponha que o código da função esteja salvo em um arquivo denominado lambda_function.py
. Os exemplos de comandos da CLI a seguir criam um arquivo .zip denominado my_deployment_package.zip
que contém o código da função e suas dependências. Você pode instalar suas dependências diretamente em uma pasta do diretório do projeto ou usar um ambiente virtual em Python.
Para criar o pacote de implantação (diretório do projeto)
-
Navegue até o diretório do projeto que contém o arquivo
lambda_function.py
de código-fonte. Neste exemplo, o diretório se chamamy_function
.cd my_function
-
Crie um diretório com o nome de package, no qual você instalará as dependências.
mkdir package
Observe que, para um pacote de implantação .zip, o Lambda espera que o código-fonte e suas dependências estejam todos na raiz do arquivo .zip. No entanto, instalar dependências diretamente no diretório do projeto pode introduzir um grande número de novos arquivos e pastas e dificultar a navegação pelo IDE. Crie um diretório
package
separado aqui para manter suas dependências separadas do código-fonte. -
Instale as dependências no diretório
package
. O exemplo abaixo instala o SDK do Boto3 do Python Package Index usando pip. Se o código da função usar pacotes Python que você mesmo criou, salve-os no diretóriopackage
.pip install --target ./package boto3
-
Crie um arquivo .zip com as bibliotecas instaladas na raiz.
cd package zip -r ../my_deployment_package.zip .
Isso gerará um arquivo
my_deployment_package.zip
no diretório do projeto. -
Adicione o arquivo lambda_function.py à raiz do arquivo .zip
cd .. zip my_deployment_package.zip lambda_function.py
O arquivo .zip deve ter uma estrutura de diretórios simples, com o código do manipulador da função e todas as pastas de dependência instaladas na raiz, como a seguir.
my_deployment_package.zip |- bin | |-jp.py |- boto3 | |-compat.py | |-data | |-docs ... |- lambda_function.py
Se o arquivo .py que contém o código do manipulador da função não estiver na raiz do arquivo .zip, o Lambda não poderá executar o código.
Para criar o pacote de implantação (ambiente virtual)
-
Crie e ative um ambiente virtual no diretório do projeto. Neste exemplo, o diretório do projeto é denominado
my_function
.~$
cd my_function
~/my_function$python3.13 -m venv my_virtual_env
~/my_function$source ./my_virtual_env/bin/activate
-
Instale as bibliotecas necessárias usando pip. O exemplo a seguir instala o SDK do Boto3
(my_virtual_env) ~/my_function$
pip install boto3
-
Use
pip show
para encontrar o local no ambiente virtual em que o pip instalou as dependências.(my_virtual_env) ~/my_function$
pip show <package_name>
A pasta na qual o pip instala as bibliotecas pode ser denominada
site-packages
oudist-packages
. Essa pasta pode estar localizada no diretóriolib/python3.x
oulib64/python3.x
(em que python3.x representa a versão do Python que você está usando). -
Desativar o ambiente virtual
(my_virtual_env) ~/my_function$
deactivate
-
Navegue até o diretório que contém as dependências que você instalou com o pip e crie um arquivo zip no diretório do projeto com as dependências instaladas na raiz. Neste exemplo, o pip instalou as dependências no diretório
my_virtual_env/lib/python3.13/site-packages
.~/my_function$
cd my_virtual_env/lib/python3.13/site-packages
~/my_function/my_virtual_env/lib/python3.13/site-packages$zip -r ../../../../my_deployment_package.zip .
-
Navegue até a raiz do diretório do projeto em que o arquivo .py que contém o código do manipulador está localizado e adicione esse arquivo à raiz do pacote .zip. Neste exemplo, o arquivo do código da função é denominado
lambda_function.py
.~/my_function/my_virtual_env/lib/python3.13/site-packages$
cd ../../../../
~/my_function$zip my_deployment_package.zip lambda_function.py
Caminho de pesquisa de dependências e bibliotecas incluídas no runtime
Quando você usa uma instrução import
no código, o runtime do Python pesquisa os diretórios no caminho de pesquisa até encontrar o módulo ou pacote. Por padrão, o primeiro local que o runtime pesquisa é o diretório no qual o pacote de implantação .zip é descompactado e montado (/var/task
). Se você incluir uma versão de uma biblioteca incluída no runtime do pacote de implantação, a sua versão terá precedência sobre a versão incluída no runtime. As dependências do pacote de implantação também têm precedência sobre as dependências das camadas.
Quando você adiciona uma dependência a uma camada, o Lambda a extrai para /opt/python/lib/python3.x/site-packages
, em que python3.x
representa a versão do runtime que você está usando, ou para /opt/python
. No caminho de pesquisa, esses diretórios têm precedência sobre os diretórios que contêm as bibliotecas incluídas no runtime e as bibliotecas instaladas no pip (/var/runtime
e /var/lang/lib/python3.x/site-packages
). As bibliotecas em camadas da função, portanto, têm precedência sobre as versões incluídas no runtime.
nota
No runtime gerenciado e na imagem base do Python 3.11, o AWS SDK e suas dependências estão instalados no diretório /var/lang/lib/python3.11/site-packages
.
Você pode ver o caminho de pesquisa completo para a função do Lambda adicionando o trecho de código a seguir.
import sys search_path = sys.path print(search_path)
nota
Como as dependências do pacote de implantação ou das camadas têm precedência sobre as bibliotecas incluídas no runtime, isso pode causar problemas de desalinhamento de versão se você incluir uma dependência do SDK, como urllib3, no pacote sem também incluir o SDK. Se você implantar sua própria versão de uma dependência do Boto3, também deverá implantar o Boto3 como uma dependência no pacote de implantação. Recomendamos que você empacote todas as dependências da função, mesmo que as versões delas estejam incluídas no runtime.
Você também pode adicionar dependências em uma pasta separada dentro do pacote .zip. Por exemplo, você pode adicionar uma versão do SDK do Boto3 a uma pasta do pacote .zip denominada common
. Quando o pacote .zip é descompactado e montado, essa pasta é colocada dentro do diretório /var/task
. Para usar uma dependência proveniente de uma pasta do pacote de implantação .zip no código, use uma instrução import from
. Por exemplo, para usar uma versão do Boto3 proveniente de uma pasta denominada common
no pacote.zip, use a instrução a seguir.
from common import boto3
Usar pastas __pycache__
É recomendável não incluir pastas __pycache__
no pacote de implantação da função. O bytecode do Python compilado em uma máquina de compilação com arquitetura ou sistema operacional diferente pode não ser compatível com o ambiente de execução do Lambda.
Criar pacotes de implantação .zip com bibliotecas nativas
Se a função usar somente pacotes e módulos Python puros, você poderá usar o comando pip install
para instalar as dependências em qualquer máquina de compilação local e criar o arquivo .zip. Muitas bibliotecas populares de Python, incluindo NumPy e Pandas, não são Python puro e contêm código escrito em C ou C++. Ao adicionar bibliotecas que contêm código C/C++ ao pacote de implantação, você deve criar seu pacote corretamente para garantir que ele seja compatível com o ambiente de execução do Lambda.
A maioria dos pacotes disponíveis no Python Package Index (PyPI
Alguns pacotes podem estar disponíveis apenas como distribuições de origem. Para esses pacotes, você mesmo precisa compilar e construir os componentes C/C++.
Para ver quais distribuições estão disponíveis para o pacote necessário, faça o seguinte:
-
Pesquise o nome do pacote na página principal do Python Package Index
. -
Escolha a versão do pacote que você deseja usar.
-
Escolha Baixar arquivos.
Trabalhar com distribuições construídas (wheels)
Para baixar um wheels compatível com o Lambda, use a opção --platform
do pip.
Se a função do Lambda usar a arquitetura do conjunto de instruções x86_64, execute o comando pip install
a seguir para instalar um wheel compatível no diretório package
. Substitua --python 3.x
pela versão do runtime do Python que você está usando.
pip install \ --platform manylinux2014_x86_64 \ --target=package \ --implementation cp \ --python-version
3.x
\ --only-binary=:all: --upgrade \ <package_name>
Se sua função usar a arquitetura do conjunto de instruções arm64, execute o comando a seguir. Substitua --python 3.x
pela versão do runtime do Python que você está usando.
pip install \ --platform manylinux2014_aarch64 \ --target=package \ --implementation cp \ --python-version
3.x
\ --only-binary=:all: --upgrade \ <package_name>
Trabalhar com distribuições de origem
Se seu pacote só estiver disponível como distribuição de origem, você mesmo precisará criar as bibliotecas C/C++. Para tornar seu pacote compatível com o ambiente de execução do Lambda, é necessário criá-lo em um ambiente que use o mesmo sistema operacional Amazon Linux 2. Você pode fazer isso criando o pacote em uma instância Linux do Amazon EC2.
Para saber como iniciar e se conectar a uma instância do Linux do Amazon EC2, consulte Tutorial: comece a usar instâncias do Linux do Amazon EC2 no Guia do usuário do Amazon EC2 para instâncias do Linux.
Criar e atualizar funções do Lambda em Python usando arquivos .zip
Depois de criar o pacote de implantação .zip, você poderá usá-lo para criar uma função do Lambda ou atualizar uma existente. É possível implantar o pacote .zip usando o console do Lambda, a AWS Command Line Interface e a API do Lambda. Você também pode criar e atualizar funções do Lambda usando o AWS Serverless Application Model (AWS SAM) e o AWS CloudFormation.
O tamanho máximo de um pacote de implantação .zip para o Lambda é 250 MB (descompactado). Esse limite se aplica ao tamanho combinado de todos os arquivos que você carrega, inclusive qualquer camada do Lambda.
O runtime do Lambda precisa de permissão para ler os arquivos no pacote de implantação. Na notação octal de permissões do Linux, o Lambda precisa de 644 permissões para arquivos não executáveis (rw-r--r--) e 755 permissões (rwxr-xr-x) para diretórios e arquivos executáveis.
No Linux e no MacOS, use o comando chmod
para alterar as permissões de arquivo em arquivos e diretórios do seu pacote de implantação. Por exemplo, para dar a um arquivo executável as permissões corretas, execute o comando a seguir.
chmod 755 <filepath>
Para alterar as permissões de arquivo no Windows, consulte Set, View, Change, or Remove Permissions on an Object
Criar e atualizar funções com arquivos .zip usando o console
Para criar uma nova função, você deve primeiro criar a função no console e depois carregar o arquivo .zip. Para atualizar uma função existente, abra a página da função e siga o mesmo procedimento para adicionar o arquivo .zip atualizado.
Se o arquivo .zip for menor que 50 MB, você poderá criar ou atualizar uma função carregando o arquivo diretamente da máquina local. Para arquivos .zip maiores que 50 MB, você deve primeiro carregar o pacote para um bucket do Amazon S3. Para obter instruções sobre como carregar um arquivo para um bucket do Amazon S3 usando o AWS Management Console, consulte Conceitos básicos do Amazon S3. Para carregar arquivos usando a AWS CLI, consulte Mover objetos no Guia do usuário da AWS CLI.
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.
Para criar uma função (console)
-
Abra a página Funções
do console do Lambda e escolha Criar função. -
Escolha Author from scratch (Criar do zero).
-
Em Basic information (Informações básicas), faça o seguinte:
-
Em Nome da função, insira o nome da função.
-
Em Runtime, selecione o runtime que você deseja usar.
-
(Opcional) Em Arquitetura, escolha a arquitetura do conjunto de instruções para a função. O valor da arquitetura padrão é X86_64. Certifique-se de que o pacote de implantação .zip da função seja compatível com a arquitetura do conjunto de instruções que você escolheu.
-
-
(Opcional) Em Permissões, expanda Alterar função de execução padrão. Crie uma função de execução ou use uma existente.
-
Escolha a opção Criar função. O Lambda cria uma função básica “Hello world” usando o runtime escolhido.
Você pode carregar o arquivo .zip da máquina local (console)
-
Na página Funções
do console Lambda, escolha a função para a qual você deseja carregar o arquivo .zip. -
Selecione a guia Código.
-
No painel do Código-fonte, escolha Carregar de.
-
Escolha o arquivo .zip.
-
Para carregar o arquivo .zip, faça o seguinte:
-
Selecione Carregar e, em seguida, selecione o arquivo .zip no seletor de arquivos.
-
Escolha Open (Abrir).
-
Escolha Salvar.
-
Para carregar um arquivo .zip de um bucket do Amazon S3 (console)
-
Na página Funções
do console do Lambda, escolha a função para a qual você deseja carregar um novo arquivo .zip. -
Selecione a guia Código.
-
No painel do Código-fonte, escolha Carregar de.
-
Escolha Local do Amazon S3.
-
Cole o URL do link do Amazon S3 do arquivo .zip e escolha Salvar.
Atualizar funções do arquivo .zip usando o editor de código do console
Para algumas funções com pacotes de implantação .zip, você pode usar o editor de código integrado do console do Lambda para atualizar o código da função diretamente. Para usar esse recurso, a função deve atender aos seguintes critérios:
-
A função deve usar um dos runtimes da linguagem interpretada (Python, Node.js ou Ruby)
-
O pacote de implantação da função precisa ter menos de 50 MB (sem compactação).
O código das funções com pacotes de implantação de imagens de contêiner não pode ser editado diretamente no console.
Para atualizar o código da função usando o editor de código do console
-
Abra a página Funções
do console do Lambda e selecione a função. -
Selecione a guia Código.
-
No painel Código-fonte, selecione o arquivo de código-fonte e edite-o no editor de código integrado.
-
Na seção DEPLOY, escolha Implantar para atualizar o código da função:
Criar e atualizar funções com arquivos .zip usando a AWS CLI
Você pode usar a AWS CLI para criar uma função ou atualizar uma existente usando um arquivo .zip. Use os comandos create-function e update-function-code para implantar o pacote .zip. Se o arquivo .zip for menor que 50 MB, você poderá carregar o pacote .zip de um local do arquivo na máquina de compilação local. Para arquivos .zip maiores, você deve carregar o pacote .zip de um bucket do Amazon S3. Para obter instruções sobre como carregar um arquivo para um bucket do Amazon S3 usando a AWS CLI, consulte Mover objetos no Guia do usuário da AWS CLI.
nota
Se você carregar o arquivo .zip de um bucket do Amazon S3 usando a AWS CLI, o bucket deverá estar na mesma Região da AWS que sua função.
Para criar uma função usando um arquivo .zip com a AWS CLI, você deve especificar o seguinte:
-
O nome da função (
--function-name
) -
O runtime da função (
--runtime
) -
O nome do recurso da Amazon (ARN) da função de execução da função (
--role
) -
O nome do método do manipulador no código da função (
--handler
)
Você também deve especificar a local do arquivo .zip. Se o arquivo .zip estiver localizado em uma pasta da máquina de compilação local, use a opção --zip-file
para especificar o caminho do arquivo, conforme mostrado no comando do exemplo a seguir.
aws lambda create-function --function-name myFunction \ --runtime python3.13 --handler lambda_function.lambda_handler \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --zip-file fileb://myFunction.zip
Para especificar o local do arquivo .zip em um bucket do Amazon S3, use a opção --code
conforme mostrado no comando do exemplo a seguir. Você só precisa usar o parâmetro S3ObjectVersion
para objetos com versionamento.
aws lambda create-function --function-name myFunction \ --runtime python3.13 --handler lambda_function.lambda_handler \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --code S3Bucket=amzn-s3-demo-bucket,S3Key=myFileName.zip,S3ObjectVersion=myObjectVersion
Para atualizar uma função existente usando a CLI, especifique o nome da função usando o parâmetro --function-name
. Você também deve especificar o local do arquivo .zip que deseja usar para atualizar o código da função. Se o arquivo .zip estiver localizado em uma pasta da máquina de compilação local, use a opção --zip-file
para especificar o caminho do arquivo, conforme mostrado no comando do exemplo a seguir.
aws lambda update-function-code --function-name myFunction \ --zip-file fileb://myFunction.zip
Para especificar o local do arquivo .zip em um bucket do Amazon S3, use as opções --s3-bucket
e --s3-key
conforme mostrado no comando do exemplo a seguir. Você só precisa usar o parâmetro --s3-object-version
para objetos com versionamento.
aws lambda update-function-code --function-name myFunction \ --s3-bucket amzn-s3-demo-bucket --s3-key myFileName.zip --s3-object-version myObject Version
Criar e atualizar funções com arquivos .zip usando a API do Lamba
Para criar e atualizar funções usando um arquivo .zip, use as seguintes operações de API:
Criar e atualizar funções com arquivos .zip usando o AWS SAM
O AWS Serverless Application Model (AWS SAM) é um kit de ferramentas que ajuda a simplificar o processo de criação e execução de aplicações com tecnologia sem servidor na AWS. Você define os recursos para a aplicação em um modelo YAML ou JSON e usa a interface da linha de comando do AWS SAM (CLI do AWS SAM) para criar, empacotar e implantar aplicações. Quando você cria uma função do Lambda com base em um modelo do AWS SAM, o AWS SAM cria automaticamente um pacote de implantação .zip ou uma imagem de contêiner com o código da função e quaisquer dependências que você especificar. Para saber mais sobre como usar o AWS SAM para criar e implantar funções do Lambda, consulte Conceitos básicos do AWS SAM no Guia do desenvolvedor do AWS Serverless Application Model.
Você também pode usar o AWS SAM para criar uma função do Lambda usando um arquivo .zip existente. Para criar uma função do Lambda usando o AWS SAM, salve o arquivo .zip em um bucket do Amazon S3 ou em uma pasta local na máquina de compilação. Para obter instruções sobre como carregar um arquivo para um bucket do Amazon S3 usando a AWS CLI, consulte Mover objetos no Guia do usuário da AWS CLI.
No modelo do AWS SAM, o recurso AWS::Serverless::Function
especifica a função do Lambda. Nesse recurso, defina as seguintes propriedades para criar uma função usando um arquivo .zip:
-
PackageType
: definir comoZip
-
CodeUri
: definir como o URI do Amazon S3 do código da função, o caminho para a pasta local ou o objeto FunctionCode -
Runtime
: definir como o runtime escolhido
Com o AWS SAM, se o arquivo .zip for maior que 50 MB, você não precisará carregá-lo primeiro em um bucket do Amazon S3. O AWS SAM poderá carregar pacotes .zip com o tamanho máximo permitido de 250 MB (descompactados) de um local da máquina de compilação local.
Para saber mais sobre a implantação de funções usando o arquivo .zip no AWS SAM, consulte AWS::Serverless::Function no Guia do desenvolvedor do AWS SAM.
Criar e atualizar funções com arquivos .zip usando o AWS CloudFormation
Você pode usar o AWS CloudFormation para criar uma função do Lambda usando um arquivo .zip. Para criar uma função do Lambda de um arquivo.zip, primeiro carregue o arquivo em um bucket do Amazon S3. Para obter instruções sobre como carregar um arquivo para um bucket do Amazon S3 usando a AWS CLI, consulte Mover objetos no Guia do usuário da AWS CLI.
Para os runtimes do Node.js e do Python, você também pode fornecer código-fonte embutido no modelo AWS CloudFormation. Em seguida, o AWS CloudFormation cria um arquivo .zip que contém o código quando você cria a função.
Usar um arquivo .zip existente
No modelo do AWS CloudFormation, o recurso AWS::Lambda::Function
especifica a função do Lambda. Nesse recurso, defina as seguintes propriedades para criar uma função usando um arquivo .zip:
-
PackageType
: definir comoZip
-
Code
: inserir o nome do bucket do Amazon S3 e o nome do arquivo .zip nos camposS3Bucket
eS3Key
-
Runtime
: definir como o runtime escolhido
Criar um arquivo .zip com base no código embutido
Você pode declarar funções simples escritas em Python ou Node.js embutidas em um modelo do AWS CloudFormation. Como o código está incorporado em YAML ou JSON, você não pode adicionar nenhuma dependência externa ao pacote de implantação. Isso significa que a função precisa usar a versão do AWS SDK que está incluída no runtime. Os requisitos do modelo, como a necessidade de evitar certos caracteres, também dificultam o uso dos recursos de verificação de sintaxe e preenchimento de código do IDE. Isso significa que seu modelo pode exigir testes adicionais. Em função dessas limitações, declarar funções embutidas é mais adequado para códigos muito simples que não mudam com frequência.
Para criar um arquivo .zip com base no código embutido para runtimes do Node.js e do Python, defina as seguintes propriedades no recurso AWS::Lambda::Function
do modelo:
-
PackageType
: definir comoZip
-
Code
: digitar o código da função no campoZipFile
-
Runtime
: definir como o runtime escolhido
O arquivo .zip que o AWS CloudFormation gera não pode exceder 4 MB. Para saber mais sobre a implantação de funções usando o arquivo .zip no AWS CloudFormation, consulte AWS::Lambda::Function no Guia do desenvolvedor do AWS CloudFormation.