Verwenden von Canary-Vorlagen - Amazon CloudWatch

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.

Verwenden von Canary-Vorlagen

Dieser Abschnitt enthält Details zu den jeweiligen Canary-Vorlagen und zu den Aufgaben, für die jede Vorlage am besten geeignet ist. Vorlagen werden für die folgenden Canary-Arten bereitgestellt:

  • Heartbeat-Überwachung

  • APIKanarisch

  • Broken Link Checker

  • Visuelle Überwachung

  • Canary-Recorder

  • GUI-Workflow

Wenn Sie einen Blueprint verwenden, um einen Canary zu erstellen, wird beim Ausfüllen der Felder in der CloudWatch Konsole im Skript-Editor-Bereich der Seite der Canary, den Sie erstellen, als Node.js -Skript angezeigt. Sie können Ihr Canary in diesem Bereich auch bearbeiten, um es weiter anzupassen.

Heartbeat-Überwachung

Heartbeat-Skripte laden die angegebenen Dateien URL und speichern einen Screenshot der Seite und eine HTTP Archivdatei (Datei). HAR Sie speichern auch Protokolle der Zugriffe. URLs

Sie können die HAR Dateien verwenden, um detaillierte Leistungsdaten zu den Webseiten anzuzeigen. Sie können die Liste der Web-Anfragen analysieren und Performance-Probleme wie die Ladezeit für ein Element erfassen.

Wenn dein Canary die Runtime-Version syn-nodejs-puppeteer-3.1 oder eine neuere Version verwendet, kannst du den Heartbeat-Monitoring-Blueprint verwenden, um mehrere zu überwachen URLs und dir den Status, die Dauer, die zugehörigen Screenshots und die Fehlerursache für jeden einzelnen URL in der Schrittzusammenfassung des Canary-Run-Berichts anzusehen.

APICanary

APIKanarienvögel können die grundlegenden Lese- und Schreibfunktionen von a testen. REST API RESTsteht für Representational State Transfer und ist eine Reihe von Regeln, denen Entwickler bei der Erstellung eines folgen. API Eine dieser Regeln besagt, dass ein Link zu einem bestimmten Objekt ein Datenelement zurückgeben URL sollte.

Canaries kann mit allen Funktionen arbeiten APIs und alle Arten von Funktionen testen. Jeder Canary kann mehrere API Anrufe tätigen.

Auf Canaries, die eine Runtime-Version syn-nodejs-2.2 oder eine neuere Version verwenden, unterstützt der API Canary-Blueprint mehrstufige Canaries, die Ihre AS-Schritte überwachen. APIs HTTP Sie können mehrere Tests APIs in einem einzigen Canary durchführen. Bei jedem Schritt handelt es sich um eine separate Anfrage, die auf eine andere Anfrage zugreifenURL, unterschiedliche Header verwenden und nach unterschiedlichen Regeln festlegen kann, ob Header und Antworttexte erfasst werden. Indem Sie Kopfzeilen und Antworttext nicht erfassen, können Sie verhindern, dass sensible Daten aufgezeichnet werden.

Jede Anfrage in einem API Kanariensystem besteht aus den folgenden Informationen:

  • Der EndpunktURL, den Sie anfordern.

  • aus der method (Methode), d. h. die Art der Anforderung, die an den Server gesendet wird. RESTAPIsunterstützt GET (Lesen), POST (Schreiben), PUT (Aktualisieren), PATCH (Aktualisieren) und DELETE (Löschen) Operationen.

  • aus den headers (Headern), die Informationen sowohl für den Client als auch für den Server bereitstellen. Sie werden zur Authentifizierung und Bereitstellung von Informationen über den Body-Inhalt verwendet. Eine Liste der gültigen Header finden Sie unter HTTPHeader.

  • Die data (Daten) (oder der Body), die Informationen enthalten, die an den Server gesendet werden sollen. Dies wird nur fürPOST, PUTPATCH, oder DELETE Anfragen verwendet.

