Lambda-Befehlssatz-Architekturen (ARM/x86) - 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-Befehlssatz-Architekturen (ARM/x86)

Die-Befehlssatz-Architektureiner Lambda-Funktion bestimmt den Typ des Computerprozessors, den Lambda zum Ausführen der Funktion verwendet. Lambda bietet eine Auswahl an Befehlssatz-Architekturen:

  • arm64 — 64-Bit-ARM-Architektur, für die AWS Graviton2-Prozessor.

  • x86_64 — 64-Bit-x86-Architektur für x86-basierte Prozessoren.

Anmerkung

Die arm64-Architektur ist in den meisten AWS-Regionen verfügbar. Weitere Informationen finden Sie unter AWS Lambda-Preisgestaltung. Wählen Sie in der Speicherpreistabelle die Registerkarte Arm Price und öffnen Sie dann die Dropdown-Liste Region, um zu sehen, welche AWS-Regionen arm64 mit Lambda unterstützen.

Ein Beispiel für die Erstellung einer Funktion mit arm64-Architektur finden Sie unter AWS LambdaFunktionen Powered by AWS-Graviton2-Prozessor.

Vorteile der Verwendung von arm64-Architektur

Lambda-Funktionen, die arm64-Architektur verwenden (AWSGraviton2-Prozessor) kann einen deutlich besseren Preis und eine bessere Leistung erzielen als die gleichwertige Funktion, die auf der x86_64-Architektur ausgeführt wird. Erwägen Sie, arm64 für rechenintensive Anwendungen wie Hochleistungsrechnen, Videocodierung und Simulations-Workloads zu verwenden.

Die Graviton2-CPU verwendet den Neoverse N1-Kern und unterstützt Armv8.2 (einschließlich CRC- und Krypto-Erweiterungen) sowie mehrere andere architektonische Erweiterungen.

Graviton2 reduziert die Lesezeit des Speichers, indem es einen größeren L2-Cache pro vCPU bereitstellt, was die Latenzleistung von Web- und Mobile-Backends, Microservices und Datenverarbeitungssystemen verbessert. Graviton2 bietet auch eine verbesserte Verschlüsselungsleistung und unterstützt Befehlssätze, die die Latenz von CPU-basierten Inferenzen für Machine Learning verbessern.

Für weitere Informationen über AWS Graviton2 siehe AWS Graviton-Prozessor.

Anforderungen für die Migration zur arm64-Architektur

Wenn Sie eine Lambda-Funktion für die Migration zur arm64-Architektur auswählen, stellen Sie sicher, dass Ihre Funktion die folgenden Anforderungen erfüllt, um eine reibungslose Migration zu gewährleisten:

  • Die Funktion verwendet derzeit eine Lambda Amazon Linux 2-Laufzeit.

  • Das Bereitstellungspaket enthält nur Open-Source-Komponenten und Quellcode, die Sie steuern, sodass Sie alle notwendigen Updates für die Migration vornehmen können.

  • Wenn der Funktionscode Abhängigkeiten von Drittanbietern enthält, bietet jede Bibliothek oder jedes Paket eine arm64-Version.

Funktionscode-Kompatibilität mit arm64-Architektur

Ihr Lambda-Funktionscode muss mit der Befehlssatz-Architektur der Funktion kompatibel sein. Bevor Sie eine Funktion zur arm64-Architektur migrieren, beachten Sie die folgenden Punkte zum aktuellen Funktionscode:

  • Wenn Sie Ihren Funktionscode mit dem eingebetteten Code-Editor hinzugefügt haben, läuft Ihr Code wahrscheinlich auf beiden Architekturen ohne Änderung.

  • Nach dem Upload Ihres Funktionscodes, müssen Sie neuen Code uploaden, der mit Ihrer Zielarchitektur kompatibel ist.

  • Wenn Ihre Funktion Layer verwendet, müssen Sieüberprüfe jede Ebeneum sicherzustellen, dass es mit der neuen Architektur kompatibel ist. Wenn ein Layer nicht kompatibel ist, bearbeiten Sie die Funktion, um die aktuelle Layer-Version durch eine kompatible Layer-Version zu ersetzen.

  • Wenn Ihre Funktion Lambda-Erweiterungen verwendet, müssen Sie jede Erweiterung überprüfen, um sicherzustellen, dass sie mit der neuen Architektur kompatibel ist.

  • Wenn Ihre Funktion einen Container-Image-Bereitstellungspakettyp verwendet, müssen Sie ein neues Container-Image erstellen, das mit der Architektur der Funktion kompatibel ist.

