Antwortdaten validieren

In diesem Dokument wird beschrieben, wie Sie eine Verfügbarkeitsdiagnose konfigurieren, um die HTTP-Antwortcode und die Antwortdaten, die von einer geprüften Ressource gesendet werden. Von HTTP-Verfügbarkeitsdiagnosen überprüfen standardmäßig, ob der Antwortcode 2xx lautet. Außerdem werden die Antwortdaten nicht validiert. Sie können diese Einstellungen. Sie können beispielsweise eine HTTP-Verfügbarkeitsdiagnose konfigurieren, um 2xx- und 3xx-Antwortcodes. Für alle Verfügbarkeitsdiagnosen können Sie einen Wert angeben, die für eine erfolgreiche Verfügbarkeitsdiagnose enthalten sein müssen oder nicht.

So validieren Sie die Antwortdaten

Sie können Cloud Monitoring so konfigurieren, dass die Antwortdaten von eine geprüfte Ressource, wenn Sie eine Verfügbarkeitsdiagnose erstellen oder bearbeiten.

Google Cloud Console

Um eine Verfügbarkeitsdiagnose zu erstellen, die die erhalten Sie Folgendes:

  1. Rufen Sie in der Google Cloud Console die Seite  Verfügbarkeitsdiagnosen auf:

    Verfügbarkeitsdiagnosen aufrufen

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

  2. Klicken Sie auf Verfügbarkeitsdiagnose erstellen.
  3. Geben Sie einen Titel ein und klicken Sie auf Weiter.
  4. Geben Sie das Ziel ein und klicken Sie auf Weiter.
  5. Konfigurieren Sie die Antwortvalidierung:

    • Achten Sie darauf, dass der Inhaltsabgleich aktiviert ist, um die Antwortdaten zu validieren. angezeigt wird. Füllen Sie dann die Felder aus, die sich auf die Antwortvalidierung beziehen. Informationen zu diesen Optionen finden Sie im nächsten Abschnitt dieser Dokument.
    • Konfigurieren Sie für die HTTP-Verfügbarkeitsdiagnosen die zulässigen Antwortcodes. Standardmäßig markieren HTTP-Verfügbarkeitsdiagnosen alle 2xx-Antwort als erfolgreiche Antwort.
  6. Klicken Sie auf Weiter und schließen Sie die Konfiguration der Verfügbarkeitsdiagnose ab.

Cloud Monitoring API

So konfigurieren Sie eine Verfügbarkeitsdiagnose zur Validierung der Antwortdaten: das Array contentMatchers des Objekt UptimeCheckConfig.

ContentMatcher Objekte die folgenden Felder enthalten:

  • 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 zu suchenden Wert in den Antwortdaten. Die value ist ein String-Literal oder ein regulärer Ausdruck.

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

    Lassen Sie dieses Feld aus, es sei denn, die Verfügbarkeitsdiagnose prüft eine JSON-Pfad.

Im weiteren Verlauf dieses Dokuments wird beschrieben, wie der Inhaltsabgleich verwendet wird. Optionen.

Optionen zum Validieren der Antwortdaten

In diesem Abschnitt werden die Strategien für den String-Abgleich beschrieben, die Sie wird verwendet, um die von einer geprüften Ressource gesendete Antwort zu validieren. Für jede Strategie geben Sie einen Wert an und ob Sie diesen Wert in den Antwortdaten finden ob die Verfügbarkeitsdiagnose bestanden oder fehlschlägt.

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

  • HTTP- und HTTPS-Verfügbarkeitsdiagnosen: Die erste 4 MB werden durchsucht.
  • TCP-Verfügbarkeitsdiagnosen: Das erste MB wird durchsucht.

Nach einem literalen Teilstring suchen

Google Cloud Console

So konfigurieren Sie die Verfügbarkeitsdiagnose für bestanden, wenn die Antwortdaten eine literalen Teilstring haben, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Enthält aus.
  2. Geben Sie den literalen Teilstring in das Feld Antwortinhalt ein.
  3. Klicken Sie auf Testen, um die Konfiguration zu prüfen.

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn die Antwortdaten eine literalen Teilstring enthalten ist, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Enthält nicht aus.
  2. Geben Sie den literalen Teilstring in das Feld Antwortinhalt ein.
  3. Klicken Sie auf Testen, um die Konfiguration zu prüfen.

Cloud Monitoring API

So konfigurieren Sie die Verfügbarkeitsdiagnose für bestanden, wenn die Antwortdaten eine literalen Teilstring haben, verwenden Sie die folgenden Werte:

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

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn die Antwortdaten eine literalen Teilstring haben, 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 werden in der Spalte Antwortdaten die Daten der von der geprüften Ressource zurückgegeben wird, während in der Spalte Test string String-Literal. In den nächsten beiden Spalten werden der Testtyp und die Ergebnis der Verfügbarkeitsdiagnose.

Mit einem regulären Ausdruck suchen

Google Cloud Console

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn die Antwortdaten übereinstimmen reguläre Ausdrücke enthalten, verwenden Sie die folgenden Einstellungen:

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

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn die Antwortdaten übereinstimmen reguläre Ausdrücke enthalten, verwenden Sie die folgenden Einstellungen:

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

