Bereitstellen von Lambda-Go-Funktionen mit ZIP-Dateiarchiven - 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.

Bereitstellen von Lambda-Go-Funktionen mit ZIP-Dateiarchiven

Der Code Ihrer AWS Lambda-Funktion besteht aus Skripts oder kompilierten Programmen und deren Abhängigkeiten. Sie verwenden ein Bereitstellungspaket, um Ihren Funktionscode in Lambda bereitzustellen. Lambda unterstützt zwei Arten von Bereitstellungspaketen: Container-Images und ZIP-Dateiarchiven.

Auf dieser Seite wird beschrieben, wie Sie eine ZIP-Datei als Bereitstellungspaket für die Go-Laufzeitumgebung erstellen und die ZIP-Datei dann verwenden, um Ihren Funktionscode auf AWS Lambda bereitzustellen, indem Sie AWS Management Console, AWS Command Line Interface (AWS CLI) und AWS Serverless Application Model (AWS SAM) verwenden.

Da Lambda POSIX-Dateiberechtigungen verwendet, müssen Sie möglicherweise Berechtigungen für den Bereitstellungspaketordner festlegen, bevor Sie das ZIP-Dateiarchiv erstellen.

Erstellen einer ZIP-Datei unter macOS und Linux

Im Folgenden wird beschrieben, wie Sie Ihre ausführbare Datei mithilfe des Befehls go build kompilieren und ein Bereitstellungspaket in Form einer ZIP-Datei für Lambda erstellen. Stellen Sie vor dem Kompilieren Ihres Codes sicher, dass Sie das Lambda-Paket von installiert haben GitHub. Dieses Modul stellt eine Implementierung der Laufzeitschnittstelle bereit, die die Interaktion zwischen Lambda und Ihrem Funktionscode verwaltet. Führen Sie den folgenden Befehl aus, um diese Bibliothek herunterzuladen.

go get github.com/aws/aws-lambda-go/lambda

Wenn Ihre Funktion das AWS SDK for Go verwendet, laden Sie den Standardsatz von SDK-Modulen zusammen mit allen für Ihre Anwendung erforderlichen AWS-Service-API-Clients herunter. Informationen zur Installation des SDK für Go finden Sie unter Erste Schritte mit AWS SDK for Go V2.

Verwenden der bereitgestellten Laufzeitfamilie

Go wird anders implementiert als andere verwaltete Laufzeiten. Da Go nativ in eine ausführbare Binärdatei kompiliert wird, ist keine dedizierte Sprachlaufzeit erforderlich. Verwenden Sie eine reine OS-Laufzeit (die provided Laufzeitfamilie), um Go-Funktionen in Lambda bereitzustellen.

So erstellen Sie ein ZIP-Bereitstellungspaket (macOS/Linux)
  1. Kompilieren Sie Ihre ausführbare Datei in dem Projektverzeichnis, das die Datei main.go Ihrer Anwendung enthält. Beachten Sie Folgendes:

    • Die ausführbare Datei muss bootstrap heißen. Weitere Informationen finden Sie unter Benennung.

    • Legen Sie die Befehlssatzarchitektur des Ziels fest. Nur-Betriebssystem-Laufzeiten unterstützen sowohl arm64 als auch x86_64.

    • Sie können das optionale Tag lambda.norpc verwenden, um die RPC-Komponente (Remote Procedure Call, Remoteprozeduraufruf) der Bibliothek lambda auszuschließen. Die RPC-Komponente ist nur erforderlich, wenn Sie die veraltete Go 1.x-Laufzeit verwenden. Durch Ausschließen der RPC-Komponente verringert sich die Größe des Bereitstellungspakets.

    arm64-Architektur:

    GOOS=linux GOARCH=arm64 go build -tags lambda.norpc -o bootstrap main.go

    x86_64-Architektur:

    GOOS=linux GOARCH=amd64 go build -tags lambda.norpc -o bootstrap main.go
  2. (Optional) Möglicherweise müssen Sie Pakete mit Einstellung von CGO_ENABLED=0 in Linux kompilieren:

    GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o bootstrap -tags lambda.norpc main.go

    Dieser Befehl erstellt ein stabiles Binärpaket für Standard-C-Bibliotheksversionen (libc), was auf Lambda und anderen Geräten unterschiedlich sein kann.

  3. Erstellen Sie ein Bereitstellungspaket, indem Sie die ausführbare Datei in eine ZIP-Datei packen.

    zip myFunction.zip bootstrap
    Anmerkung

    Fügen Sie die bootstrap-Datei dem Stamm der ZIP-Datei hinzu.

  4. Erstellen der -Funktion Beachten Sie Folgendes:

    • Die Binärdatei muss bootstrap benannt werden, aber der Handlername kann beliebig sein. Weitere Informationen finden Sie unter Benennung.

    • Die --architectures-Option ist nur bei Verwendung von „arm64“ erforderlich. Der Standardwert ist „x86_64“.

    • Geben Sie für --role den Amazon-Ressourcennamen (ARN) der Ausführungsrolle an.

    aws lambda create-function --function-name myFunction \ --runtime provided.al2023 --handler bootstrap \ --architectures arm64 \ --role arn:aws:iam::111122223333:role/lambda-ex \ --zip-file fileb://myFunction.zip

