

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.

# Bereitstellungsmuster
<a name="web-functions-deployment"></a>

Um eine neue Version Ihrer AWS Lambda Web Function-Anwendung zu veröffentlichen, erstellen Sie eine neue Revision. Endgeräte, die so `autoDeploymentMode` eingestellt sind, dass sie den gesamten **LatestRevision**Datenverkehr dorthin weiterleiten, sobald sie **aktiv** werden. Endgeräte, für die die **Option Deaktiviert aktiviert** ist, `autoDeploymentMode` stellen weiterhin ihre aktuellen Versionen bereit, bis Sie die Gewichtung der Versionen aktualisieren. Mithilfe des automatischen Bereitstellungsmodus und der Revisionsgewichte des Endpunkts steuern Sie, wie der Datenverkehr von der aktuellen zur neuen Version übertragen wird. In den folgenden Abschnitten werden beide Modi für die automatische Bereitstellung, gängige Bereitstellungsmuster (Canary, Blue-Green und Rollback) und die Regeln für die Gewichtung von Revisionen erläutert.

Änderungen an `autoDeploymentMode` und `revisionWeights` sind asynchrone Endpunkt-Updates. Warten Sie`updateStatus`, bis das Datum erreicht ist, `Successful` bevor Sie die Bereitstellung evaluieren oder ein weiteres Endpunkt-Update einreichen. Falls ein Update fehlschlägt, `updateStatusReason` wird die Ursache beschrieben.

Das folgende Diagramm zeigt eine Canary-Bereitstellung auf einem Endpunkt, dessen automatischer Bereitstellungsmodus **Deaktiviert** ist. Jede Gewichtsänderung ist ein asynchrones Endpunkt-Update.

1. Revision 1 beginnt mit 100 Prozent des Datenverkehrs.

1. Sie leiten 10 Prozent des Datenverkehrs an Version 2 weiter und überwachen ihn.

1. Wenn Revision 2 Ihre Prüfungen bestanden hat, leiten Sie den gesamten Datenverkehr an sie weiter.

1. Wenn Revision 2 fehlschlägt, setzen Sie die Gewichtung auf 100 Prozent zurück auf Version 1.

