Antwortdaten prüfen

In diesem Dokument wird beschrieben, wie Sie eine Verfügbarkeitsdiagnose konfigurieren, um den HTTP-Antwortcode und die von einer geprüften Ressource gesendeten Antwortdaten zu validieren. Standardmäßig wird bei HTTP-Verfügbarkeitsdiagnosen geprüft, ob der Antwortcode 2xx ist. Außerdem werden die Antwortdaten standardmäßig nicht validiert. Sie können diese Einstellungen jedoch ändern. Sie können beispielsweise eine HTTP-Verfügbarkeitsdiagnose so konfigurieren, dass die Antwortcodes 2xx und 3xx akzeptiert werden. Für alle Verfügbarkeitsdiagnosen können Sie einen Wert angeben, den die Antwortdaten enthalten müssen oder nicht enthalten dürfen, damit die Verfügbarkeitsdiagnose erfolgreich ist.

Diese Funktion wird nur für Google Cloud -Projekte unterstützt. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.

Antwortdaten validieren

Sie können Cloud Monitoring so konfigurieren, dass die Antwortdaten einer geprüften Ressource validiert werden, wenn Sie eine Verfügbarkeitsdiagnose erstellen oder bearbeiten.

Google Cloud Console

So erstellen Sie eine Verfügbarkeitsdiagnose, mit der die Antwortdaten validiert werden:

  1. Rufen Sie in der Google Cloud Console die Seite Uptime-Prüfungen  auf:

    Verfügbarkeitsdiagnosen aufrufen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wählen Sie in der Symbolleiste der Google Cloud Console Ihr Google Cloud -Projekt aus. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
  3. Klicken Sie auf Verfügbarkeitsdiagnose erstellen.
  4. Geben Sie einen Titel ein und klicken Sie auf Weiter.
  5. Geben Sie das Ziel ein und klicken Sie auf Weiter.
  6. Konfigurieren Sie die Antwortvalidierung:

    • Wenn Sie die Antwortdaten validieren möchten, muss Content-Abgleich ist aktiviert angezeigt werden. Füllen Sie dann die Felder zur Antwortvalidierung aus. Informationen zu diesen Optionen finden Sie im nächsten Abschnitt dieses Dokuments.
    • Konfigurieren Sie für die HTTP-Verfügbarkeitsdiagnosen die zulässigen Antwortcodes. Standardmäßig werden bei HTTP-Verfügbarkeitsdiagnosen alle 2xx-Antworten als erfolgreiche Antworten markiert.
  7. Klicken Sie auf Weiter und schließen Sie die Konfiguration der Uptime-Prüfung ab.

Cloud Monitoring API

Wenn Sie eine Verfügbarkeitsdiagnose konfigurieren möchten, um die Antwortdaten zu validieren, füllen Sie das contentMatchers-Array des UptimeCheckConfig-Objekts aus.

ContentMatcher-Objekte enthalten die folgenden Felder:

  • matcher: Beschreibt, wie der Vergleich durchgeführt wird. Eine Liste der Werte finden Sie unter ContentMatcherOption.

    Verwenden Sie nicht den Wert CONTENT_MATCHER_OPTION_UNSPECIFIED.

  • content: Speichert den Wert, nach dem in den Antwortdaten gesucht werden soll. Der Wert ist ein Stringliteral oder ein regulärer Ausdruck.

  • jsonPathMatcher: Speichert ein JsonPathMatcher-Objekt, das beschreibt, nach welchem JSON-Pfad gesucht werden soll und wie der Vergleich durchgeführt werden soll.

    Lassen Sie dieses Feld weg, es sei denn, bei der Verfügbarkeitsdiagnose wird ein bestimmter JSON-Pfad validiert.

Im Rest dieses Dokuments wird beschrieben, wie Sie die Optionen für den Inhalt-Abgleich verwenden.

Optionen zum Validieren der Antwortdaten

In diesem Abschnitt werden die Strategien für den String-Abgleich beschrieben, mit denen Sie die Antwort einer geprüften Ressource validieren können. Für jede Strategie geben Sie einen Wert an und legen fest, ob die Verfügbarkeitsdiagnose bestanden oder fehlgeschlagen ist, wenn dieser Wert in den Antwortdaten gefunden wird.

Es wird möglicherweise nicht die gesamte Antwort einer geprüften Ressource durchsucht:

  • HTTP- und HTTPS-Verfügbarkeitsdiagnosen: Die ersten 4 MB werden durchsucht.
  • TCP-Verfügbarkeitsdiagnosen: Die ersten 1 MB werden durchsucht.