Erstellen einer ZIP-Datei unter Windows

Die folgenden Schritte zeigen, wie Sie das build-lambda-zip Tool für Windows von herunterladen GitHub, Ihre ausführbare Datei kompilieren und ein ZIP-Bereitstellungspaket erstellen.

Anmerkung

Falls noch nicht geschehen, müssen Sie git installieren und die ausführbare git-Datei Ihrer Windows- %PATH%-Umgebungsvariable hinzufügen.

Stellen Sie vor dem Kompilieren Ihres Codes sicher, dass Sie die Lambda-Bibliothek von installiert haben GitHub. Führen Sie den folgenden Befehl aus, um diese Bibliothek herunterzuladen.

go get github.com/aws/aws-lambda-go/lambda

Wenn Ihre Funktion das AWS SDK for Go verwendet, laden Sie den Standardsatz von SDK-Modulen zusammen mit allen für Ihre Anwendung erforderlichen AWS-Service-API-Clients herunter. Informationen zur Installation des SDK für Go finden Sie unter Erste Schritte mit AWS SDK for Go V2.

Verwenden der bereitgestellten Laufzeitfamilie

Go wird anders implementiert als andere verwaltete Laufzeiten. Da Go nativ in eine ausführbare Binärdatei kompiliert wird, ist keine dedizierte Sprachlaufzeit erforderlich. Verwenden Sie eine reine OS-Laufzeit (die provided Laufzeitfamilie), um Go-Funktionen in Lambda bereitzustellen.

So erstellen Sie ein ZIP-Bereitstellungspaket (Windows)
  1. Laden Sie das build-lambda-zip Tool von herunter GitHub.

    go install github.com/aws/aws-lambda-go/cmd/build-lambda-zip@latest
  2. Verwenden Sie das Tool aus Ihrer GOPATH, um eine ZIP-Datei zu erstellen. Bei einer Go-Standardinstallation befindet sich das Tool in der Regel unter %USERPROFILE%\Go\bin. Navigieren Sie andernfalls an den Installationsort der Go-Laufzeit und führen Sie einen der folgenden Schritte aus:

    cmd.exe

    Verwenden Sie in „cmd.exe“ je nach Befehlssatzarchitektur des Ziels eine der folgenden Optionen. Nur-Betriebssystem-Laufzeiten unterstützen sowohl arm64 als auch x86_64.

    Sie können das optionale Tag lambda.norpc verwenden, um die RPC-Komponente (Remote Procedure Call, Remoteprozeduraufruf) der Bibliothek lambda auszuschließen. Die RPC-Komponente ist nur erforderlich, wenn Sie die veraltete Go 1.x-Laufzeit verwenden. Durch Ausschließen der RPC-Komponente verringert sich die Größe des Bereitstellungspakets.

    Beispiel für die x86_64-Architektur
    set GOOS=linux set GOARCH=amd64 set CGO_ENABLED=0 go build -tags lambda.norpc -o bootstrap main.go %USERPROFILE%\Go\bin\build-lambda-zip.exe -o myFunction.zip bootstrap
    Beispiel für die arm64-Architektur
    set GOOS=linux set GOARCH=arm64 set CGO_ENABLED=0 go build -tags lambda.norpc -o bootstrap main.go %USERPROFILE%\Go\bin\build-lambda-zip.exe -o myFunction.zip bootstrap
    PowerShell

    PowerShellFühren Sie in je nach Ziel-Befehlssatzarchitektur eine der folgenden Aktionen aus. Nur-Betriebssystem-Laufzeiten unterstützen sowohl arm64 als auch x86_64.

    Sie können das optionale Tag lambda.norpc verwenden, um die RPC-Komponente (Remote Procedure Call, Remoteprozeduraufruf) der Bibliothek lambda auszuschließen. Die RPC-Komponente ist nur erforderlich, wenn Sie die veraltete Go 1.x-Laufzeit verwenden. Durch Ausschließen der RPC-Komponente verringert sich die Größe des Bereitstellungspakets.

    x86_64-Architektur:

    $env:GOOS = "linux" $env:GOARCH = "amd64" $env:CGO_ENABLED = "0" go build -tags lambda.norpc -o bootstrap main.go ~\Go\Bin\build-lambda-zip.exe -o myFunction.zip bootstrap

    arm64-Architektur:

    $env:GOOS = "linux" $env:GOARCH = "arm64" $env:CGO_ENABLED = "0" go build -tags lambda.norpc -o bootstrap main.go ~\Go\Bin\build-lambda-zip.exe -o myFunction.zip bootstrap
  3. Erstellen der -Funktion Beachten Sie Folgendes:

    • Die Binärdatei muss bootstrap benannt werden, aber der Handlername kann beliebig sein. Weitere Informationen finden Sie unter Benennung.

    • Die --architectures-Option ist nur bei Verwendung von „arm64“ erforderlich. Der Standardwert ist „x86_64“.

    • Geben Sie für --role den Amazon-Ressourcennamen (ARN) der Ausführungsrolle an.

    aws lambda create-function --function-name myFunction \ --runtime provided.al2023 --handler bootstrap \ --architectures arm64 \ --role arn:aws:iam::111122223333:role/lambda-ex \ --zip-file fileb://myFunction.zip

