Acceso al identificador de inquilino en el código de la función de Lambda
Cuando la función de Lambda tiene habilitado el aislamiento de inquilinos, el identificador de inquilino utilizado para invocar la función está disponible en el objeto de contexto que se pasa al controlador de funciones. Puede utilizar este identificador para implementar capacidades de lógica, supervisión y depuración específicas del inquilino.
Acceso al identificador de inquilino
El identificador de inquilino está disponible a través de la propiedad de tenantId del objeto de contexto. Tenga en cuenta que esta propiedad está disponible durante la fase de invocación, no durante la fase de inicialización.
Patrones de uso comunes
Estas son las formas más comunes de utilizar el identificador de inquilino en el código de función:
Configuración específica del inquilino
Utilice el identificador de inquilino para cargar la configuración o los ajustes específicos del inquilino:
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)
Acceso a datos específicos del inquilino
Utilice el identificador de inquilino para garantizar el aislamiento de los datos y el control del acceso a estos:
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)
Monitoreo y depuración
El identificador de inquilino se incluye automáticamente en los registros de Lambda cuando se habilita el registro de JSON, lo que facilita la supervisión y la depuración de problemas específicos del inquilino. También puede usar el identificador de inquilino para el seguimiento y las métricas personalizadas.
ejemplo Métricas personalizadas con el identificador de inquilino
En el siguiente ejemplo se muestra cómo utilizar el identificador de inquilino para crear métricas de CloudWatch específicas del inquilino con el fin de supervisar los patrones de uso y el rendimiento por inquilino:
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)