View a markdown version of this page

Lambda aktivieren und verwalten SnapStart - 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.

Lambda aktivieren und verwalten SnapStart

Um es zu verwenden SnapStart, aktivieren Sie SnapStart es für eine neue oder bestehende Lambda-Funktion. Veröffentlichen und rufen Sie dann eine Funktionsversion auf.

Aktivierung SnapStart (Konsole)

Um eine Funktion SnapStart zu aktivieren
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie den Namen einer Funktion aus.

  3. Wählen Sie Configuration (Konfiguration) und dann General configuration (Allgemeine Konfiguration).

  4. Wählen Sie im Bereich General configuration (Allgemeine Konfiguration) die Option Edit (Bearbeiten) aus.

  5. Wählen Sie auf der Seite Grundeinstellungen bearbeiten für die SnapStart Option Veröffentlichte Versionen aus.

  6. Wählen Sie Speichern.

  7. Veröffentlichen einer Funktionsversion. Lambda initialisiert Ihren Code, erstellt einen Snapshot der initialisierten Ausführungsumgebung und speichert den Snapshot im Cache für einen Zugriff mit geringer Latenz.

  8. Rufen Sie die Funktionsversion auf.

Aktivieren SnapStart (AWS CLI)

Zur Aktivierung SnapStart für eine bestehende Funktion
  1. Aktualisieren Sie die Funktionskonfiguration, indem Sie den update-function-configuration-Befehl mit der --snap-start-Option ausführen.

    aws lambda update-function-configuration \ --function-name my-function \ --snap-start ApplyOn=PublishedVersions
  2. Veröffentlichen Sie eine Funktionsversion mit dem publish-version-Befehl.

    aws lambda publish-version \ --function-name my-function
  3. Bestätigen Sie, dass diese Funktion für die Funktionsversion aktiviert SnapStart ist, indem Sie den Befehl get-function-configuration ausführen und die Versionsnummer angeben. Das folgende Beispiel legt Version 1 fest.

    aws lambda get-function-configuration \ --function-name my-function:1

    Wenn die Antwort zeigt, dass OptimizationStatus ist On und State istActive, dann SnapStart ist aktiviert und ein Snapshot ist für die angegebene Funktionsversion verfügbar.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Rufen Sie die Funktionsversion auf, indem Sie den Aufruf-Befehl ausführen und die Version angeben. Das folgende Beispiel ruft Version 1 auf.

    aws lambda invoke \ --cli-binary-format raw-in-base64-out \ --function-name my-function:1 \ --payload '{ "name": "Bob" }' \ response.json

    Die cli-binary-format Option ist erforderlich, wenn Sie AWS CLI Version 2 verwenden. Um dies zur Standardeinstellung zu machen, führen Sie aws configure set cli-binary-format raw-in-base64-out aus. Weitere Informationen finden Sie unter Von AWS CLI unterstützte globale Befehlszeilenoptionen im AWS Command Line Interface -Benutzerhandbuch für Version 2.

Zur Aktivierung SnapStart , wenn Sie eine neue Funktion erstellen
  1. Erstellen Sie eine Funktion, indem Sie den create-function-Befehl mit der --snap-start-Option ausführen. Geben Sie für --role den Amazon-Ressourcennamen (ARN) Ihrer Ausführungsrolle an.

    aws lambda create-function \ --function-name my-function \ --runtime "java25" \ --zip-file fileb://my-function.zip \ --handler my-function.handler \ --role arn:aws:iam::111122223333:role/lambda-ex \ --snap-start ApplyOn=PublishedVersions
  2. Erstellen Sie eine Version mit dem publish-version-Befehl.

    aws lambda publish-version \ --function-name my-function
  3. Bestätigen Sie, dass diese Funktion für die Funktionsversion aktiviert SnapStart ist, indem Sie den Befehl get-function-configuration ausführen und die Versionsnummer angeben. Das folgende Beispiel legt Version 1 fest.

    aws lambda get-function-configuration \ --function-name my-function:1

    Wenn die Antwort zeigt, dass OptimizationStatus ist On und State istActive, dann SnapStart ist aktiviert und ein Snapshot ist für die angegebene Funktionsversion verfügbar.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Rufen Sie die Funktionsversion auf, indem Sie den Aufruf-Befehl ausführen und die Version angeben. Das folgende Beispiel ruft Version 1 auf.

    aws lambda invoke \ --cli-binary-format raw-in-base64-out \ --function-name my-function:1 \ --payload '{ "name": "Bob" }' \ response.json

    Die cli-binary-format Option ist erforderlich, wenn Sie AWS CLI Version 2 verwenden. Um dies zur Standardeinstellung zu machen, führen Sie aws configure set cli-binary-format raw-in-base64-out aus. Weitere Informationen finden Sie unter Von AWS CLI unterstützte globale Befehlszeilenoptionen im AWS Command Line Interface -Benutzerhandbuch für Version 2.

Aktivieren SnapStart (API)