Go Lambda-Funktionen mithilfe von ZIP-Dateien erstellen und aktualisieren

Nach der Erstellung Ihres ZIP-Bereitstellungspakets können Sie es verwenden, um eine neue Lambda-Funktion zu erstellen oder eine vorhandene zu aktualisieren. Ihr ZIP-Bereitstellungspaket lässt sich über die Lambda-Konsole, das AWS Command Line Interface und die Lambda-API hochladen. Sie können Lambda-Funktionen auch mit AWS Serverless Application Model (AWS SAM) und AWS CloudFormation erstellen und aktualisieren.

Die maximale Größe eines ZIP-Bereitstellungspakets für Lambda beträgt 250 MB (entpackt). Beachten Sie, dass dieser Grenzwert für die kombinierte Größe aller hochgeladenen Dateien gilt, einschließlich aller Lambda-Ebenen.

Die Lambda-Laufzeit benötigt die Berechtigung zum Lesen der Dateien in Ihrem Bereitstellungspaket. In der oktalen Linux-Notation für Berechtigungen benötigt Lambda 644 Berechtigungen für nicht ausführbare Dateien (rw-r--r---) und 755 Berechtigungen (rwxr-xr-x) für Verzeichnisse und ausführbare Dateien.

Verwenden Sie unter Linux und MacOS den chmod-Befehl, um Dateiberechtigungen für Dateien und Verzeichnisse in Ihrem Bereitstellungspaket zu ändern. Führen Sie beispielsweise den folgenden Befehl aus, um einer ausführbaren Datei die richtigen Berechtigungen zu gewähren.

chmod 755 <filepath>

Informationen zum Ändern von Dateiberechtigungen in Windows finden Sie unter Festlegen, Anzeigen, Ändern oder Entfernen von Berechtigungen für ein Objekt in der Microsoft-Windows-Dokumentation.

Erstellen und Aktualisieren von Funktionen mit ZIP-Dateien unter Verwendung der Konsole

Eine neue Funktion müssen Sie zuerst in der Konsole erstellen und dann Ihr ZIP-Archiv hochladen. Zum Aktualisieren einer bestehenden Funktion öffnen Sie die Seite für Ihre Funktion und gehen dann genauso vor, um Ihre aktualisierte ZIP-Datei hinzuzufügen.

Bei einer ZIP-Datei mit unter 50 MB können Sie eine Funktion erstellen oder aktualisieren, indem Sie die Datei direkt von Ihrem lokalen Computer hochladen. Bei ZIP-Dateien mit einer Größe von mehr als 50 MB müssen Sie Ihr Paket zuerst in einen Amazon-S3-Bucket hochladen. Anweisungen zum Hochladen einer Datei in einen Amazon-S3-Bucket unter Verwendung der AWS Management Console finden Sie unter Erste Schritte mit Amazon S3. Informationen zum Hochladen von Dateien mit der AWS CLI finden Sie im AWS CLI-Benutzerhandbuch unter Verschieben von Objekten.

