
AWS Lambda-Funktionen sind eine serverlose Lösung zum Ausführen von Code in der Cloud ohne Einstellungen Richten Sie Ihre eigenen Server ein. Der Hauptnachteil besteht darin, dass die Initialisierungszeiten lang sein können, was zu einer erhöhten Latenz führt. Mit Provisioned Concurrency können Sie dieses Problem lösen.
Was ist Provisioned Concurrency?
Lambda-Funktionen werden in ihren eigenen „Ausführungsumgebungen“ ausgeführt. die in der Regel automatisch gestartet werden, wenn eine Anfrage gestellt wird. Nach einem Funktionsaufruf wird die Umgebung „warm“ gehalten. für etwa 5–15 Minuten, und der Initialisierungscode muss nicht erneut ausgeführt werden.
Nach diesem Zeitraum oder wenn mehrere Anforderungen gleichzeitig bedient werden müssen, muss jedoch eine neue Ausführungsumgebung ausgeführt werden hochgefahren werden, was zu längeren Startzeiten führt, die als „Kaltstart“ bezeichnet werden. Dies kann besonders ausgeprägt bei Sprachen sein, die beim Start große Mengen an JIT-Kompilierung durchführen müssen, wie etwa Java und .NET.
Um dieses Problem zu lösen, verfügt AWS über eine Funktion namens „Provisioned Concurrency“, mit der Sie im Wesentlichen eine bestimmte Anzahl von Ausführungsumgebungen reservieren können, damit sie den ganzen Tag über dauerhaft warm sind. Dies bedeutet, dass der gesamte Initialisierungscode im Voraus ausgeführt wird und Sie keine Kaltstarts erleben müssen.
Wenn Sie sich bei der Bearbeitung benutzerbezogener Anfragen auf Lambda verlassen, sollten Sie die bereitgestellte Parallelität in Betracht ziehen, auch wenn dies am Ende etwas mehr kostet. Auch wenn Kaltstarts in der Regel nur 1 % der Anfragen ausmachen, können diese 1 % Sekunden mehr sein, die damit verbracht werden, auf das Laden einer Anwendung zu warten – dies hängt jedoch von der Laufzeit und der Größe Ihres Codes ab.
Wie viel kostet die bereitgestellte Parallelität?
Im Gegensatz zu reservierten EC2-Instanzen besteht die bereitgestellte Parallelität immer noch hauptsächlich darin, dass Sie für das bezahlen, was Sie nutzen. Preise, wie der Rest von Lambda. Sie zahlen eine kleine Gebühr für jede Stunde, in der Sie jede Umgebung bereitstellen, und zahlen dann wie gewohnt für Lambda-Anfragen.
Allerdings, weil der Datenverkehr auf AWS-Seite vorhersehbarer ist, und das ist er auch Da es günstiger ist, nicht ständig Initialisierungscode ausführen zu müssen, sind die Rechenkosten pro Funktion für Anforderungen, die mit bereitgestellter Parallelität gestellt werden, tatsächlich niedriger. Es gibt auch keine Nachteile, wenn Sie das Limit überschreiten. Ihnen werden lediglich die Standardpreise für Parallelität berechnet.

Insgesamt kann die bereitgestellte Parallelität etwas günstiger sein (ca. 5–10 %), wenn Sie über einen sehr vorhersehbaren Datenverkehr verfügen und genau so viel Kapazität reservieren. Allerdings kann es in manchen Fällen auch etwas teurer sein. Sie sollten Ihre Analysen überprüfen und sie in den Lambda-Preisrechner von AWS einbinden, um mehr zu erfahren.
Bereitgestellte Parallelität aktivieren
Das Aktivieren der bereitgestellten Parallelität ist ziemlich einfach, hat aber einen Nachteil: Es kann nicht auf die Standardversion von $LATEST verweisen. Bei diesem Tag handelt es sich um einen Alias, der sich ändern kann und nicht auf eine bestimmte Version verweist. Die bereitgestellte Parallelität muss eine bestimmte Version reservieren. Sie müssen also eine neue Version von Lambda veröffentlichen, falls Sie noch keine haben:

Konfigurieren Sie dann einen Alias, der auf diese Version verweist. Dieser Alias kann aktualisiert werden, wodurch eine Aktualisierung für die bereitgestellten Umgebungen ausgelöst wird.

Sobald Ihr Alias eingerichtet ist, können Sie eine neue Parallelitätskonfiguration aus dem Lambda hinzufügen. 8217;s-Einstellungen unter Konfiguration > Parallelität. Sie können dies auch direkt über die Alias-Einstellungen konfigurieren.

Die Einstellungen für die bereitgestellte Parallelität sind einfach: Wählen Sie einen Alias aus und geben Sie einen Bereitstellungsbetrag ein.

Sie können diesen Wert auch mithilfe der AWS-API oder CLI festlegen und aktualisieren Wird verwendet, um es den ganzen Tag über zu automatisieren:
aws lambda put-provisioned-concurrency-config –function-name MyFunction –qualifier LatestProvisioned –provisioned-concurrent-executions 10
Autoscaling mit bereitgestellter Parallelität
Da die bereitgestellte Parallelität im Laufe des Tages angepasst werden kann, kann sie auch mit dem Application Auto Scaling von AWS verbunden werden, um sie je nach Nutzung anzupassen. Das Anschließen ist einfach und erfordert nur wenige Befehle von der AWS CLI oder API, da es dafür noch keine Verwaltungskonsole gibt.
Zuerst müssen Sie Lambda registrieren als Skalierungsziel fungieren. Hier müssen Sie den Namen der Funktion (MyFunction) und den Alias (LatestProvisioned) bearbeiten und außerdem die minimalen und maximalen Kapazitätsbereiche anpassen.
aws application-autoscaling register-scalable-target –service-namespace lambda –resource-id function:MyFunction:LatestProvisioned –min-capacity 2 –max-capacity 10 –scalable-dimension lambda:function:ProvisionedConcurrency < p>Dann können Sie eine automatische Skalierungsrichtlinie aktivieren, indem Sie den Funktionsnamen und den Alias als Ressourcen-ID verwenden und sie mit einer JSON-Skalierungsrichtlinie konfigurieren. In diesem Beispiel wird die Skalierung nach oben und unten festgelegt, wenn LambdaProvisionedConcurrencyUtilization über oder unter 70 % geht.
aws application-autoscaling put-scaling-policy –service-namespace lambda –scalable-dimension lambda:function:ProvisionedConcurrency –resource-id function:MyFunction:LatestProvisioned –policy-name my-policy –policy-type TargetTrackingScaling –target-tracking-scaling-policy-configuration '{ “TargetValue”: 0.7, “PredefinedMetricSpecification”: { “PredefinedMetricType”: “LambdaProvisionedConcurrencyUtilization” }}'
Dies fängt nicht alle Fälle ab, z als schnelle Nutzungsschübe, die nicht lange anhalten, aber es eignet sich gut für gleichmäßigen Datenverkehr und spart Ihnen Geld am Abend, wenn der Datenverkehr gering ist.
WEITER LESEN
- < li>› Microsoft Edge geht gegen Benachrichtigungs-Spam vor
- › So erstellen Sie GIFs auf dem iPhone
- › So sehen Sie UFC 290 Volkanovski vs. Rodrigueza live online
- › Welches Apple-Logo war das Beste? Ein Rückblick
- › Mechanische Tastatur von Corsair zum Allzeittiefstpreis und weiteren Angeboten
- › Dieser neue ASUS Tiny PC ist überraschend leistungsstark