Erstellen von Lambda-Funktionen mit Python - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen von Lambda-Funktionen mit Python

Sie können Python-Code in AWS Lambda ausführen. Lambda bietet Laufzeiten für Python, die Ihren Code ausführen, um Ereignisse zu verarbeiten. Ihr Code wird in einer Umgebung ausgeführt, die das SDK for Python (Boto3) enthält, mit Anmeldeinformationen von einer AWS Identity and Access Management (IAM-) Rolle, die Sie verwalten. Weitere Informationen zu den SDK-Versionen, die in den Python-Laufzeiten enthalten sind, finden Sie unterSDK-Versionen, die Runtime enthalten.

Lambda unterstützt die folgenden Python-Laufzeiten.

Python
Name ID Betriebssystem Datum der Veraltung Blockfunktion erstellen Blockfunktion aktualisieren

Python 3.12

python3.12

Amazon Linux 2023

Python 3.11

python3.11

Amazon Linux 2

Python 3.10

python3.10

Amazon Linux 2

Python 3.9

python3.9

Amazon Linux 2

Python 3.8

python3.8

Amazon Linux 2

14. Oktober 2024

28. Februar 2025

31. März 2025

Anmerkung

Die Laufzeitinformationen in dieser Tabelle werden kontinuierlich aktualisiert. Weitere Informationen zur Verwendung von AWS SDKs in Lambda finden Sie unter Verwalten von AWS SDKs in Lambda-Funktionen in Serverless Land.

So erstellen Sie eine Python-Funktion
  1. Öffnen Sie die Lambda-Konsole.

  2. Wählen Sie Funktion erstellen.

  3. Konfigurieren Sie die folgenden Einstellungen:

    • Funktionsname: Geben Sie einen Namen für die Funktion ein.

    • Laufzeit: Wählen Sie Python 3.12 aus.

  4. Wählen Sie Funktion erstellen.

  5. Um ein Testereignis zu konfigurieren, wählen Sie Test.

  6. Geben Sie für Event name (Ereignisname) test ein.

  7. Wählen Sie Änderungen speichern aus.

  8. Wählen Sie Test, um die Funktion aufzurufen.

Die Konsole erstellt eine Lambda-Funktion mit einer einzigen Quelldatei mit dem Namen lambda_function. Mit dem integrierten Code-Editor können Sie diese Datei bearbeiten und weitere Dateien hinzufügen. Klicken Sie auf Save (Speichern), um die Änderungen zu speichern. Um Ihren Code auszuführen, wählen Sie Test.

Anmerkung

Die Lambda-Konsole dient AWS Cloud9 dazu, eine integrierte Entwicklungsumgebung im Browser bereitzustellen. Sie können es auch verwenden AWS Cloud9 , um Lambda-Funktionen in Ihrer eigenen Umgebung zu entwickeln. Weitere Informationen finden Sie AWS Toolkit im AWS Cloud9 Benutzerhandbuch unter Arbeiten mit AWS Lambda Funktionen unter Verwendung von.

Anmerkung

Um mit der Anwendungsentwicklung in Ihrer lokalen Umgebung zu beginnen, stellen Sie eine der Beispielanwendungen bereit, die im GitHub Repository dieses Handbuchs verfügbar sind.

Lambda-Beispielanwendungen in Python
  • blank-python — Eine Python-Funktion, die die Verwendung von Logging, Umgebungsvariablen, AWS X-Ray Tracing, Layern, Unit-Tests und dem SDK zeigt. AWS

Ihre Lambda-Funktion enthält eine CloudWatch Logs-Protokollgruppe. Die Funktionslaufzeit sendet Details zu jedem Aufruf an CloudWatch Logs. Es leitet alle Protokolle weiter, die Ihre Funktion während des Aufrufs ausgibt. Wenn Ihre Funktion einen Fehler zurückgibt, formatiert Lambda den Fehler und gibt ihn an den Aufrufer zurück.

SDK-Versionen, die Runtime enthalten

Die Version des AWS SDK, die in der Python-Laufzeit enthalten ist, hängt von der Laufzeitversion und Ihrer ab AWS-Region. Um die Version des SDK zu finden, die in der von Ihnen verwendeten Runtime enthalten ist, erstellen Sie eine Lambda-Funktion mit dem folgenden Code.

import boto3 import botocore def lambda_handler(event, context): print(f'boto3 version: {boto3.__version__}') print(f'botocore version: {botocore.__version__}')

Reaktionsformat

In Python 3.12 und späteren Python-Laufzeiten geben Funktionen Unicode-Zeichen als Teil ihrer JSON-Antwort zurück. Frühere Python-Laufzeiten geben Escape-Sequenzen für Unicode-Zeichen in Antworten zurück. Wenn Sie beispielsweise in Python 3.11 eine Unicode-Zeichenfolge wie "こんにちは" zurückgeben, werden die Unicode-Zeichen mit Ecape-Zeichen versehen und es wird "\u3053\u3093\u306b\u3061\u306f" zurückgegeben. Die Python-3.12-Laufzeit gibt das Original "こんにちは" zurück.

Durch die Verwendung von Unicode-Antworten wird die Größe von Lambda-Antworten reduziert, sodass größere Antworten einfacher in die maximale Nutzlastgröße von 6 MB für synchrone Funktionen passen können. Im vorherigen Beispiel hat die Escaped-Version 32 Byte – die Unicode-Zeichenfolge hat 17 Byte.

Wenn Sie auf Python 3.12 aktualisieren, müssen Sie möglicherweise Ihren Code anpassen, um das neue Antwortformat zu berücksichtigen. Wenn der Aufrufer Unicode in Escape-Zeichen erwartet, müssen Sie entweder der zurückgebenden Funktion Code hinzufügen, um den Unicode manuell mit Escape-Zeichen zu versehen, oder den Aufrufer so anpassen, dass er die Unicode-Rückgabe verarbeitet.

Ordnungsgemäßes Herunterfahren von Erweiterungen

Python 3.12 und neuere Python-Laufzeiten bieten verbesserte Funktionen zum ordnungsgemäßen Herunterfahren von Funktionen mit externen Erweiterungen. Wenn Lambda eine Ausführungsumgebung beendet, sendet es ein SIGTERM-Signal an die Laufzeitumgebung und dann ein SHUTDOWN-Ereignis an jede registrierte externe Erweiterung. Sie können das SIGTERM-Signal in Ihrer Lambda-Funktion abfangen und Ressourcen wie Datenbankverbindungen, die von der Funktion erstellt wurden, bereinigen.

Weitere Informationen zum Lebenszyklus der Ausführungsumgebung finden Sie unter Lambda-Ausführungsumgebung. Beispiele für die Verwendung von Graceful Shutdown mit Erweiterungen finden Sie im AWS GitHub Samples-Repository.