Der API Canary Blueprint unterstützt GET und verwendet POST Methoden. Wenn Sie diese Vorlage verwenden, müssen Sie Header angeben. Sie können z. B. die Authorization als Key (Schlüssel) angeben und die erforderlichen Autorisierungsdaten als Value (Wert) für diesen Schlüssel angeben.

Wenn Sie eine POST Anfrage testen, geben Sie im Datenfeld auch den Inhalt an, der veröffentlicht werden soll.

Integration mit API Gateway

Der API Blueprint ist in Amazon API Gateway integriert. Auf diese Weise können Sie ein API Gateway API und eine Stage aus demselben AWS Konto und derselben Region wie der Canary auswählen oder eine Swagger-Vorlage für die konto- und regionsübergreifende API Überwachung von Gateway hochladen. API Sie können dann die restlichen Details in der Konsole auswählen, um den Canary zu erstellen, anstatt sie von Grund auf neu einzugeben. Weitere Informationen zu API Gateway finden Sie unter Was ist Amazon API Gateway?

Verwenden Sie ein privates API

Sie können einen Canary erstellen, der einen privaten API in Amazon API Gateway verwendet. Weitere Informationen finden Sie unter Private API in Amazon API Gateway erstellen?

Der Broken Link Checker sammelt alle Links in demURL, mit dem Sie testen. document.getElementsByTagName('a') Er testet nur bis zu der von Ihnen angegebenen Anzahl von Links, und der Link URL selbst wird als erster Link gezählt. Wenn Sie beispielsweise alle Links auf einer Seite überprüfen möchten, die fünf Links enthält, müssen Sie angeben, dass das Canary sechs Links verfolgen soll.

Canarys für Broken Link Checker, die mit der syn-nodejs-2.0-beta-Laufzeit oder höher erstellt wurden, unterstützen die folgenden zusätzlichen Features:

  • Stellt einen Bericht bereit, der die überprüften Links, Statuscode, Fehlergrund (falls vorhanden) sowie Screenshots der Quell- und Zielseite enthält.

  • Wenn Sie Canary-Ergebnisse anzeigen, können Sie filtern, um nur die fehlerhaften Links anzuzeigen, und dann den Link basierend auf dem Grund des Fehlers beheben.

  • Diese Version erfasst für jeden Link kommentierte Quellseiten-Screenshots und hebt den Anker hervor, in dem der Link gefunden wurde. Ausgeblendete Komponenten werden nicht mit Anmerkungen versehen.

  • Sie können diese Version so konfigurieren, dass Screenshots von Quell- und Zielseiten, nur Quellseiten oder nur Zielseiten erfasst werden.

  • Diese Version behebt ein Problem in der früheren Version, bei dem das Canary-Skript nach dem ersten gebrochenen Link stoppt, selbst wenn mehr Links von der ersten Seite gescrapt werden.

Wenn Sie einen vorhandenen Canary mit syn-1.0 aktualisieren möchten, um die neue Laufzeit zu verwenden, müssen Sie den Canary löschen und neu erstellen. Durch das Aktualisieren eines vorhandenen Canarys auf die neue Laufzeitumgebung werden diese Features nicht verfügbar gemacht.

Ein Broken Link Checker Canary (Canary für fehlerhafte Links) erkennt die folgenden Arten von Verbindungsfehlern:

  • 404 Seite nicht gefunden

  • Ungültiger Hostname

  • SchlechtURL. Beispiel: Bei URL fehlt eine Klammer, es gibt zusätzliche Schrägstriche oder es wird das falsche Protokoll verwendet.

  • Ungültiger HTTP Antwortcode.

  • Der Hostserver gibt leere Antworten ohne Inhalt und ohne Antwortcode zurück.

  • Bei den HTTP Anfragen kommt es während des Kanarienlaufs ständig zu einem Timeout.

  • Der Host bricht immer wieder Verbindungen ab, weil er falsch konfiguriert oder überlastet ist.

