Verwenden des Lambda-Kontextobjekts zum Abrufen von Python-Funktionsinformationen
Wenn Lambda Ihre Funktion ausführt, wird ein Context-Objekt an den Handler. übergeben. Dieses Objekt stellt Methoden und Eigenschaften mit Informationen zum Aufruf, zur Funktion und zur Ausführungsumgebung bereit. Weitere Informationen darüber, wie das Kontextobjekt an den Funktions-Handler übergeben wird, finden Sie unter Lambda-Funktionshandler in Python definieren.
Context-Methoden
-
get_remaining_time_in_millis– Gibt die Anzahl der verbleibenden Millisekunden zurück, bevor die Ausführung das Zeitlimit überschreitet.
Context-Eigenschaften
-
function_name– Der Name der Lambda-Funktion. -
function_version– Die Version der Funktion. -
invoked_function_arn– Der Amazon-Ressourcenname (ARN), der zum Aufrufen der Funktion verwendet wird. Gibt an, ob der Aufrufer eine Versionsnummer oder einen Alias angegeben hat. -
memory_limit_in_mb– Die Menge an Arbeitsspeicher, die der Funktion zugewiesen ist. -
aws_request_id– Der Bezeichner der Aufrufanforderung. -
log_group_name– Protokollgruppe für die Funktion. -
log_stream_name– Der Protokollstream für die Funktions-Instance. -
identity– Informationen zur Amazon-Cognito-Identität, die die Anforderung autorisiert hat.-
cognito_identity_id— Die authentifizierte Amazon-Cognito-Identität. -
cognito_identity_pool_id– Der Amazon-Cognito-Identitätspool, der den Aufruf autorisiert hat.
-
-
client_context– (mobile Apps) Clientkontext, der Lambda von der Clientanwendung bereitgestellt wird.-
client.installation_id -
client.app_title -
client.app_version_name -
client.app_version_code -
client.app_package_name -
custom– Eindictmit benutzerdefinierten Werten, die von der mobilen Clientanwendung festgelegt wurden. -
env– Eindictmit Umgebungsinformationen, die vom AWS SDK bereitgestellt wurden.
-
Powertools für Lambda (Python) bietet eine Schnittstellendefinition für das Lambda-Kontextobjekt. Sie können die Schnittstellendefinition für Typhinweise verwenden oder die Struktur des Lambda-Kontextobjekts genauer untersuchen. Die Schnittstellendefinition finden Sie unter lambda_context.py
Das folgende Beispiel zeigt eine Handler-Funktion zur Protokollierung von Context-Informationen.
Beispiel handler.py
import time def lambda_handler(event, context): print("Lambda function ARN:", context.invoked_function_arn) print("CloudWatch log stream name:", context.log_stream_name) print("CloudWatch log group name:", context.log_group_name) print("Lambda Request ID:", context.aws_request_id) print("Lambda function memory limits in MB:", context.memory_limit_in_mb) # We have added a 1 second delay so you can see the time remaining in get_remaining_time_in_millis. time.sleep(1) print("Lambda time remaining in MS:", context.get_remaining_time_in_millis())
Zusätzlich zu den oben aufgeführten Optionen können Sie das AWS X-Ray-SDK für Instrumentieren von Python-Code in AWS Lambda zudem verwenden, um kritische Code-Pfade zu identifizieren, deren Leistung nachzuverfolgen und die Daten für die Analyse zu erfassen.