O blog da AWS
Desenvolvimento simplificado de aplicações multi-tenant com modo de isolamento de tenant no AWS Lambda
Por Donnie Prakoso, Principal Developer Advocate na Amazon Web Services.
Aplicações multi-tenant frequentemente requerem isolamento rigoroso ao processar código ou dados específicos de tenant. Exemplos incluem plataformas de software como serviço (SaaS) para automação de fluxo de trabalho ou execução de código onde os clientes precisam garantir que os ambientes de execução usados para tenants individuais ou usuários finais permaneçam completamente separados uns dos outros. Tradicionalmente, os desenvolvedores têm abordado esses requisitos implantando funções Lambda separadas para cada tenant ou implementando lógica de isolamento personalizada dentro de funções compartilhadas, o que aumentava a complexidade arquitetônica e operacional.
Hoje, o AWS Lambda introduz um novo modo de isolamento de tenant que estende as capacidades de isolamento existentes no Lambda. O Lambda já fornece isolamento no nível da função, e este novo modo estende o isolamento para o nível de tenant individual ou usuário final dentro de uma única função. Esta capacidade integrada processa invocações de função em ambientes de execução separados para cada tenant, permitindo que você atenda requisitos rigorosos de isolamento sem esforço adicional de implementação para gerenciar recursos específicos de tenant dentro do código da função.
Veja como você pode ativar o modo de isolamento de tenant no console do AWS Lambda:

Ao usar a nova capacidade de isolamento de tenant, o Lambda associa ambientes de execução de função com identificadores de tenant especificados pelo cliente. Isso significa que ambientes de execução para um tenant específico não são usados para atender solicitações de invocação de outros tenants invocando a mesma função Lambda.
O recurso atende requisitos rigorosos de segurança para provedores de SaaS que processam dados sensíveis ou executam código de tenant não confiável. Você mantém as características de pagamento por uso e desempenho do AWS Lambda enquanto obtém isolamento de ambiente de execução. Além disso, esta abordagem oferece os benefícios de segurança de infraestrutura por tenant sem a sobrecarga operacional de gerenciar funções Lambda dedicadas para tenants individuais, que podem crescer rapidamente à medida que os clientes adotam sua aplicação.
Primeiros passos com o isolamento de tenant do AWS Lambda
Deixe-me guiá-lo sobre como configurar e usar o isolamento de tenant para uma aplicação multi-tenant.
Primeiro, na página Create function no console do AWS Lambda, escolho a opção Author from scratch.

Em seguida, em Additional configurations, seleciono Enable em Tenant isolation mode. Observe que o modo de isolamento de tenant só pode ser definido durante a criação da função e não pode ser modificado para funções Lambda existentes.

Em seguida, escrevo código Python para demonstrar esta capacidade. Posso acessar o identificador de tenant no código da minha função através do objeto contexto. Aqui está o código Python completo:
import json
import os
from datetime import datetime
def lambda_handler(event, context):
tenant_id = context.tenant_id
file_path = '/tmp/tenant_data.json'
# Read existing data or initialize
if os.path.exists(file_path):
with open(file_path, 'r') as f:
data = json.load(f)
else:
data = {
'tenant_id': tenant_id,
'request_count': 0,
'first_request': datetime.utcnow().isoformat(),
'requests': []
}
# Increment counter and add request info
data['request_count'] += 1
data['requests'].append({
'request_number': data['request_count'],
'timestamp': datetime.utcnow().isoformat()
})
# Write updated data back to file
with open(file_path, 'w') as f:
json.dump(data, f, indent=2)
# Return file contents to show isolation
return {
'statusCode': 200,
'body': json.dumps({
'message': f'File contents for {tenant_id} (isolated per tenant)',
'file_data': data
})
}
Quando termino, escolho Deploy. Agora, preciso testar esta capacidade escolhendo Test. Posso ver no painel Create new test event que há uma nova configuração chamada Tenant ID.

Como você pode ver, defino o Tenant ID para tenant-one e clico Invoke. Os resultados mostram que o Lambda gerou um UUID para o tenant especificado e o identifiquei dentro do código da minha função.

Em seguida, testo com o Tenant ID definido como tenant-two e vejo que a saída confirma que cada tenant tem seu próprio ambiente de execução isolado com dados independentes.

Invoco o Lambda novamente usando tenant-one, e posso ver na saída que o ambiente de execução mantém o estado de /tmp/tenant_data.json do tenant-one. Isso confirma que o ambiente de execução associado ao tenant-one não é compartilhado com outros tenants.

Coisas a saber
Há algumas coisas a saber sobre o modo de isolamento de tenant no Lambda:
- O suporte ao modo de isolamento de tenant está disponível nas regiões AWS Leste dos EUA (Ohio), Leste dos EUA (N. Virgínia), Oeste dos EUA (Oregon) e Europa (Irlanda).
- Os runtimes suportados são python3.12, python3.13, nodejs20.x, nodejs22.x, java21, dotnet8 e provided.al2023.
- Funções com isolamento de tenant ativado são cobradas de acordo com a tabela de preços do Lambda. Os ambientes de execução associados a um tenant específico são reutilizados para invocações subsequentes usando o mesmo tenant.
- Funções com isolamento de tenant ativado não suportam URLs de Função Lambda, Amazon MQ e streaming de resposta.
- Uma função pode ter no máximo 200 invocações simultâneas de tenants distintos. Invocações além desse limite são limitadas até que um slot fique disponível.
Comece a usar o isolamento de tenant no Lambda hoje!
O modo de isolamento de tenant do Lambda está disponível hoje. Visite a documentação para mais detalhes e exemplos.
Este conteúdo foi traduzido da publicação original do blog, que pode ser encontrado aqui.
Autor
![]() |
Donnie Prakoso é Principal Developer Advocate na Amazon Web Services. |
Tradutores
![]() |
Daniel Abib é Arquiteto de Soluções Sênior e Especialista em Amazon Bedrock na AWS, com mais de 25 anos trabalhando com gerenciamento de projetos, arquiteturas de soluções escaláveis, desenvolvimento de sistemas e CI/CD, microsserviços, arquitetura Serverless & Containers e especialização em Machine Learning. Ele trabalha apoiando Startups, ajudando-os em sua jornada para a nuvem.
https://www.linkedin.com/in/danielabib/ |
![]() |
Nicolas Tarzia é Senior Technical Account Manager na AWS, com mais de 13 anos de experiência, com ampla experiência em arquitetura cloud, engenharia e design de software. Atualmente está habilitando empresas do ramo de ISV (Independent Software Vendors) simplificando a operação na nuvem e otimizando os custos em cloud. Sua área de interesse são tecnologias serverless.
https://www.linkedin.com/in/nicolastarzia |


