Blog

AWS Lambda mit Golang

Dennis Vriend

Aktualisiert Oktober 21, 2025
2 Minuten

Go ist eine von Google entwickelte Programmiersprache. Es handelt sich um eine statisch typisierte, kompilierte Sprache mit
dem zusätzlichen Vorteil der Speichersicherheit, Garbage Collection, strukturellen Typisierung und Kompilierung zu einer statischen Binärdatei. Im Vergleich
zu interpretierten Sprachen wie Python liegt der größte Vorteil in der geringen Größe der Binärdatei und der schnellen Ausführung. AWS Lambda unterstützt
die Programmiersprache Go als Funktionshandler. Schauen wir uns das mal an!

Ein Lambda-Handler in Go

Ein Lambda, das eine APIGatewayProxyRequest verarbeitet und mit einer APIGatewayProxyResponse antwortet, sieht wie folgt aus:

package main

import (
    "log"
    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
)

func Handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {

    // stdout and stderr are sent to AWS CloudWatch Logs
   log.Printf("Processing Lambda request %sn", request.RequestContext.RequestID)

    return events.APIGatewayProxyResponse{
        Body:       "Hello World!",
        StatusCode: 200,
    }, nil
}

func main() {
    lambda.Start(Handler)
}

Das Lambda ist vollständig typisiert, gibt ein APIGatewayProxyResponse zurück und wird zu einer statischen Linux-Binärdatei von 8 Megabyte kompiliert.

Verpacken des Lambdas

Das Lambda kann durch Eingabe von go build src/github.com/dnvriend/lambda/main.go erstellt werden. Das resultierende Lambda heißt

main und kann durch Eingabe von: zip dist/lambda.zip main gezippt werden. Das resultierende Archiv kann auf S3 hochgeladen und
für die Bereitstellung eines Lambdas verwendet werden.

Beispiel

Das Beispiel-Repository zeigt, wie ein Lambda erstellt und aufgebaut wird.
Der Lambda-Aufruf antwortet mit Hello World! und kann von Ihrem Browser aus aufgerufen werden.

Anhand des Beispiels

Ich gehe davon aus, dass Sie einen Mac haben, auf dem Go und Sceptre installiert sind. Um das Beispiel auszuführen, geben Sie make deploy ein.
Um die URL des Api-Gateways zu erhalten, geben Sie make info ein. Um das Beispiel zu entfernen, geben Sie make delete ein.

Fazit

AWS Lambda unterstützt die Programmiersprache Go. AWS bietet auch ein AWS SDK für Go.
Mit AWS Lambda und dem AWS SDK können Sie schnelle und hoch skalierbare, serverlose Funktionen erstellen, die
mit AWS-Services integrieren können. Es ist einfach, einen API Gateway Handler oder einen Kinesis Stream Processor zu erstellen.

Verfasst von

Dennis Vriend

Contact

Let’s discuss how we can support your journey.