Anmerkung

Sie können eine vorhandene Container-Image-Funktion nicht konvertieren, um ein ZIP-Archiv zu verwenden. Sie müssen eine neue Funktion erstellen.

So erstellen Sie eine neue Funktion (Konsole)
  1. Öffnen Sie die Funktionsseite der Lambda-Konsole und wählen Sie Funktion erstellen aus.

  2. Wählen Sie Author from scratch aus.

  3. Führen Sie unter Basic information (Grundlegende Informationen) die folgenden Schritte aus:

    1. Geben Sie als Funktionsname den Namen Ihrer Funktion ein.

    2. Wählen Sie unter Runtime (Laufzeit) provided.al2023 aus.

  4. (Optional) Erweitern Sie unter Berechtigungen die Option Standardausführungsrolle ändern. Sie können eine neue Ausführungsrolle erstellen oder eine vorhandene Rolle verwenden.

  5. Wählen Sie Funktion erstellen. Lambda erstellt eine grundlegende „Hello World“-Funktion mit der von Ihnen gewählten Laufzeit.

So laden Sie ein ZIP-Archiv von Ihrem lokalen Computer hoch (Konsole)
  1. Wählen Sie auf der Funktionsseite der Lambda-Konsole die Funktion aus, für die Sie die ZIP-Datei hochladen möchten.

  2. Wählen Sie die Registerkarte Code aus.

  3. Wählen Sie im Bereich Codequelle die Option Hochladen von aus.

  4. Wählen Sie die ZIP-Datei aus.

  5. Laden Sie die ZIP-Datei wie folgt hoch:

    1. Wählen Sie Hochladen und dann Ihre ZIP-Datei in der Dateiauswahl aus.

    2. Klicken Sie auf Open.

    3. Wählen Sie Speichern.

So laden Sie ein ZIP-Archiv aus einem Amazon-S3-Bucket hoch (Konsole)
  1. Wählen Sie auf der Funktionsseite der Lambda-Konsole die Funktion aus, für die Sie eine neue ZIP-Datei hochladen möchten.

  2. Wählen Sie die Registerkarte Code aus.

  3. Wählen Sie im Bereich Codequelle die Option Hochladen von aus.

  4. Wählen Sie den Amazon-S3-Speicherort aus.

  5. Fügen Sie die Amazon-S3-Link-URL Ihrer ZIP-Datei ein und wählen Sie Speichern aus.

Erstellen und Aktualisieren von Funktionen mit ZIP-Dateien unter Verwendung der AWS CLI

Sie können die AWS CLI verwenden, um eine neue Funktion zu erstellen oder eine vorhandene unter Verwendung einer ZIP-Datei zu aktualisieren. Verwenden Sie die update-function-code Befehle create-function und , um Ihr ZIP-Paket bereitzustellen. Wenn Ihre ZIP-Datei kleiner als 50 MB ist, können Sie das ZIP-Paket von einem Dateispeicherort auf Ihrem lokalen Build-Computer hochladen. Bei größeren Dateien müssen Sie Ihr ZIP-Paket aus einem Amazon-S3-Bucket hochladen. Anweisungen zum Hochladen einer Datei in einen Amazon-S3-Bucket unter Verwendung der AWS CLI finden Sie unter Verschieben von Objekten im AWS CLI-Benutzerhandbuch.

Anmerkung

Wenn Sie Ihre ZIP-Datei unter Verwendung der AWS CLI aus einem Amazon-S3-Bucket hochladen, muss sich der Bucket in der gleichen AWS-Region wie Ihre Funktion befinden.

Um eine neue Funktion unter Verwendung einer ZIP-Datei mit der AWS CLI zu erstellen, müssen Sie Folgendes angeben:

  • Den Namen Ihrer Funktion (--function-name)

  • Die Laufzeit Ihrer Funktion (--runtime)

  • Den Amazon-Ressourcennamen (ARN) der Ausführungsrolle der Funktion (--role).

  • Den Namen der Handler-Methode in Ihrem Funktionscode (--handler)

Sie müssen auch den Speicherort Ihrer ZIP-Datei angeben. Befindet sich Ihre ZIP-Datei in einem Ordner auf Ihrem lokalen Build-Computer, verwenden Sie die --zip-file-Option, um den Dateipfad anzugeben, wie im folgenden Beispielbefehl gezeigt.

aws lambda create-function --function-name myFunction \ --runtime provided.al2023 --handler bootstrap \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --zip-file fileb://myFunction.zip

