Erstellen von Lambda-Funktionen mit Go
Go wird anders implementiert als andere verwaltete Laufzeiten. Da Go nativ zu einer ausführbaren Binärdatei kompiliert wird, ist keine spezielle Sprachlaufzeit erforderlich. Verwenden Sie eine reine Betriebssystemlaufzeit (die provided-Laufzeit-Familie), um Go-Funktionen für Lambda bereitzustellen.
Themen
Unterstützte Go-Laufzeiten
Die verwaltete Laufzeit Go 1.x für Lambda ist veraltet. Wenn Sie Funktionen haben, die die Go 1.x-Laufzeit verwenden, müssen Sie Ihre Funktionen nach provided.al2023 oder provided.al2 migrieren. Die Laufzeiten provided.al2023 und provided.al2 bieten gegenüber go1.x mehrere Vorteile. Hierzu zählen unter anderem die Unterstützung der arm64-Architektur (AWS-Graviton2-Prozessoren) sowie kleinere Binärdateien und etwas schnellere Aufrufzeiten.
Für diese Migration sind keine Codeänderungen erforderlich. Die einzigen erforderlichen Änderungen betreffen die Erstellung Ihres Bereitstellungspakets sowie die Laufzeit, die Sie zur Erstellung Ihrer Funktion verwenden. Weitere Informationen finden Sie im AWS Compute Blog unter Migrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2
| Name | ID | Betriebssystem | Datum der Veraltung | Blockfunktion erstellen | Blockfunktion aktualisieren |
|---|---|---|---|---|---|
|
Reine OS-Laufzeit |
|
Amazon Linux 2023 |
30. Juni 2029 |
31. Juli 2029 |
31. August 2029 |
|
Reine OS-Laufzeit |
|
Amazon Linux 2 |
30. Juni 2026 |
31. Juli 2026 |
31. August 2026 |
Tools und Bibliotheken
Lambda stellt die folgenden Tools und Bibliotheken für die Go-Laufzeit bereit:
-
AWS SDK für Go v2
: Das offizielle AWS SDK für die Programmiersprache Go. -
github.com/aws/aws-lambda-go/lambda
: Die Implementierung des Lambda-Programmiermodells für Go. Dieses Paket wird von AWS Lambda zum Aufrufen Ihres Handlers verwendet. -
github.com/aws/aws-lambda-go/lambdacontext
: Hilfsprogramme für den Zugriff auf Informationen zum Kontext aus dem Kontext-Objekt. -
github.com/aws/aws-lambda-go/events
: Diese Bibliothek bietet Typdefinitionen für gängige Integrationen von Ereignisquellen. -
github.com/aws/aws-lambda-go/cmd/build-lambda-zip
: Mit diesem Tool kann unter Windows ein ZIP-Dateiarchiv erstellt werden.
Weitere Informationen finden Sie unter aws-lambda-go
Lambda stellt die folgenden Beispielanwendungen für die Go-Laufzeit bereit:
Lambda-Beispielanwendungen in Go
-
go-al2
: Eine Hello World-Funktion, die die öffentliche IP-Adresse zurückgibt. Diese App verwendet die benutzerdefinierte Laufzeit provided.al2. -
blank-go
Eine Go-Funktion, welche die Verwendung der Lambda-Go-Bibliotheken, Protokollierung, Umgebungsvariablen und des AWS SDK aufzeigt. Diese App verwendet die Laufzeit go1.x.