Acesso ao identificador de locatário no código da função do Lambda
Quando sua função do Lambda tem o isolamento de locatários habilitado, o identificador de locatário usado para invocar sua função é disponibilizado dentro do objeto de contexto passado para seu manipulador de funções. É possível usar esse identificador para implementar recursos de lógica, monitoramento e depuração específicos do locatário.
Acesso ao identificador de locatário
O identificador de locatario está disponível por meio da propriedade tenantId do objeto de contexto. Observe que essa propriedade está disponível durante a fase de invocação, não durante a fase de inicialização.
Padrões comuns de uso
Aqui estão algumas maneiras comuns de usar o identificador de locatário no código da função:
Configuração específica de locatário
Use o ID do locatário para carregar a configuração ou configurações específicas do locatário:
def lambda_handler(event, context): tenant_id = context.tenant_id # Load tenant-specific configuration config = load_tenant_config(tenant_id) database_url = config['database_url'] api_key = config['api_key'] # Process with tenant-specific settings return process_request(event, database_url, api_key)
Acesso a dados específico do locatário
Use o ID de locatário para garantir o isolamento dos dados e o controle de acesso:
import boto3 def lambda_handler(event, context): tenant_id = context.tenant_id # Ensure data access is scoped to the tenant dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('user_data') user_id = event.get('userId') response = table.get_item( Key={ 'tenant_id': tenant_id, 'user_id': user_id } ) return process_results(response.get('Item'), tenant_id)
Monitoramento e depuração
O identificador de locatário é incluído automaticamente nos registros do Lambda quando você tem o registro em log do JSON habilitado, facilitando o monitoramento e a depuração de problemas específicos do locatário. Também é possível usar o ID de locatário para métricas e rastreamento personalizados.
exemplo Métricas personalizadas com ID de locatário
O exemplo a seguir demonstra como usar o ID de locatário para criar métricas específicas do CloudWatch para monitorar os padrões de uso e a performance por locatário:
import boto3 def lambda_handler(event, context): tenant_id = context.tenant_id cloudwatch = boto3.client('cloudwatch') # Record tenant-specific metrics cloudwatch.put_metric_data( Namespace='MyApp/TenantMetrics', MetricData=[ { 'MetricName': 'RequestCount', 'Dimensions': [ { 'Name': 'TenantId', 'Value': tenant_id } ], 'Value': 1, 'Unit': 'Count' } ] ) return process_request(event, tenant_id)