Criar funções do Lambda com Python - AWS Lambda

Criar funções do Lambda com Python

Você pode executar o código Python noAWS Lambda. O Lambda fornece runtimes para o Python que executa o seu código para processar eventos. Seu código é executado em um ambiente que inclui o SDK for Python (Boto 3), com as credenciais de uma função do AWS Identity and Access Management (IAM) que você gerencia. Para saber mais sobre as versões do SDK incluídas nos runtimes do Python, consulte Versões do SDK incluídas no runtime.

O Lambda oferece suporte aos seguintes runtimes Python.

Python
Nome Identificador Sistema operacional Data da substituição Bloquear a criação de funções Bloquear a atualização de funções

Python 3.12

python3.12

Amazon Linux 2023

Python 3.11

python3.11

Amazon Linux 2

Python 3.10

python3.10

Amazon Linux 2

Python 3.9

python3.9

Amazon Linux 2

Python 3.8

python3.8

Amazon Linux 2

14 de outubro de 2024

28 de fevereiro de 2025

31 de março de 2025

nota

As informações de runtime nessa tabela estão em constante atualização. Para obter mais informações sobre o uso dos AWS SDKs no Lambda, consulte Managing AWS SDKs in Lambda functions no Serverless Land.

Para criar uma função em Python
  1. Abra o console do lambda.

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

  3. Configure as seguintes opções:

    • Nome da função: digite um nome para a função.

    • Runtime: escolha Python 3.12.

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

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

  6. Em Nome do evento, insira test.

  7. Escolha Salvar alterações.

  8. Escolha Test (Testar) para invocar a função.

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

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 do Lambda em seu próprio ambiente. Para obter mais informações, consulte Working with AWS Lambda functions using the AWS Toolkit no Guia do usuário do AWS Cloud9.

nota

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

Aplicativos Lambda de exemplo do em Python
  • blank-python: uma função Python que mostra o uso de registro em log, variáveis de ambiente, rastreamento do AWS X-Ray, camadas, testes de unidade e o AWS SDK.

Sua função do Lambda é fornecida com um grupo de logs do CloudWatch Logs. O runtime envia detalhes sobre cada invocação para o CloudWatch Logs. Ele retransmite quaisquer logs que sua função produz durante a invocação. Se a função retornar um erro, o Lambda formatará o erro e o retornará para o invocador.

Versões do SDK incluídas no runtime

A versão do AWS SDK incluída no runtime do Python depende da versão do runtime e da Região da AWS. Para encontrar a versão do SDK incluída no runtime que você está usando, crie uma função do Lambda com o código a seguir.

import boto3 import botocore def lambda_handler(event, context): print(f'boto3 version: {boto3.__version__}') print(f'botocore version: {botocore.__version__}')

Formato de resposta

Nos runtimes do Python 3.12 e posteriores, as funções retornam caracteres Unicode como parte da resposta JSON. Os runtimes anteriores do Python retornam sequências de escape para caracteres Unicode nas respostas. Por exemplo, no Python 3.11, se você retornar uma string Unicode, como “こんにちは”, ela escapará dos caracteres Unicode e retornará “\u3053\u3093\u306b\u3061\u306f”. O runtime do Python 3.12 retorna o “こんにちは” original.

O uso de respostas Unicode reduz o tamanho das respostas do Lambda, facilitando o ajuste de respostas maiores para o tamanho máximo de carga útil de 6 MB para funções síncronas. No exemplo anterior, a versão com escape é de 32 bytes, em comparação com 17 bytes com a string Unicode.

Ao atualizar para o Python 3.12, talvez seja necessário ajustar o código para levar em conta o novo formato de resposta. Se o chamador espera Unicode de escape, você deve adicionar código à função de retorno para escapar do Unicode manualmente ou ajustar o chamador para lidar com o retorno do Unicode.

Desligamento normal para extensões

Os runtimes do Python 3.12 e versões posteriores oferecem recursos aprimorados de desligamento normal para funções com extensões externas. Quando o Lambda desliga um ambiente de execução, ele envia um sinal SIGTERM para o runtime e, depois, um evento SHUTDOWN para cada extensão externa registrada. Você pode capturar o sinal SIGTERM na função do Lambda e apagar recursos, como conexões de banco de dados que foram criadas pela função.

Para saber mais sobre o ciclo de vida do ambiente de execução, consulte Ambiente de execução do Lambda. Para ver exemplos de como usar o desligamento normal com extensões, consulte o AWS Samples GitHub repository.