

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.

# Durchführen sicherer Canary-Updates
<a name="performing-safe-canary-upgrades"></a>

CloudWatch Synthetics Safe Canary Updates ermöglicht es Ihnen, die Updates auf Ihren vorhandenen Canaries zu testen, bevor Sie die Änderungen anwenden. Mit diesem Feature können Sie die Kompatibilität von Canary mit neuen Laufzeiten und anderen Konfigurationsänderungen wie Code- oder Speicheränderungen überprüfen. Auf diese Weise können potenzielle Unterbrechungen der Überwachung, die durch fehlerhafte Updates verursacht werden, minimiert werden.

Indem Sie Canary-Safe-Updates für Updates von Laufzeitversionen, Konfigurationsänderungen und Codeskriptänderungen verwenden, können Sie Risiken minimieren, eine unterbrechungsfreie Überwachung aufrechterhalten, die Änderungen vor der Übernahme überprüfen, aktualisieren und Ausfallzeiten reduzieren.

**Topics**
+ [Voraussetzungen](#performing-safe-canary-upgrades-prereq)
+ [Best Practices](#performing-safe-canary-upgrades-best-practices)
+ [Testen von Canary mit Testlauf](#performing-safe-canary-upgrades-getting-started)
+ [Einschränkungen](#performing-safe-canary-upgrades-limitations)

## Voraussetzungen
<a name="performing-safe-canary-upgrades-prereq"></a>

Stellen Sie sicher, dass die Voraussetzungen erfüllt sind.
+ AWS Konto mit Synthetics-Berechtigungen CloudWatch 
+ Bestehender Canary auf den unterstützten Laufzeitversionen (Informationen zu kompatiblen Laufzeiten unter [Einschränkungen](#performing-safe-canary-upgrades-limitations))
+ Schließe kompatible Laufzeiten ein, wenn du einen Probelauf durchführst (Informationen zu kompatiblen Laufzeiten findest du unter [Einschränkungen](#performing-safe-canary-upgrades-limitations))

## Best Practices
<a name="performing-safe-canary-upgrades-best-practices"></a>

Im Folgenden finden Sie einige bewährte Methoden für die Durchführung eines Canarys.
+ Führen Sie einen Probelauf aus, um ein Laufzeit-Update zu validieren
+ Führen Sie Probeläufe durch, bevor Sie Produktions-Updates auf Canary durchführen
+ Überprüfen Sie Canary-Protokolle und Artefakte nach einem Testlauf
+ Verwenden Sie Testläufe, um Abhängigkeiten und Bibliothekskompatibilität zu überprüfen

## Testen von Canary mit Testlauf
<a name="performing-safe-canary-upgrades-getting-started"></a>

Sie können das Canary-Update mit den folgenden Optionen testen:

 **Verwenden des Workflows „ AWS-Managementkonsole's Edit“** 

1. Gehen Sie zur CloudWatch Synthetics-Konsole.

1. Wählen Sie den Canary aus, den Sie aktualisieren möchten.

1. Wählen Sie im Dropdown-Menü **Aktionen** die Option **Bearbeiten** aus.

   Aktualisieren Sie den Canary mit den Änderungen, die Sie testen möchten. Zum Beispiel die Änderung der Laufzeitversion oder die Bearbeitung des Codes des Skripts.

1. Wählen Sie unter **Canary-Skript** die Option **Testlauf starten**, um den Test sofort auszuführen und die Ergebnisse anzusehen, oder wählen Sie unten auf der Seite die Option **Validieren und später speichern**, um den Test zu starten und die Ergebnisse später auf Ihrer **Canary-Detailseite** anzusehen.

1. Wenn der Testlauf erfolgreich war, wählen Sie **Senden** aus, um Ihre Canary-Updates zu übernehmen.

 **Verwenden Sie das, AWS-Managementkonsole um die Kanaren stapelweise zu aktualisieren** 

1. Gehe zur CloudWatch Synthetics-Konsole.

1. Wählen Sie die Listenseite **Synthetics** aus.

1. Wählen Sie bis zu fünf Canarys aus, für die Sie die Laufzeit aktualisieren möchten.

1. Wählen Sie im Dropdown-Menü **Aktionen** die Option **Laufzeit aktualisieren** aus.

1. Wählen Sie **Testlauf für neue Laufzeit starten**, um den Testlauf zu starten und Ihre Änderungen vor einem Update zu testen.

1. Auf der **Synthetics-Listenseite** siehst du neben der **Runtime-Version** für den Canary einen Text, der den Fortschritt des Testlaufs anzeigt (dieser wird nur bei Testläufen angezeigt, die ein Runtime-Update beinhalten).

   Sobald der Testlauf erfolgreich war, wird der Text **Update initiieren** angezeigt.

1. Wählen Sie **Update initiieren**, um das Laufzeit-Update zu übernehmen.

1. Wenn der Testlauf fehlschlägt, wird der Text **Aktualisieren-Testlauf fehlgeschlagen** angezeigt. Wählen Sie den Text aus, um den Debug-Link zur Canary-Detailseite anzuzeigen.

 **Verwenden der AWS CLI oder des SDK** 

Die API startet den Testlauf für den angegebenen Canary-Namen `MyCanary` und aktualisiert die Laufzeit-Version auf `syn-nodejs-puppeteer-10.0`.

```
aws synthetics start-canary-dry-run \
    --name MyCanary \
    --runtime-version syn-nodejs-puppeteer-10.0
      
      // Or if you wanted to update other configurations:

aws synthetics start-canary-dry-run \
    --name MyCanary \
    --execution-role-arn arn:aws:iam::123456789012:role/NewRole
```

Die API gibt das `DryRunId` Innere von zurück`DryRunConfigOutput`.

Rufen Sie `GetCanary` mit der angegebenen `DryRunId` auf, um die Testlaufkonfigurationen des Canary sowie ein zusätzliches Feld `DryRunConfig` zu erhalten, das den Status des Testlaufs enthält, der als `LastDryRunExecutionStatus` aufgeführt ist.

```
aws synthetics get-canary \
    --name MyCanary \
    --dry-run-id XXXX-XXXX-XXXX-XXXX
```

Nutzen Sie für weitere Informationen `GetCanaryRuns` mit der bereitgestellten `DryRunId`, um die Ausführung und weitere Informationen abzurufen.

```
aws synthetics get-canary-runs \
    --name MyCanary \
    --dry-run-id XXXX-XXXX-XXXX-XXXX
```

Nach einem erfolgreichen Testlauf können Sie dann über `UpdateCanary` mit der bereitgestellten ` DryRunId` Ihre Änderungen übernehmen.

```
aws synthetics update-canary \
    --name MyCanary \
    --dry-run-id XXXX-XXXX-XXXX-XXXX
```

Wenn es aus irgendeinem Grund fehlschlägt (das Ergebnis von GetCanaryRuns enthält die Details), `GetCanaryRuns` hat das Ergebnis von einen Artefaktspeicherort, der Protokolle zum Debuggen enthält. Wenn keine Protokolle vorhanden sind, konnte der Testlauf nicht erstellt werden. Sie können dies über ` GetCanary` überprüfen.

```
aws synthetics get-canary \
    --name MyCanary \
    --dry-run-id XXXX-XXXX-XXXX-XXXX
```

Der *Status *StateReason**, und * StateReasonCode*zeigt den Status des Probelaufs an.

 **Verwenden CloudFormation** 

Geben Sie in Ihrer Vorlage für einen Synthetics Canary das Feld `DryRunAndUpdate` an, das den booleschen Wert `true` oder `false` akzeptiert.

wenn der Wert `true` ist, führt jedes Update einen Testlauf durch, um die Änderungen zu validieren, bevor der Canary automatisch aktualisiert wird. Wenn der Probelauf fehlschlägt, führt der Canary kein Update durch und schlägt die Bereitstellung und CloudFormation Bereitstellung mit einem triftigen Grund fehl. Um dieses Problem zu beheben, verwenden Sie die [AWS -Synthetics-Konsole](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Troubleshoot.html). Falls Sie eine API verwenden, rufen Sie die `ArtifactS3Location` über `GetCanaryRuns` ab und laden Sie die `*-log.txt`-Dateien herunter, um die Canary-Protokoll-Ausführungen auf Fehler zu überprüfen. Ändern Sie nach der Validierung die CloudFormation Vorlage und wiederholen Sie die Bereitstellung oder verwenden Sie die obige API zur Validierung.

Wenn der Wert `false` ist, führt Synthetics keinen Testlauf durch, um die Änderungen zu validieren, sondern überträgt Ihre Updates direkt.

Weitere Informationen zur Fehlerbehebung eines fehlgeschlagenen Canary finden Sie unter [Problembehandlung bei fehlgeschlagenem Canary](CloudWatch_Synthetics_Canaries_Troubleshoot.md).

Eine Beispielvorlage.

```
SyntheticsCanary:
    Type: 'AWS::Synthetics::Canary'
    Properties:
      Name: MyCanary
      RuntimeVersion: syn-nodejs-puppeteer-10.0
      Schedule: {Expression: 'rate(5 minutes)', DurationInSeconds: 3600}
      ...
      DryRunAndUpdate: true
```

## Einschränkungen
<a name="performing-safe-canary-upgrades-limitations"></a>
+ Unterstützt Runtime-Versionen — syn-nodejs-puppeteer -10.0\$1, syn-nodejs-playwright -2.0\$1, -5.1\$1 und syn-nodejs-3.0\$1 syn-python-selenium
+ Sie können jeweils nur einen Testlauf pro Canary ausführen
+ Wenn ein Testlauf fehlschlägt, können Sie den Canary nicht aktualisieren
+ Bei einem Testlauf können keine Änderungen im Feld **Zeitplan** getestet werden

**Anmerkung**  
Wenn Sie einen Testlauf mit Codeänderungen für einen Playwright-Canary starten und den Canary aktualisieren möchten, ohne die zugehörige `DryRunId` bereitzustellen, müssen Sie die Codeparameter explizit angeben.