Zur Angabe des Speicherorts der ZIP-Datei in einem Amazon-S3-Bucket verwenden Sie die im folgenden Beispielbefehl gezeigte --code-Option. Sie müssen den S3ObjectVersion-Parameter nur für versionierte Objekte verwenden.

aws lambda create-function --function-name myFunction \ --runtime provided.al2023 --handler bootstrap \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --code S3Bucket=myBucketName,S3Key=myFileName.zip,S3ObjectVersion=myObjectVersion

Um eine vorhandene Funktion mit der CLI zu aktualisieren, geben Sie den Namen Ihrer Funktion unter Verwendung des --function-name-Parameters an. Sie müssen auch den Speicherort der ZIP-Datei angeben, die Sie zum Aktualisieren Ihres Funktionscodes verwenden möchten. Befindet sich Ihre ZIP-Datei in einem Ordner auf Ihrem lokalen Build-Computer, verwenden Sie die --zip-file-Option, um den Dateipfad anzugeben, wie im folgenden Beispielbefehl gezeigt.

aws lambda update-function-code --function-name myFunction \ --zip-file fileb://myFunction.zip

Zur Angabe des Speicherorts der ZIP-Datei in einem Amazon-S3-Bucket verwenden Sie die im folgenden Beispielbefehl gezeigten --s3-bucket- und --s3-key-Optionen. Sie müssen den --s3-object-version-Parameter nur für versionierte Objekte verwenden.

aws lambda update-function-code --function-name myFunction \ --s3-bucket myBucketName --s3-key myFileName.zip --s3-object-version myObject Version

Erstellen und Aktualisieren von Funktionen mit ZIP-Dateien unter Verwendung der Lambda-API

Um Funktionen zu erstellen und zu konfigurieren, die ein ZIP-Dateiarchiv verwenden, verwenden Sie die folgenden API-Operationen:

Erstellen und Aktualisieren von Funktionen mit ZIP-Dateien unter Verwendung von AWS SAM

Das AWS Serverless Application Model (AWS SAM) ist ein Toolkit, das den Prozess der Erstellung und Ausführung von Serverless-Anwendungen auf AWS optimiert. Sie definieren die Ressourcen für Ihre Anwendung in einer YAML- oder JSON-Vorlage und verwenden die AWS SAM-Befehlszeilenschnittstelle (AWS SAM CLI), um Ihre Anwendungen zu erstellen, zu verpacken und bereitzustellen. Wenn Sie eine Lambda-Funktion aus einer AWS SAM-Vorlage erstellen, erstellt AWS SAM automatisch ein ZIP-Bereitstellungspaket oder ein Container-Image mit Ihrem Funktionscode und allen von Ihnen angegebenen Abhängigkeiten. Weitere Informationen zur Verwendung von AWS SAM für die Erstellung und Bereitstellung von Lambda-Funktionen finden Sie unter Erste Schritte mit AWS SAM im AWS Serverless Application Model-Entwicklerhandbuch.

Sie können außerdem AWS SAM verwenden, um eine Lambda-Funktion unter Verwendung eines vorhandenen ZIP-Dateiarchivs zu erstellen. Um eine Lambda-Funktion unter Verwendung von AWS SAM zu erstellen, können Sie Ihre ZIP-Datei in einem Amazon-S3-Bucket oder in einem lokalen Ordner auf Ihrem Build-Computer speichern. Anweisungen zum Hochladen einer Datei in einen Amazon-S3-Bucket unter Verwendung der AWS CLI finden Sie unter Verschieben von Objekten im AWS CLI-Benutzerhandbuch.

In Ihrer AWS SAM-Vorlage gibt die AWS::Serverless::Function-Ressource Ihre Lambda-Funktion an. Legen Sie in dieser Ressource die folgenden Eigenschaften fest, um eine Funktion zu erstellen, die als ZIP-Datei-Archiv definiert ist:

  • PackageType – festlegen auf Zip

  • CodeUri – auf den Amazon S3-URI, den Pfad zum lokalen Ordner oder FunctionCode Objekt des Funktionscodes festgelegt

  • Runtime – festlegen auf die gewünschte Laufzeit

Mit AWS SAM müssen Sie Ihre ZIP-Datei nicht zuerst in einen Amazon-S3-Bucket hochladen, auch wenn sie größer als 50 MB ist. AWS SAM kann ZIP-Pakete bis zur maximal zulässigen Dateigröße von 250 MB (entpackt) von einem Speicherort auf Ihrem lokalen Build-Computer hochladen.