![Bereitstellung auf Canary, bei der der Datenverkehr von Revision 1 auf Revision 2 verlagert wird, mit einem Rollback-Pfad auf Revision 1.](https://docs.aws.amazon.com/de_de/lambda/latest/dg/images/web-functions-deployment-patterns.png)


## Auto-deployment Modi
<a name="web-functions-deployment-modes"></a>

Die `autoDeploymentMode` Einstellung auf einem Endpunkt steuert, ob Lambda den Datenverkehr bei der Bereitstellung automatisch an neue Versionen weiterleitet. Sie legen dies fest, wenn Sie den Endpunkt erstellen, und Sie können es auf einem vorhandenen Endpunkt ändern.

Wenn Sie es weglassen`autoDeploymentMode`, ist es standardmäßig. `Disabled` `LatestRevision`wird nur für `HomeRegion` Endgeräte unterstützt, daher verwenden `PerRegion` Endpunkte `MultiRegion` immer. `Disabled` Bei der Verwendung `Disabled` legen Sie `revisionWeights` den Endpunkt fest, wie unter beschrieben. [Revisionsgewichte](#web-functions-deployment-weights)

**LatestRevision**  
Jedes Mal, wenn eine neue Revision **aktiv** wird, leitet Lambda 100% des Datenverkehrs des Endpunkts an sie weiter. Sie müssen die Revisionsgewichte nicht aktualisieren, und Sie können keine Revisionsgewichte festlegen, solange sich der Endpunkt in diesem Modus befindet. Verwenden Sie diesen Modus für Entwicklungs- und Staging-Umgebungen, in denen Sie eine automatische Bereitstellung ohne manuelles Eingreifen wünschen.

**Deaktiviert**  
Lambda ändert das Traffic-Routing nicht, wenn Sie eine neue Revision erstellen. Sie steuern die Weiterleitung des Datenverkehrs manuell, indem Sie die Gewichtung der Revisionen festlegen. Verwenden Sie diesen Modus für Produktionsumgebungen, in denen Sie die Einführung neuer Versionen mit kanarischen oder blaugrünen Bereitstellungsmustern steuern möchten.

**Um den Modus für die automatische Bereitstellung zu ändern (AWS CLI)**

1. Verwenden Sie AWS Command Line Interface (AWS CLI), um den Endpunkt zu aktualisieren und die automatische Bereitstellung zu deaktivieren.

   ```
   aws lambda-web update-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}} \
       --auto-deployment-mode Disabled
   ```

1. Warten Sie, bis das Endpunkt-Update abgeschlossen ist.

   ```
   aws lambda-web wait web-function-endpoint-updated \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}}
   ```

### Wechseln zwischen den Modi
<a name="web-functions-deployment-modes-switching"></a>

Wenn Sie ohne Angabe von Versionsgewichten von **Deaktiviert **LatestRevision****zu wechseln, bleibt das aktuelle Datenverkehrsrouting nach erfolgreicher Aktualisierung unverändert. Die Version, an die der Endpunkt den Verkehr vor dem Update weitergeleitet hat, empfängt weiterhin 100% des Datenverkehrs, auch wenn Sie neuere Versionen erstellt haben. Dieser Datenverkehr wird beibehalten, bis Sie die Revisionsgewichte aktualisieren. Sie können in derselben `UpdateWebFunctionEndpoint` Anfrage auch den Modus wechseln und die Revisionsgewichte festlegen.

Wenn Sie von **Deaktiviert** zu wechseln **LatestRevision**, aktualisiert Lambda den Endpunkt so, dass 100% des Datenverkehrs auf die neueste Version weitergeleitet werden. Die neueste Version muss **aktiv** sein. Wenn sie „**Ausstehend“** oder „**Fehlgeschlagen**“ lautet, schlägt die Anforderung mit einem Konfliktfehler fehl. Nach erfolgreicher Aktualisierung gelten die zuvor konfigurierten Revisionsgewichte nicht mehr.

## Revisionsgewichte
<a name="web-functions-deployment-weights"></a>

Wenn der automatische Bereitstellungsmodus **deaktiviert** ist, steuern Sie die Verkehrsweiterleitung, indem Sie Revisionen Gewichte zuweisen. Lambda verteilt den Traffic zwischen den Revisionen proportional zu ihren Gewichten.

Bei der Gewichtung von Revisionen handelt es sich um eine Einstellung am Endpunkt (die `revisionWeights` Eigenschaft), mit der Sie Änderungen vornehmen. `UpdateWebFunctionEndpoint` Sie sind keine Einstellung für die Revision.

Für die Gewichte der Revisionen gelten die folgenden Regeln:
+ Jedes Gewicht ist eine Ganzzahl von 1 bis 100.
+ Die Gewichte in einer Anfrage müssen sich auf genau 100 summieren.
+ Jede Revision kann in den Gewichtungen nur einmal vorkommen.
+ Jede Version der Gewichtungen muss sich beim Einstellen der Gewichtungen im Status **Aktiv** befinden. Andernfalls lehnt die API die Anfrage ab.
+ Ein Endpunkt leitet den Datenverkehr gleichzeitig an maximal zwei Revisionen weiter.
+ Keine Gewichtung hat einen Standardwert. Um den gesamten Datenverkehr an eine Revision weiterzuleiten, geben Sie nur die Revision mit einer Gewichtung von 100 an. Eine Revision, die nicht in den Gewichtungen enthalten ist, empfängt keinen Verkehr von diesem Endpunkt.

Revisionsbezeichner werden von Lambda generiert, wenn Sie eine Revision erstellen. Verwenden Sie den folgenden Befehl, um Revisionsbezeichner für Ihre Web-Funktion zu finden:

```
aws lambda-web list-web-function-revisions \
    --function-name {{my-web-app}}
```

In der Antwort werden die Revisionen in der Reihenfolge von der neuesten zur ältesten Version aufgeführt, einschließlich ihrer Kennungen, Erstellungszeitstempel und des aktuellen Status.

## Bereitstellungsmuster
<a name="web-functions-deployment-patterns"></a>

Die folgenden Bereitstellungsmuster verwenden Revisionsgewichte, um zu steuern, wie der Datenverkehr von Ihrer aktuellen Revision zu einer neuen Revision fließt. Für diese Muster muss der automatische Bereitstellungsmodus des Endpunkts (die `autoDeploymentMode` Endpunkteinstellung) **deaktiviert** sein. Der Endpunkt, den der `aws lambda-web deploy` Befehl erstellt, verwendet **LatestRevision**. Um diese Muster auf diesem Endpunkt zu verwenden, schalten Sie ihn zunächst auf **Deaktiviert** um, wie unter gezeigt[Auto-deployment Modi](#web-functions-deployment-modes).

### Bereitstellung auf Canary
<a name="web-functions-deployment-canary"></a>

Bei einer Bereitstellung auf Canary wird ein kleiner Teil des Datenverkehrs an die neue Version weitergeleitet, sodass Sie zunächst nach Fehlern suchen können, bevor Sie den gesamten Datenverkehr weiterleiten. Wenn bei der neuen Version Probleme auftreten, ist nur ein kleiner Teil der Anfragen betroffen.

**Um eine Canary-Bereitstellung durchzuführen (AWS CLI)**

1. Erstellen Sie eine neue Version mit Ihrem aktualisierten Code.

   ```
   aws lambda-web create-web-function-revision \
       --function-name {{my-web-app}} \
       --build-config '{
         "codeConfig": {
           "s3Object": { "bucket": "{{my-bucket}}", "key": "{{my-app-v2.zip}}" }
         },
         "runtimeConfig": { "runtime": "nodejs24.x" }
       }' \
       --service-config '{
         "executionRoleArn": "arn:aws:iam::{{111122223333}}:role/{{my-web-function-role}}"
       }'
   ```

   Notieren Sie sich die Revisions-ID in der Antwort.

   Eine neue Revision kopiert keine Einstellungen aus der aktuellen Revision. Jede `serviceConfig` Einstellung, die Sie auslassen, erhält ihren Standardwert, z. B. einen Wert `timeoutSeconds` von 30 und keine Umgebungsvariablen. Schließen Sie alle Einstellungen ein, die die aktuelle Version verwendet, z. B.`environmentVariables`, `timeoutSeconds``maxConcurrencyPerEnvironment`, und`telemetryConfig`. Um die Konfiguration der aktuellen Revision zu sehen, führen Sie den Befehl aus`aws lambda-web get-web-function-revision`.

1. Warten Sie, bis die neue Revision **aktiv** ist. Die API lehnt Revisionsgewichte ab, die auf eine Revision verweisen, die nicht **aktiv** ist.

   ```
   aws lambda-web wait web-function-revision-active \
       --function-name {{my-web-app}} \
       --revision-id {{rev-def45}}
   ```

1. Leitet 10% des Datenverkehrs an die neue Revision und 90% an die aktuelle Revision weiter.

   ```
   aws lambda-web update-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}} \
       --revision-weights '[{"revisionId": "{{rev-abc12}}", "weight": 90}, {"revisionId": "{{rev-def45}}", "weight": 10}]'
   ```

1. Warten Sie, bis das Endpunkt-Update abgeschlossen ist.

   ```
   aws lambda-web wait web-function-endpoint-updated \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}}
   ```

1. Überwachen Sie die neue Version anhand von Anwendungsprotokollen oder benutzerdefinierten Metriken. Fügen Sie eine Build- oder Revisions-ID hinzu, die Sie kontrollieren. Metriken für Webfunktionen enthalten keine Revisionsdimension. Daher können sie Canary-Fehler nicht von Fehlern in der aktuellen Version trennen. Details hierzu finden Sie unter [Verwenden von CloudWatch Metriken mit Lambda-Webfunktionen](web-functions-monitoring-metrics.md). Wenn der Canary die Fehler- und Latenzschwellenwerte erfüllt, die Sie vor dem Rollout definiert haben, erhöhen Sie seine Gewichtung.

   ```
   aws lambda-web update-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}} \
       --revision-weights '[{"revisionId": "{{rev-abc12}}", "weight": 50}, {"revisionId": "{{rev-def45}}", "weight": 50}]'
   ```

1. Warten Sie, bis das Endpunkt-Update abgeschlossen ist.

   ```
   aws lambda-web wait web-function-endpoint-updated \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}}
   ```

1. Wenn Sie sicher sind, dass die neue Version fehlerfrei ist, leiten Sie den gesamten Datenverkehr an sie weiter.

   ```
   aws lambda-web update-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}} \
       --revision-weights '[{"revisionId": "{{rev-def45}}", "weight": 100}]'
   ```

1. Warten Sie, bis das Endpunkt-Update abgeschlossen ist.

   ```
   aws lambda-web wait web-function-endpoint-updated \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}}
   ```

### Blue-green Bereitstellung
<a name="web-functions-deployment-blue-green"></a>

Bei einer blaugrünen Bereitstellung wird der Datenverkehr weiterhin von der aktuellen Version bereitgestellt, während Sie die neue Version validieren. Anschließend wird der gesamte Datenverkehr in einem Endpunkt-Update auf die neue Version umgestellt. Das folgende Verfahren validiert mit einer gleichmäßigen Verteilung des Datenverkehrs. Verwenden Sie zur Validierung ohne Produktionsdatenverkehr einen separaten Testendpunkt, wie unter beschrieben[Überlegungen zur Bereitstellung](#web-functions-deployment-considerations).

**Um eine blaugrüne Bereitstellung durchzuführen (AWS CLI)**

1. Erstellen Sie eine neue Version mit Ihrem aktualisierten Code und warten Sie, bis sie **aktiv** ist. Verwenden Sie dieselben Befehle wie im vorherigen Canary-Bereitstellungsverfahren.

1. Teilen Sie den Verkehr gleichmäßig auf die beiden Revisionen auf.

   ```
   aws lambda-web update-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}} \
       --revision-weights '[{"revisionId": "{{rev-abc12}}", "weight": 50}, {"revisionId": "{{rev-def45}}", "weight": 50}]'
   ```

1. Warten Sie, bis das Endpunkt-Update abgeschlossen ist.

   ```
   aws lambda-web wait web-function-endpoint-updated \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}}
   ```

1. Überwachen Sie beide Versionen anhand von Anwendungsprotokollen oder benutzerdefinierten Metriken. Fügen Sie eine Build- oder Revisions-ID hinzu, die Sie kontrollieren. Wenn die neue Version die Integritätskriterien erfüllt, die Sie vor dem Rollout definiert haben, leiten Sie den gesamten Datenverkehr an sie weiter.

   ```
   aws lambda-web update-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}} \
       --revision-weights '[{"revisionId": "{{rev-def45}}", "weight": 100}]'
   ```

1. Warten Sie, bis das Endpunkt-Update abgeschlossen ist.

   ```
   aws lambda-web wait web-function-endpoint-updated \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}}
   ```

### Wird zurückgesetzt
<a name="web-functions-deployment-rollback"></a>

Wenn Sie Probleme mit einer neuen Version feststellen (hohe Fehlerraten, erhöhte Latenz), können Sie ein Rollback mit einem einzigen Endpunkt-Update durchführen, das den gesamten Datenverkehr an die vorherige, zweifelsfrei funktionierende Version weiterleitet.

**Rollback im Modus LatestRevision**  
Der automatische Bereitstellungsmodus eines Endpunkts ist zwar aktiviert, aber eine Anfrage **LatestRevision**, die nur Revisionsgewichte festlegt, schlägt fehl. Mit dem folgenden Verfahren wird der automatische Bereitstellungsmodus auf **Deaktiviert** gesetzt und die Revision wird in derselben Anfrage gewichtet, sodass er in beiden Modi funktioniert.  
Der Endpunkt bleibt dann im **deaktivierten** Modus, bis Sie ihn ändern.

**Um zu einer früheren Version zurückzukehren (AWS CLI)**

1. **Aktualisieren Sie den Endpunkt so, dass er 100% des Datenverkehrs an die zweifelsfrei funktionierende Version weiterleitet, und setzen Sie den Modus für die automatische Bereitstellung auf Deaktiviert.**

   ```
   aws lambda-web update-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}} \
       --auto-deployment-mode Disabled \
       --revision-weights '[{"revisionId": "{{rev-abc12}}", "weight": 100}]'
   ```

1. Warten Sie, bis das Endpunkt-Update abgeschlossen ist.

   ```
   aws lambda-web wait web-function-endpoint-updated \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}}
   ```

Nachdem das Update erfolgreich war, beendet Lambda die Weiterleitung neuer Anfragen an die problematische Revision. In-flight Anfragen zu dieser Revision werden normal abgeschlossen. Weitere Hinweise zum Aktualisierungsstatus von Endpunkten finden Sie unter[Endpunktzustände](web-functions-how-it-works.md#web-functions-endpoint-states).

Wenn für die Revision, auf die Sie ein Rollback durchführen, nur wenige oder gar keine Ausführungsumgebungen laufen, skaliert Lambda sie, wenn der Verkehr dorthin verlagert wird. Anfragen können warten, bis die Ausführungsumgebungen initialisiert werden, was die Latenz erhöht. Anfragen können aufgrund von Startfehlern, der Ratenbeschränkung oder maximalen Umgebungen des Endpunkts oder des vCPU-Kontingents des Kontos immer noch fehlschlagen. Bei einigen dieser Fehler werden HTTP 429-Antworten zurückgegeben.

## Überlegungen zur Bereitstellung
<a name="web-functions-deployment-considerations"></a>

Was löst eine neue Revision aus?  
Lambda erstellt eine neue Revision, wenn Sie aufrufen`CreateWebFunctionRevision`. Dazu gehören die Bereitstellung von neuem Anwendungscode und das Ändern von Konfigurationseinstellungen wie Timeout, Parallelität oder Umgebungsvariablen. Jede Änderung führt zu einer unveränderlichen Revision.

Kann ich eine neue Version testen, bevor ich den Produktionsdatenverkehr an sie weiterleite?  
Ja. Sie können eine Revision nur über einen Endpunkt aufrufen, es gibt also zwei Ansätze:  
+ **Dedizierter Testendpunkt** — Erstellen Sie einen separaten Endpunkt für Tests. Leiten Sie den Datenverkehr zuerst an die neue Version auf dem Testendpunkt weiter (indem Sie die Revisionsgewichte des Testendpunkts festlegen), validieren Sie sie und aktualisieren Sie dann die Gewichte des Produktionsendpunkts, sodass sie die neue Version enthalten.
+ **Minimale Gewichtung** — Weisen Sie der neuen Revision eine Gewichtung von 1% auf dem Produktionsendpunkt zu. Dadurch wird ein kleiner Teil des Produktionsverkehrs an die neue Version weitergeleitet, sodass Sie Fehler mit minimaler Auswirkung auf den Kunden überwachen können.

Was passiert mit Revisionen, die nicht in den Gewichten der Revisionen enthalten sind?  
Eine Revision, die nicht in den Revisionsgewichten eines Endpunkts enthalten ist, empfängt keinen Datenverkehr von diesem Endpunkt. Ein anderer Endpunkt derselben Webfunktion kann immer noch zu ihm weiterleiten. Die Revision bleibt **aktiv**, bis Sie sie löschen oder bis sie bei der automatischen Bereinigung entfernt wird. Es wechselt zu **Fehlgeschlagen**, wenn Lambda den Zugriff auf sein Amazon S3 S3-Objekt verliert. Informationen zur automatischen Bereinigung finden Sie unter. [Revisionsgrenzen und automatische Bereinigung](web-functions-revisions.md#web-functions-revisions-limits)

Wie finde ich heraus, welche Version die neueste ist?  
Rufen Sie die Seite `ListWebFunctionRevisions` auf. In der Antwort werden die Versionen in absteigender Reihenfolge von aufgeführt`createdAt`, sodass die erste Revision in der Liste die neueste ist.

Kann ich einen Endpunkt löschen, während er Datenverkehr weiterleitet?  
Ja. Wenn Sie einen Endpunkt löschen, beendet Lambda die Weiterleitung neuer Anfragen an diesen Endpunkt, und Anfragen an den Domainnamen des Endpunkts werden zurückgewiesen, nachdem der Löschvorgang wirksam wird. Die Revisionen selbst sind davon nicht betroffen und können weiterhin von anderen Endpunkten verwendet werden.

Kann ich eine Revision löschen, während sie Traffic empfängt?  
Nein. Wenn ein Endpunkt Traffic an die Revision weiterleitet, auch wenn die `regionalEndpoints` Eigenschaft eines `MultiRegion` oder `PerRegion` -Endpunkts auf die Revision verweist, schlägt die `DeleteWebFunctionRevision` Anfrage mit einem Konfliktfehler fehl. Um die Revision zu löschen, aktualisieren Sie zunächst die Revisionsgewichte des Endpunkts, um ihn aus dem Datenverkehrsrouting auf allen Endpunkten zu entfernen, und löschen Sie ihn dann. Da Lambda das Löschen blockiert, solange einer Revision eine Gewichtung zugewiesen wurde, ändert das Löschen einer Revision niemals die Verkehrsverteilung eines Endpunkts.