Nach einem wörtlichen Teilstring suchen

Google Cloud Console

So konfigurieren Sie die Verfügbarkeitsdiagnose so, dass sie bestanden wird, wenn die Antwortdaten einen Literal-Teilstring enthalten:

  1. Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Enthält aus.
  2. Geben Sie den Literal-Teilstring in das Feld Antwortinhalt ein.
  3. Klicken Sie auf Test, um die Konfiguration zu prüfen.

Wenn die Verfügbarkeitsdiagnose fehlschlagen soll, wenn die Antwortdaten eine bestimmte Teilzeichenfolge enthalten, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Enthält nicht aus.
  2. Geben Sie den Literal-Teilstring in das Feld Antwortinhalt ein.
  3. Klicken Sie auf Test, um die Konfiguration zu prüfen.

Cloud Monitoring API

Wenn der Uptime-Check bestanden werden soll, wenn die Antwortdaten einen Literal-Teilstring enthalten, verwenden Sie die folgenden Werte:

...
"contentMatchers": [
    {
      "content": "Set to the string to be matched.",
      "matcher": "CONTAINS_STRING"
    }
],
...

Wenn der Uptime-Check fehlschlagen soll, wenn die Antwortdaten einen Literal-Teilstring enthalten, verwenden Sie die folgenden Werte:

...
"contentMatchers": [
    {
      "content": "Set to the string to be matched.",
      "matcher": "NOT_CONTAINS_STRING"
    }
],
...

In der folgenden Tabelle sehen Sie den Status der Verfügbarkeitsdiagnose für verschiedene Antwortdaten, Teststrings und Testtypen:

Status der Verfügbarkeitsdiagnose       
Antwortdaten Test string Enthält Enthält nicht
abcd abcd pass Nicht bestanden
abc abcd Nicht bestanden pass
abc a pass Nicht bestanden
Uptime Checks Uptime pass Nicht bestanden
Uptime Checks uptime Nicht bestanden pass

In der vorherigen Tabelle wird in der Spalte Antwortdaten beschrieben, welche Daten von der geprüften Ressource zurückgegeben werden, und in der Spalte Teststring wird das Stringliteral aufgeführt. In den nächsten beiden Spalten werden der Typ des Tests und das Ergebnis der Verfügbarkeitsprüfung angegeben.

Mit einem regulären Ausdruck suchen

Google Cloud Console

Wenn die Verfügbarkeitsdiagnose erfolgreich sein soll, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt mit dem Regex überein aus.
  2. Geben Sie im Feld Antwortinhalt einen regulären Ausdruck ein.
  3. Klicken Sie auf Test, um die Konfiguration zu prüfen.

Wenn die Verfügbarkeitsdiagnose fehlschlagen soll, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt nicht mit dem regulären Ausdruck überein aus.
  2. Geben Sie im Feld Antwortinhalt einen regulären Ausdruck ein.
  3. Klicken Sie auf Test, um die Konfiguration zu prüfen.

Cloud Monitoring API

Wenn der Uptime-Check bestanden werden soll, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Werte:

...
"contentMatchers": [
    {
      "content": "Set to the regular expression to be matched.",
      "matcher": "MATCHES_REGEX"
    }
],
...

Verwenden Sie die folgenden Werte, um den Uptime-Check so zu konfigurieren, dass er fehlschlägt, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen:

...
"contentMatchers": [
    {
      "content": "Set to the regular expression to be matched.",
      "matcher": "NOT_MATCHES_REGEX"
    }
],
...

In der folgenden Tabelle sehen Sie den Status der Verfügbarkeitsdiagnose für verschiedene Antwortdaten, reguläre Ausdrücke und Testtypen:

Status der Verfügbarkeitsdiagnose       
Antwortdaten Regex Stimmt mit dem Regex überein Stimmt nicht mit dem Regex überein
abcd abcd pass Nicht bestanden
Uptime Checks [uU]ptime pass Nicht bestanden
Uptime Checks [a-z]{6} Nicht bestanden pass
Uptime Checks [a-zA-Z]{6} pass Nicht bestanden

In der vorherigen Tabelle wird in der Spalte Antwortdaten beschrieben, welche Daten von der geprüften Ressource zurückgegeben werden, und in der Spalte Regulärer Ausdruck wird der reguläre Ausdruck aufgeführt. In den nächsten beiden Spalten werden der Typ des Tests und das Ergebnis der Verfügbarkeitsprüfung angegeben.