Blueprint für die visuelle Überwachung

Der visuelle Monitoring-Blueprint enthält Code, um Screenshots, die während eines Canary-Laufs aufgenommen wurden, mit Screenshots zu vergleichen, die während eines Baseline-Canary-Laufs aufgenommen wurden. Wenn die Diskrepanz zwischen den beiden Screenshots einen Schwellenwert überschreitet, schlägt der Canary fehl. Die visuelle Überwachung wird auf Canaries unterstützt, auf denen syn-puppeteer-node-3.2 und höher ausgeführt wird. Es wird derzeit nicht in Canarys unterstützt, die Python und Selenium ausführen.

Der Blueprint für die visuelle Überwachung enthält die folgende Codezeile im Canary-Standardskript für Blueprints, die die visuelle Überwachung ermöglicht.

syntheticsConfiguration.withVisualCompareWithBaseRun(true);

Wenn der Canary zum ersten Mal erfolgreich ausgeführt wird, nachdem diese Zeile zum Skript hinzugefügt wurde, verwendet er die während dieser Ausführung erstellten Screenshots als Vergleichsbasis. Nach dem ersten Canary-Run kannst du die CloudWatch Konsole verwenden, um den Canary zu bearbeiten, um einen der folgenden Schritte auszuführen:

  • Legen Sie den nächsten Lauf des Canarys als neue Basislinie fest.

  • Zeichnen Sie Grenzen auf dem aktuellen Baseline-Screenshot, um Bereiche des Screenshots festzulegen, die bei visuellen Vergleichen ignoriert werden sollen.

  • Entfernen Sie einen Screenshot, der für die visuelle Überwachung verwendet wird.

Weitere Informationen zur Verwendung der CloudWatch Konsole zum Bearbeiten eines Canary finden Sie unterEinen Canary bearbeiten oder löschen.

Sie können den Canary-Run, der als Baseline verwendet wird, auch ändern, indem Sie die lastrun Parameter nextrun oder verwenden oder eine Canary-Run-ID in der UpdateCanaryAPIangeben.

Wenn Sie den Blueprint für die visuelle Überwachung verwenden, geben Sie den URL Ort ein, an dem der Screenshot aufgenommen werden soll, und geben einen Differenzschwellenwert in Prozent an. Nach dem Baseline-Lauf lösen zukünftige Läufe des Canary, die einen visuellen Unterschied größer als dieser Schwellenwert erkennen, einen Canary-Fehler aus. Nach dem Baseline-Lauf können Sie den Canary auch bearbeiten, um Grenzen auf dem Baseline-Screenshot zu „zeichnen“, die Sie während der visuellen Überwachung ignorieren möchten.

Die Funktion zur visuellen Überwachung basiert auf dem ImageMagick Open-Source-Software-Toolkit. Weitere Informationen finden Sie unter ImageMagick.

Canary-Recorder

Mit dem Canary Recorder-Blueprint können Sie den CloudWatch Synthetics Recorder verwenden, um Ihre Klick- und Tippaktionen auf einer Website aufzuzeichnen und automatisch ein Node.js -Skript zu generieren, mit dem Sie einen Canary erstellen können, der dieselben Schritte ausführt. Der CloudWatch Synthetics Recorder ist eine von Amazon bereitgestellte Google Chrome-Erweiterung.

Credits: Der CloudWatch Synthetics Recorder basiert auf dem Headless Recorder.

Weitere Informationen finden Sie unter Verwenden des CloudWatch Synthetics Recorders für Google Chrome.

GUIWorkflow-Builder

Der GUI Workflow Builder-Blueprint überprüft, ob auf Ihrer Webseite Aktionen ausgeführt werden können. Wenn Sie zum Beispiel eine Webseite mit einem Anmeldeformular haben, kann das Canary die Benutzer- und Passwortfelder ausfüllen und das Formular abschicken, um zu überprüfen, ob die Webseite ordnungsgemäß funktioniert.