Cloud Monitoring API

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn die Antwortdaten übereinstimmen einen regulären Ausdruck verwenden, verwenden Sie die folgenden Werte:

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

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn die Antwortdaten übereinstimmen einen regulären Ausdruck verwenden, verwenden Sie die folgenden Werte:

...
"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 werden in der Spalte Antwortdaten die Daten die von der geprüften Ressource zurückgegeben wird, während die Spalte Regex die regulärer Ausdruck. In den nächsten beiden Spalten werden der Testtyp und die Ergebnis der Verfügbarkeitsdiagnose.

In einem bestimmten Feld in einer JSON-Antwort suchen

Sie können eine Verfügbarkeitsdiagnose konfigurieren, um einen JSON-Pfad zu validieren. Wenn Sie einem JSONPath-Test vergleicht der Test einen Pfadwert mit einer Zahl, einem String-Literal, oder zu einem regulären Ausdruck hinzufügen:

Wenn Sie einen JSON-Pfad angeben, müssen Sie das Stammobjekt mit $. und gefolgt von einer bestimmten Feldkennung. Wenn die JSON-Antwort enthält ein Array mit Elementen. Verwenden Sie Klammern ([]), um die Array-Element verwendet, das abgeglichen werden soll. Die folgenden Beispiele veranschaulichen die Pfadsyntax:

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

Sie können einen Verfügbarkeitstest so konfigurieren, dass mehrere Felder abgeglichen werden. Berücksichtigen Sie die folgende JSON-Datei:

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

Um den gesamten Pfad des Felds geo im ersten Array-Element abzugleichen, den JSONpath auf $.[0].address.geo setzen und den vollständigen Wert eingeben im Feld „Inhalt“ ein:

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

Wenn Sie diese Optionen ausprobieren möchten, suchen Sie nach einer öffentlichen die eine JSON-Antwort zurückgibt. Beispiel: Siehe JSON-Test.

JSONpath mit einer Zahl oder einem Stringliteral vergleichen

Google Cloud Console

So konfigurieren Sie die Verfügbarkeitsdiagnose so, dass sie bestanden wird, wenn ein bestimmter JSONpath im verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Übereinstimmungen bei JSONPath 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 Testen, um die Konfiguration zu prüfen.

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn ein bestimmter JSONpath im verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Stimmt nicht überein bei JSONPath 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 Testen, um die Konfiguration zu prüfen.

Cloud Monitoring API

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn ein bestimmtes Feld in der Die JSON-formatierte Antwort stimmt mit einer Zahl oder einem Stringliteral überein, Verwenden Sie für das Objekt ContentMatcher die folgenden Werte:

...
"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"
    }
],
...

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn ein bestimmtes Feld in der Die JSON-formatierte Antwort stimmt mit einer Zahl oder einem Stringliteral überein, Verwenden Sie für das Objekt ContentMatcher die folgenden Werte:

...
"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 die Funktionsweise der JSONPath-String-Übereinstimmungstests zu veranschaulichen, 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 aus der vorherigen Antwort. aber für unterschiedliche Pfade, Testwerte und Testtypen:

Status der Verfügbarkeitsdiagnose       
JSONpath Testwert JSONPath-Übereinstimmungen JSON-Pfad 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 gibt die Spalte JSONpath an, welches Element Test und die Spalte Testwert enthält den Wert. Die nächsten beiden Spalten den Testtyp und das Ergebnis der Verfügbarkeitsdiagnose an.

JSON-Pfad mit einem regulären Ausdruck vergleichen

Übereinstimmungen mit regulären Ausdrücken unterstützen den Abgleich mit einem String, einer Zahl, einem booleschen Wert und Nullwerte in JSON.

Google Cloud Console

So konfigurieren Sie die Verfügbarkeitsdiagnose so, dass sie bestanden wird, wenn ein bestimmter JSONpath im mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Übereinstimmungen bei JSONPath 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 Testen, um die Konfiguration zu prüfen.

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn ein bestimmter JSONpath im mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Einstellungen:

  1. Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Stimmt nicht mit JSONPath überein.
  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 Testen, um die Konfiguration zu prüfen.

Cloud Monitoring API

So konfigurieren Sie die Verfügbarkeitsdiagnose so, dass sie bestanden wird, wenn ein bestimmtes Feld in der Die Antwort im JSON-Format stimmt mit einem regulären Ausdruck überein. Verwenden Sie Folgendes: 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"
    }
],
...

Um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn ein bestimmtes Feld in der Die Antwort im JSON-Format stimmt mit einem regulären Ausdruck überein. Verwenden Sie Folgendes: 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"
    }
],
...

Um zu veranschaulichen, wie die Tests für reguläre Ausdrücke des JSON-Pfads funktionieren, 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 aus der vorherigen Antwort. aber für unterschiedliche Pfade, reguläre Ausdrücke und Testtypen:

Status der Verfügbarkeitsdiagnose       
JSONpath Regex JSON-Pfad stimmt mit regulärem Ausdruck überein JSON-Pfad stimmt nicht mit Regex ü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 gibt die Spalte JSONpath an, welches Element Test und die Spalte Regex enthält den regulären Ausdruck. Die nächsten beiden Spalten den Testtyp und das Ergebnis der Verfügbarkeitsdiagnose an.

Nächste Schritte