In einem bestimmten Feld in einer JSON-Antwort suchen

Sie können eine Verfügbarkeitsdiagnose so konfigurieren, dass ein JSONPath validiert wird. Wenn Sie einen JSONPath-Test auswählen, wird ein Pfadwert mit einer Zahl, einem Stringliteral oder einem regulären Ausdruck verglichen:

Wenn Sie einen JSONPath angeben, müssen Sie das Stammobjekt mit $. angeben und dann eine bestimmte Feldkennung angeben. Wenn die JSON-Antwort ein Array von Elementen enthält, verwenden Sie Klammern ([]), um das spezifische Array-Element zu identifizieren, das abgeglichen werden soll. Die folgenden Beispiele veranschaulichen die Pfadsyntax:

  • $.type stimmt mit dem Feld type eines Stammobjekts überein.
  • $.[0].address.city entspricht dem Feld city im Objekt address, das im ersten Array-Element der JSON-Antwort gespeichert ist.
  • $.content[0].phone entspricht dem Feld phone des ersten Array-Elements des Felds content. Das Feld content ist ein untergeordnetes Element des Stammobjekts.

Sie können einen Uptime-Test so konfigurieren, dass er mit mehreren Feldern übereinstimmt. Betrachten Sie das folgende JSON:

[
  {
    ...
    "address": {
      ...
      "city": "Gwenborough",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
  },
  ...
]

Wenn Sie den gesamten Pfad des Felds geo im ersten Array-Element abgleichen möchten, legen Sie den JSONPath auf $.[0].address.geo fest und geben Sie den vollständigen Wert in das Inhaltsfeld ein:

{
  "lat": "-37.3159",
  "lng": "81.1496"
}

Wenn Sie diese Optionen ausprobieren möchten, suchen Sie eine öffentliche Website, die eine JSON-Antwort zurückgibt.

JSONPath mit einer Zahl oder einem String-Literal vergleichen

Google Cloud Console

Wenn die Verfügbarkeitsdiagnose erfolgreich sein soll, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem Stringliteral übereinstimmt, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt mit JSONPath überein aus.
  2. Geben Sie den Pfad in das Feld JSONPath ein.
  3. Geben Sie die Zahl oder das Stringliteral in das Feld Antwortinhalt ein.
  4. Klicken Sie auf Test, um die Konfiguration zu prüfen.

Wenn die Verfügbarkeitsdiagnose fehlschlagen soll, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem Stringliteral übereinstimmt, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt nicht mit JSONPath überein aus.
  2. Geben Sie den Pfad in das Feld JSONPath ein.
  3. Geben Sie die Zahl oder das Stringliteral in das Feld Antwortinhalt ein.
  4. Klicken Sie auf Test, um die Konfiguration zu prüfen.

Cloud Monitoring API

Wenn der Uptime-Check bestanden werden soll, wenn ein bestimmtes Feld in der JSON-formatierten Antwort mit einer Zahl oder einem Stringliteral übereinstimmt, verwenden Sie die folgenden Werte für das ContentMatcher-Objekt:

...
"contentMatchers": [
    {
       "content" : "Set to a number, a boolean, or the string to be matched.",
       "matcher" : "MATCHES_JSON_PATH",
       "jsonPathMatcher" : {
           "jsonPath" : "Set to the JSONpath.",
           "jsonMatcher" : "EXACT_MATCH"
    }
],
...

Wenn der Uptime-Check fehlschlagen soll, wenn ein bestimmtes Feld in der JSON-formatierten Antwort mit einer Zahl oder einem String-Literal übereinstimmt, verwenden Sie die folgenden Werte für das ContentMatcher-Objekt:

...
"contentMatchers": [
    {
       "content" : "Set to a number, a boolean, or the string to be matched.",
       "matcher" : "NOT_MATCHES_JSON_PATH",
       "jsonPathMatcher" : {
           "jsonPath" : "Set to the JSONpath.",
           "jsonMatcher" : "EXACT_MATCH"
    }
],
...

Um zu veranschaulichen, wie die JSONPath-String-Abgleichstests funktionieren, sehen Sie sich die folgenden JSON-Antwortdaten an:

{
    "name": "Sample Uptime Check",
    "type": "JSONpath",
    "content": [
        {
            "id": 1,
            "phone": "1234567890",
            "alias": "Exact",
            "enabled": true,
        },
        {
            "id": 2,
            "phone": "1234512345",
            "alias": "Regex",
            "enabled": false,
        }
    ]
}

In der folgenden Tabelle sehen Sie den Status des Uptime-Checks der vorherigen Antwort für verschiedene Pfade, Testwerte und Testtypen:

Status der Verfügbarkeitsdiagnose       
JSONpath Testwert JSONPath-Übereinstimmungen JSONPath stimmt nicht überein
$.type "JSONpath" pass Nicht bestanden
$.name "Sample" Nicht bestanden pass
$.name "Sample Uptime Check" pass Nicht bestanden
$.content[0].id 1 pass Nicht bestanden
$.content[0].alias "Exact" pass Nicht bestanden
$.content[0].enabled true pass Nicht bestanden

In der vorherigen Tabelle wird in der Spalte JSONpath angegeben, welches Element getestet werden soll, und in der Spalte Test value wird der Wert aufgeführt. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsprüfung angegeben.

JSONPath mit einem regulären Ausdruck vergleichen

Bei regulären Ausdrücken können Strings, Zahlen, boolesche Werte und JSON-Nullwerte abgeglichen werden.

Google Cloud Console

Wenn die Verfügbarkeitsdiagnose erfolgreich sein soll, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem regulären Ausdruck übereinstimmt, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt mit JSONPath überein aus.
  2. Geben Sie den Pfad in das Feld JSONPath ein.
  3. Geben Sie den regulären Ausdruck in das Feld Antwortinhalt ein.
  4. Klicken Sie auf Test, um die Konfiguration zu prüfen.

Wenn die Verfügbarkeitsdiagnose fehlschlagen soll, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem regulären Ausdruck übereinstimmt, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt nicht mit JSONPath überein aus.
  2. Geben Sie den Pfad in das Feld JSONPath ein.
  3. Geben Sie den regulären Ausdruck in das Feld Antwortinhalt ein.
  4. Klicken Sie auf Test, um die Konfiguration zu prüfen.

Cloud Monitoring API

Wenn der Uptime-Check bestanden werden soll, wenn ein bestimmtes Feld in der JSON-formatierten Antwort mit einem regulären Ausdruck übereinstimmt, verwenden Sie die folgenden Werte für das ContentMatcher-Objekt:

...
"contentMatchers": [
    {
       "content" : "Set to the regular expression to be matched."
       "matcher" : "MATCHES_JSON_PATH",
       "jsonPathMatcher" : {
           "jsonPath" : "Set to the JSONpath.",
           "jsonMatcher" : "REGEX_MATCH"
    }
],
...

Wenn der Uptime-Check fehlschlagen soll, wenn ein bestimmtes Feld in der JSON-formatierten Antwort mit einem regulären Ausdruck übereinstimmt, verwenden Sie die folgenden Werte für das ContentMatcher-Objekt:

...
"contentMatchers": [
    {
       "content" : "Set to the regular expression to be matched.",
       "matcher" : "NOT_MATCHES_JSON_PATH",
       "jsonPathMatcher" : {
           "jsonPath" : "Set to the JSONpath.",
           "jsonMatcher" : "REGEX_MATCH"
    }
],
...

Zur Veranschaulichung der Funktionsweise der JSONPath-Tests mit regulären Ausdrücken betrachten Sie die folgenden JSON-Antwortdaten:

{
    "name": "Sample Uptime Check",
    "type": "JSONpath",
    "content": [
        {
            "id": 1,
            "phone": "1234567890",
            "alias": "Exact",
            "enabled": true,
        },
        {
            "id": 2,
            "phone": "1234512345",
            "alias": "Regex",
            "enabled": false,
        }
    ]
}

In der folgenden Tabelle sehen Sie den Status der Verfügbarkeitsdiagnose für die vorherige Antwort, aber für verschiedene Pfade, reguläre Ausdrücke und Testtypen:

Status der Verfügbarkeitsdiagnose       
JSONpath Regex JSONPath stimmt mit dem regulären Ausdruck überein JSONPath stimmt nicht mit dem regulären Ausdruck überein
$.type [A-Z]{4}Path pass Nicht bestanden
$.name Sample Nicht bestanden pass
$.name .*Sample.* pass Nicht bestanden
$.content[1].id 2 pass Nicht bestanden
$.content[1].phone "[12345]{2}" pass Nicht bestanden
$.content[1].enabled f.* pass Nicht bestanden

In der vorherigen Tabelle wird in der Spalte JSONpath angegeben, welches Element getestet werden soll, und in der Spalte Regex wird der reguläre Ausdruck aufgeführt. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsprüfung angegeben.

Nächste Schritte