Wenn Sie eine Vorlage verwenden, um diesen Typ von Canary zu erstellen, geben Sie die Aktionen an, die das Canary auf der Webseite ausführen soll. Folgende Aktionen können Sie verwenden:

  • Click (Klicken) – Wählt das von Ihnen angegebene Element aus und simuliert einen Benutzer, der auf das Element klickt oder es auswählt.

    Um das Element in einem Skript „Node.js“ anzugeben, verwenden Sie [id=] oder a[class=].

    Um das Element in einem Python-Skript anzugeben, verwenden Sie xpath //*[@id=] oder //*[@class=].

  • Verify selector (Auswahl überprüfen) – Überprüft, ob das angegebene Element auf der Webseite vorhanden ist. Dieser Test ist nützlich, um zu überprüfen, ob eine vorherige Aktion dazu geführt hat, dass die Seite mit den richtigen Elementen ausgefüllt wird.

    Um das zu verifizierende Element in einem Skript „Node.js“ anzugeben, verwenden Sie [id=] oder a[class=].

    Um das zu überprüfende Element in einem Python-Skript anzugeben, verwenden Sie xpath //*[@id=] oder //*[class=].

  • Verify text (Text überprüfen) – Überprüft, ob die angegebene Zeichenfolge im Zielelement enthalten ist. Dieser Test ist nützlich, um zu überprüfen, ob eine vorherige Aktion dazu geführt hat, dass der richtige Text angezeigt wird.

    Um das Element in einem Node.js-Skript anzugeben, verwenden Sie ein Format wie div[@id=]//h1, da diese Aktion die waitForXPath-Funktion in Puppeteer verwendet.

    Um das Element in einem Python-Skript anzugeben, verwenden Sie das xpath-Format wie //*[@id=] oder //*[@class=], da diese Aktion die implicitly_wait-Funktion in Selenium verwendet.

  • Input text (Eingabetext) – Schreibt den angegebenen Text in das Zielelement.

    Um das zu verifizierende Element in einem Skript „Node.js“ anzugeben, verwenden Sie [id=] oder a[class=].

    Um das zu überprüfende Element in einem Python-Skript anzugeben, verwenden Sie xpath //*[@id=] oder //*[@class=].

  • Click with navigation (Klicken bei Navigation) – Wartet auf das Laden der gesamten Seite, nachdem das angegebene Element ausgewählt wurde. Dies ist besonders nützlich, wenn Sie die Seite neu laden müssen.

    Um das Element in einem Skript „Node.js“ anzugeben, verwenden Sie [id=] oder a[class=].

    Um das Element in einem Python-Skript anzugeben, verwenden Sie xpath //*[@id=] oder //*[@class=].

Der folgende Blueprint verwendet beispielsweise Node.js. Er klickt firstButtonauf das angegebene ObjektURL, überprüft, ob der erwartete Selektor mit dem erwarteten Text angezeigt wird, gibt den Namen Test_Customer in das Feld Name ein, klickt auf die Anmeldeschaltfläche und überprüft dann, ob die Anmeldung erfolgreich war, indem er auf der nächsten Seite nach dem Willkommenstext sucht.

Die Seite „Canary Create Canary“ in der Konsole mit ausgefüllten Feldern für den GUI Workflow-Blueprint.

GUIWorkflow-Kanarien, die die folgenden Runtimes verwenden, bieten auch eine Zusammenfassung der Schritte, die für jeden Canary-Lauf ausgeführt wurden. Sie können die Screenshots und die Fehlermeldung, die jedem Schritt zugeordnet sind, verwenden, um die Ursache des Fehlers zu finden.

  • syn-nodejs-2.0 oder höher

  • syn-python-selenium-1.0 oder höher