Weitere Informationen zum Bereitstellen von Funktionen mithilfe der ZIP-Datei in finden Sie AWS SAMunter AWS::Serverless::Function im AWS SAM -Entwicklerhandbuch.

Beispiel: Verwenden von AWS SAM zum Erstellen einer Go-Funktion mit „provided.al2023“
  1. Erstellen Sie eine AWS SAM-Vorlage mit folgenden Eigenschaften:

    • BuildMethod: Gibt den Compiler für Ihre Anwendung an. Verwenden Sie go1.x.

    • Runtime: Verwenden Sie provided.al2023.

    • CodeUri: Geben Sie den Pfad zu Ihrem Code ein.

    • Architectures: Verwenden Sie [arm64] für die arm64-Architektur. Verwenden Sie für die x86_64-Befehlssatzarchitektur die Option [amd64] oder entfernen Sie die Eigenschaft Architectures.

    Beispiel template.yaml
    AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Resources: HelloWorldFunction: Type: AWS::Serverless::Function Metadata: BuildMethod: go1.x Properties: CodeUri: hello-world/ # folder where your main program resides Handler: bootstrap Runtime: provided.al2023 Architectures: [arm64]
  2. Verwenden Sie den Befehl sam build, um die ausführbare Datei zu kompilieren.

    sam build
  3. Verwenden Sie den Befehl sam deploy, um die Funktion in Lambda bereitzustellen.

    sam deploy --guided

Erstellen und Aktualisieren von Funktionen mit ZIP-Dateien unter Verwendung von AWS CloudFormation

Sie können AWS CloudFormation verwenden, um eine Lambda-Funktion unter Verwendung eines ZIP-Dateiarchivs zu erstellen. Um eine Lambda-Funktion aus einer ZIP-Datei zu erstellen, müssen Sie Ihre Datei zunächst in einen Amazon-S3-Bucket hochladen. Anweisungen zum Hochladen einer Datei in einen Amazon-S3-Bucket unter Verwendung der AWS CLI finden Sie unter Verschieben von Objekten im AWS CLI-Benutzerhandbuch.

In Ihrer AWS CloudFormation-Vorlage gibt die AWS::Lambda::Function-Ressource Ihre Lambda-Funktion an. Legen Sie in dieser Ressource die folgenden Eigenschaften fest, um eine Funktion zu erstellen, die als ZIP-Datei-Archiv definiert ist:

  • PackageType – festlegen auf Zip

  • Code – Geben Sie den Namen des Amazon-S3-Buckets und den ZIP-Dateinamen in die Felder S3Bucket und S3Key ein

  • Runtime – festlegen auf die gewünschte Laufzeit

Die von AWS CloudFormation generierte ZIP-Datei darf nicht größer als 4 MB sein. Weitere Informationen zum Bereitstellen von Funktionen mithilfe der ZIP-Datei in finden Sie AWS CloudFormationunter AWS::Lambda::Function im AWS CloudFormation -Benutzerhandbuch.

Erstellen einer Go-Ebene für Ihre Abhängigkeiten

Anmerkung

Die Verwendung von Ebenen mit Funktionen in einer kompilierten Sprache wie Go bietet möglicherweise nicht den gleichen Nutzen wie in einer interpretierten Sprache wie Python. Da es sich bei Go um eine kompilierte Sprache handelt, müssen Ihre Funktionen während der Initialisierungsphase alle freigegebenen Baugruppen manuell in den Speicher laden, was die Kaltstartzeiten verlängern kann. Stattdessen empfehlen wir, den freigegebenen Code bei der Kompilierung einzuschließen, um die Vorteile der integrierten Compiler-Optimierungen zu nutzen.

Die Anweisungen in diesem Abschnitt zeigen Ihnen, wie Sie Ihre Abhängigkeiten in eine Ebene einschließen.

Lambda erkennt automatisch alle Bibliotheken im /opt/lib-Verzeichnis und alle Binärdateien im /opt/bin-Verzeichnis. Um sicherzustellen, dass Lambda den Inhalt Ihrer Ebene korrekt findet, erstellen Sie eine Ebene mit der folgenden Struktur:

custom-layer.zip └ lib | lib_1 | lib_2 └ bin | bin_1 | bin_2

Nachdem Sie Ihre Ebene gebündelt haben, sehen Sie sich Erstellen und Löschen von Ebenen in Lambda und Hinzufügen von Ebenen zu Funktionen an, um die Einrichtung Ihrer Ebene abzuschließen.