Um zu aktivieren SnapStart
  1. Führen Sie eine der folgenden Aktionen aus:

  2. Veröffentlichen Sie eine Funktionsversion mit der PublishVersion Aktion. Lambda initialisiert Ihren Code, erstellt einen Snapshot der initialisierten Ausführungsumgebung und speichert den Snapshot im Cache für einen Zugriff mit geringer Latenz.

  3. Bestätigen Sie mithilfe der GetFunctionConfiguration Aktion, dass dies für die Funktionsversion aktiviert SnapStart ist. Geben Sie eine Versionsnummer an, um zu bestätigen, dass sie für diese Version aktiviert SnapStart ist. Wenn die Antwort zeigt, dass OptimizationStatus ist On und State istActive, dann SnapStart ist aktiviert und ein Snapshot ist für die angegebene Funktionsversion verfügbar.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Rufen Sie die Funktionsversion mit der Aufruf-Aktion auf.

Lambda SnapStart und Funktionszustände

Die folgenden Funktionszustände können auftreten, wenn Sie verwenden SnapStart.

Ausstehend

Lambda initialisiert Ihren Code und erstellt einen Snapshot der initialisierten Ausführungsumgebung. Alle Aufrufe oder anderen API-Aktionen, die mit der Funktionsversion ausgeführt werden, schlagen fehl.

Aktiv

Die Snapshot-Erstellung ist abgeschlossen und Sie können die Funktion aufrufen. Zur Verwendung SnapStart müssen Sie die veröffentlichte Funktionsversion aufrufen, nicht die unveröffentlichte Version ($LATEST).

Inaktiv

Der Status Inactive kann auftreten, wenn Lambda regelmäßig Funktions-Snapshots neu generiert, um Software-Updates anzuwenden. In diesem Fall kann Ihre Funktion in einen Inactive-Zustand übergehen, wenn sie nicht initialisiert werden kann.

Bei Funktionen, die eine Java-Laufzeit verwenden, löscht Lambda Snapshots nach 14 Tagen ohne Aufruf. Wenn Sie die Funktionsversion nach 14 Tagen aufrufen, gibt Lambda eine SnapStartNotReadyException-Antwort zurück und beginnt mit der Initialisierung eines neuen Snapshots. Warten Sie, bis die Funktionsversion den Active-Status erreicht hat, und rufen Sie es dann erneut auf.

Fehlgeschlagen

Lambda hat beim Ausführen des Initialisierungscodes oder beim Erstellen des Snapshots einen Fehler festgestellt.

Aktualisieren eines Snapshots

Lambda erstellt für jede veröffentlichte Funktionsversion einen Snapshot. Um einen Snapshot zu aktualisieren, veröffentlichen Sie eine neue Funktionsversion.

SnapStart Verwenden mit AWS SDKs

Um AWS SDK-Aufrufe von Ihrer Funktion aus zu tätigen, generiert Lambda einen kurzlebigen Satz von Anmeldeinformationen, indem es die Ausführungsrolle Ihrer Funktion übernimmt. Diese Anmeldeinformationen sind während des Aufrufs Ihrer Funktion als Umgebungsvariablen verfügbar. Sie müssen keine Anmeldeinformationen für das SDK direkt im Code bereitstellen. Standardmäßig überprüft die Kette der Anbieter von Anmeldeinformationen nacheinander jeden Ort, an dem Sie Anmeldeinformationen festlegen können, und wählt die erste verfügbare aus – in der Regel die Umgebungsvariablen (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY und AWS_SESSION_TOKEN).

Anmerkung

Wenn diese SnapStart Option aktiviert ist, verwendet die Lambda-Laufzeit automatisch die Container-Anmeldeinformationen (AWS_CONTAINER_CREDENTIALS_FULL_URIundAWS_CONTAINER_AUTHORIZATION_TOKEN) anstelle der Zugriffsschlüssel-Umgebungsvariablen. Dadurch wird verhindert, dass Anmeldeinformationen ablaufen, bevor die Funktion wiederhergestellt wird.

Verwenden mit SnapStart CloudFormation, AWS SAM, und AWS CDK

  • AWS CloudFormation: Deklarieren Sie die SnapStart Entität in Ihrer Vorlage.

  • AWS Serverless Application Model (AWS SAM): Deklarieren Sie die SnapStart Eigenschaft in Ihrer Vorlage.

  • AWS Cloud Development Kit (AWS CDK): Verwenden Sie den SnapStartProperty Typ.

Löschen von Snapshots

Lambda löscht Snapshots, wenn:

  • Sie die Funktion oder Funktionsversion löschen.

  • Nur Java-Laufzeiten – Sie die Funktionsversion 14 Tage lang nicht aufrufen. Wenn nach 14 Tagen ohne Aufruf die Funktionsversion in den Status Inaktiv übergeht. Wenn Sie die Funktionsversion nach 14 Tagen aufrufen, gibt Lambda eine SnapStartNotReadyException-Antwort zurück und beginnt mit der Initialisierung eines neuen Snapshots. Warten Sie, bis die Funktionsversion den Status Aktiv erreicht hat, und rufen Sie es dann erneut auf.

Lambda entfernt alle Ressourcen, die mit gelöschten Snapshots verknüpft sind, gemäß der Allgemeinen Datenschutzverordnung (DSGVO).