Migration zur arm64-Architektur

Um eine Lambda-Funktion auf die arm64-Architektur zu migrieren, empfehlen wir die folgenden Schritte:

  1. Erstellen Sie die Liste der Abhängigkeiten für Ihre Anwendung oder Ihren Workload. Häufige Abhängigkeiten sind unter anderem:

    • Alle Bibliotheken und Pakete, die die Funktion verwendet.

    • Die Tools, mit denen Sie die Funktion erstellen, bereitstellen und testen, wie Compiler, Test-Suites, Pipelines für Continuous Integration und Continuous Delivery (CI/CD), Bereitstellungstools und Skripte.

    • Die Lambda-Erweiterungen und Tools von Drittanbietern, mit denen Sie die Funktion in der Produktion überwachen.

  2. Überprüfen Sie für jede der Abhängigkeiten die Version und prüfen Sie dann, ob arm64-Versionen verfügbar sind.

  3. Erstellen Sie eine Umgebung, um Ihre Anwendung zu migrieren.

  4. Bootstrap die Anwendung.

  5. Testen und debuggen Sie die Anwendung.

  6. Testen Sie die Leistung der arm64-Funktion. Vergleichen Sie die Leistung mit der x86_64-Version.

  7. Aktualisieren Sie Ihre Infrastruktur-Pipeline, um arm64 Lambda-Funktionen zu unterstützen.

  8. Stufen Sie Ihre Bereitstellung in die Produktion ein.

    Verwenden Sie zum Beispiel Alias-Routing-Konfiguration um den Datenverkehr zwischen den Versionen x86 und arm64 der Funktion aufzuteilen und die Leistung und Latenz zu vergleichen.

Weitere Informationen zum Erstellen einer Codeumgebung für die arm64-Architektur, einschließlich sprachspezifischer Informationen für Java, Go, .NET und Python, finden Sie im Repository Erste Schritte mit AWS Graviton GitHub.

Konfigurieren der Befehlssatz-Architektur

Sie können die Befehlssatzarchitektur für neue und vorhandene Lambda-Funktionen mit der Lambda-Konsole, AWS-SDKs, AWS Command Line Interface (AWS CLI) oder AWS CloudFormation konfigurieren. Führen Sie die folgenden Schritte aus, um die Befehlssatzarchitektur für eine vorhandene Lambda-Funktion von der Konsole aus zu ändern.

  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Klicken Sie auf den Namen der Funktion, für die Sie die Befehlssatzarchitektur konfigurieren möchten.

  3. Wählen Sie auf der Registerkarte Code für den Abschnitt Laufzeiteinstellungen die Option Bearbeiten aus.

  4. Unter Architecture (Architektur) wählen Sie die Befehlssatzarchitektur aus, die Ihre Funktion verwenden soll.

  5. Wählen Sie Speichern.

Anmerkung

Alle Amazon-Linux 2-Laufzeiten unterstützen sowohl x86_64- als auch ARM-CPU-Architekturen.

Laufzeiten, die das Amazon-Linux 2-Betriebssystem nicht verwenden, z. B. Go 1.x, unterstützen die arm64-Architektur nicht. Um die arm64-Architektur mit Go 1.x zu verwenden, können Sie Ihre Funktion in einer bereitgestellten al2-Laufzeit ausführen. Weitere Informationen finden Sie in der Bereitstellungsanleitung für ZIP-Pakete und Container-Images.