本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Lambda 函數程式碼中存取租戶識別符
當您的 Lambda 函數已啟用租用戶隔離時,用於調用函數的租用戶識別符會在傳遞給函數處理常式的內容物件中可用。您可以使用此識別符來實作租戶特定的邏輯、監控和偵錯功能。
存取租戶識別符
租用戶識別符可透過內容物件的 tenantId 屬性使用。請注意,此屬性在調用階段期間可用,而不是在初始化階段。
常用模式
以下是在函數程式碼中使用租戶識別符的常見方法:
租用戶特定組態
使用租戶 ID 載入租戶特定的組態或設定:
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)
租戶特定資料存取
使用租戶 ID 來確保資料隔離和存取控制:
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)
監控與除錯
當您啟用 JSON 記錄時,租戶識別符會自動包含在 Lambda 日誌中,讓您更輕鬆地監控和偵錯租戶特定問題。您也可以使用租戶 ID 進行自訂指標和追蹤。
範例 具有租戶 ID 的自訂指標
下列範例示範如何使用租用戶 ID 建立租用戶特定的 CloudWatch 指標,以監控租用戶的使用模式和效能:
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)