Valider les données de réponse

Ce document explique comment configurer un test de disponibilité pour valider Code de réponse HTTP et données de réponse envoyées par une ressource vérifiée. Par par défaut, les tests de disponibilité HTTP vérifient que le code de réponse est 2xx. Par ailleurs, par défaut, les données de réponse ne sont pas validées. Toutefois, vous pouvez modifier ces paramètres. Par exemple, vous pouvez configurer un test de disponibilité HTTP pour accepter Codes de réponse 2xx et 3xx. Pour tous les tests de disponibilité, vous pouvez spécifier une valeur que les données de réponse doivent ou ne doivent pas contenir pour que le test de disponibilité aboutisse.

Comment valider les données de réponse

Vous pouvez configurer Cloud Monitoring pour valider les données de réponse une ressource testée lorsque vous créez ou modifiez un test de disponibilité.

console Google Cloud

Pour créer un test de disponibilité qui valide données de réponse, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page  Tests de disponibilité:

    Accéder à la page Tests de disponibilité

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Cliquez sur Créer un test de disponibilité.
  3. Saisissez un titre, puis cliquez sur Suivant.
  4. Saisissez la cible et cliquez sur Suivant.
  5. Configurez la validation de réponse:

    • Pour valider les données de réponse, assurez-vous que la correspondance de contenu est activée. s'affiche, puis renseignez les champs liés à la validation de la réponse. Pour en savoir plus sur ces options, consultez la section suivante document.
    • Pour les tests de disponibilité HTTP, configurez les codes de réponse acceptables. Par défaut, les tests de disponibilité HTTP 2xx en tant que réponse positive.
  6. Cliquez sur Suivant et terminez la configuration du test de disponibilité.

API Cloud Monitoring

Pour configurer un test de disponibilité afin de valider les données de réponse, remplissez le tableau contentMatchers du objet UptimeCheckConfig.

Objets ContentMatcher contiennent les champs suivants:

  • matcher: décrit comment la comparaison est effectuée. Pour obtenir la liste des valeurs, consultez ContentMatcherOption.

    N'utilisez pas la valeur CONTENT_MATCHER_OPTION_UNSPECIFIED.

  • content: stocke la valeur à rechercher dans les données de réponse. La valeur est un littéral de chaîne ou une expression régulière.

  • jsonPathMatcher: stocke un Un objet JsonPathMatcher qui décrit quel JSONpath rechercher et comment effectuer la comparaison.

    Omettez ce champ, sauf si le test de disponibilité valide JSONpath spécifique.

Le reste de ce document explique comment utiliser la fonction de correspondance de contenu options.

Options pour valider les données de réponse

Cette section décrit les stratégies de correspondance de chaîne que vous pouvez pour valider la réponse envoyée par une ressource vérifiée. Pour chaque stratégie, vous spécifiez une valeur et si vous la trouvez dans les données de réponse entraîne la réussite ou l'échec du test de disponibilité.

Il est possible que la réponse complète d'une ressource vérifiée ne fasse pas l'objet d'une recherche:

  • Tests de disponibilité HTTP et HTTPS: le premier La taille de la recherche est de 4 Mo.
  • Tests de disponibilité TCP: la recherche porte sur le premier Mo.

Rechercher une sous-chaîne littérale

console Google Cloud

Pour configurer le test de disponibilité afin qu'il soit réussi lorsque les données de réponse contiennent un une sous-chaîne littérale, utilisez les paramètres suivants:

  1. Sélectionnez Contient dans le menu Type de correspondance du contenu de la réponse.
  2. Saisissez la sous-chaîne littérale dans le champ Contenu de la réponse.
  3. Pour vérifier la configuration, cliquez sur Tester.

Pour configurer le test de disponibilité afin qu'il échoue lorsque les données de réponse contiennent un sous-chaîne littérale, utilisez les paramètres suivants:

  1. Sélectionnez Ne contient pas dans le menu Type de correspondance du contenu de la réponse.
  2. Saisissez la sous-chaîne littérale dans le champ Contenu de la réponse.
  3. Pour vérifier la configuration, cliquez sur Tester.

API Cloud Monitoring

Pour configurer le test de disponibilité afin qu'il soit réussi lorsque les données de réponse contiennent un une sous-chaîne littérale, utilisez les valeurs suivantes:

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

Pour configurer le test de disponibilité afin qu'il échoue lorsque les données de réponse contiennent un une sous-chaîne littérale, utilisez les valeurs suivantes:

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

Le tableau suivant affiche l'état du test de disponibilité pour différentes les données de réponse, les chaînes de test et les types de test:

État du test de disponibilité       
Données de réponse Chaîne de test Contient Ne contient pas
abcd abcd réussite échec
abc abcd échec réussite
abc a réussite échec
Uptime Checks Uptime réussite échec
Uptime Checks uptime échec réussite

Dans le tableau précédent, la colonne Données de réponse décrit les données renvoyées par la ressource vérifiée, tandis que la colonne Chaîne de test indique littéral de chaîne. Les deux colonnes suivantes spécifient le type de test et le du test de disponibilité.

Effectuer une recherche à l'aide d'une expression régulière

console Google Cloud

À configurer le test de disponibilité afin qu'il soit réussi lorsque les données de réponse correspondent une expression régulière, utilisez les paramètres suivants:

  1. Sélectionnez Correspond à l'expression régulière dans le menu Type de correspondance du contenu de la réponse.
  2. Saisissez une expression régulière dans le champ Contenu de la réponse.
  3. Pour vérifier la configuration, cliquez sur Tester.

À configurer le test de disponibilité pour qu'il échoue en cas de correspondance des données de réponse une expression régulière, utilisez les paramètres suivants:

  1. Sélectionnez Ne correspond pas à l'expression régulière dans le menu Type de correspondance du contenu de la réponse.
  2. Saisissez une expression régulière dans le champ Contenu de la réponse.
  3. Pour vérifier la configuration, cliquez sur Tester.

API Cloud Monitoring

À configurer le test de disponibilité afin qu'il soit réussi lorsque les données de réponse correspondent une expression régulière, utilisez les valeurs suivantes:

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

À configurer le test de disponibilité pour qu'il échoue en cas de correspondance des données de réponse une expression régulière, utilisez les valeurs suivantes:

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

Le tableau suivant affiche l'état du test de disponibilité pour différentes données de réponse, expressions régulières et types de test:

État du test de disponibilité       
Données de réponse Expression régulière Correspond à l'expression régulière Ne correspond pas à l'expression régulière
abcd abcd réussite échec
Uptime Checks [uU]ptime réussite échec
Uptime Checks [a-z]{6} échec réussite
Uptime Checks [a-zA-Z]{6} réussite échec

Dans le tableau précédent, la colonne Données de réponse décrit les données renvoyées par la ressource vérifiée, tandis que la colonne Regex indique une expression régulière. Les deux colonnes suivantes spécifient le type de test et le du test de disponibilité.

Rechercher un champ spécifique dans une réponse JSON

Vous pouvez configurer un test de disponibilité pour valider un chemin JSONpath. Lorsque vous sélectionnez un test JSONpath, le test compare une valeur de chemin à un nombre, un littéral de chaîne ou à une expression régulière:

Lorsque vous spécifiez un chemin JSONpath, vous devez spécifier l'objet racine avec $. et puis ajoutez un identifiant de champ spécifique. Lorsque la réponse JSON contient un tableau d'éléments, utilisez des crochets ([]) pour identifier un élément de tableau spécifique à mettre en correspondance. Les exemples suivants Syntaxe du chemin d'accès:

  • $.type correspond au champ type d'un objet racine.
  • $.[0].address.city correspond au champ city de l'objet address stocké dans le premier élément de tableau de la réponse JSON.
  • $.content[0].phone, qui correspond au champ phone du premier élément du tableau du champ content. Le champ content est un enfant de l'objet racine.

Vous pouvez configurer un test de disponibilité pour qu'il corresponde à plusieurs champs. Tenez compte des JSON suivant:

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

Pour faire correspondre le chemin d'accès complet du champ geo dans le premier élément de tableau, définissez JSONpath sur $.[0].address.geo, puis saisissez la valeur complète. dans le champ "content" :

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

Si vous souhaitez tester ces options, recherchez un qui renvoie une réponse JSON. Par exemple : consultez la section Test JSON.

Comparer JSONpath à un littéral numérique ou de chaîne

console Google Cloud

Pour configurer le test de disponibilité afin qu'il réussisse lorsqu'un chemin JSON spécifique est spécifié dans si les données de réponse correspondent à un littéral de chaîne, utilisez les paramètres suivants:

  1. Sélectionnez Correspond à JSONPath dans le menu Type de correspondance du contenu de la réponse.
  2. Saisissez le chemin d'accès dans le champ JSONPath.
  3. Saisissez le nombre ou le littéral de chaîne dans le champ Contenu de la réponse.
  4. Pour vérifier la configuration, cliquez sur Tester.

Pour configurer le test de disponibilité afin qu'il échoue lorsqu'un chemin JSONpath spécifique dans le si les données de réponse correspondent à un littéral de chaîne, utilisez les paramètres suivants:

  1. Sélectionnez Ne correspond pas à JSONPath dans le menu Type de correspondance du contenu de la réponse.
  2. Saisissez le chemin d'accès dans le champ JSONPath.
  3. Saisissez le nombre ou le littéral de chaîne dans le champ Contenu de la réponse.
  4. Pour vérifier la configuration, cliquez sur Tester.

API Cloud Monitoring

Pour configurer le test de disponibilité afin qu'il réussisse lorsqu'un champ spécifique du La réponse au format JSON correspond à un nombre ou à un littéral de chaîne. Utilisez les valeurs suivantes pour l'objet ContentMatcher:

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

Pour configurer le test de disponibilité afin qu'il échoue lorsqu'un champ spécifique du La réponse au format JSON correspond à un nombre ou à un littéral de chaîne. Utilisez les valeurs suivantes pour l'objet ContentMatcher:

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

Pour illustrer le fonctionnement des tests de correspondance de chaîne JSONpath, Prenez en compte les données de réponse JSON suivantes:

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

Le tableau suivant affiche l'état du test de disponibilité dans la réponse précédente, mais pour des chemins, valeurs et types de test différents:

État du test de disponibilité       
JSONpath Valeur de test Correspondances JSONpath JSONpath ne correspond pas
$.type "JSONpath" réussite échec
$.name "Sample" échec réussite
$.name "Sample Uptime Check" réussite échec
$.content[0].id 1 réussite échec
$.content[0].alias "Exact" réussite échec
$.content[0].enabled true réussite échec

Dans le tableau précédent, la colonne JSONpath identifie l'élément à test, et la colonne Valeur de test indique la valeur. Les deux colonnes suivantes spécifier le type et le résultat du test de disponibilité.

Comparer JSONpath à une expression régulière

Les correspondances d'expression régulière prennent en charge la mise en correspondance d'une chaîne, d'un nombre, d'une valeur booléenne et des valeurs JSON nulles.

console Google Cloud

Pour configurer le test de disponibilité afin qu'il réussisse lorsqu'un chemin JSON spécifique est spécifié dans si les données de réponse correspondent à une expression régulière, utilisez les paramètres suivants:

  1. Sélectionnez Correspond à JSONPath dans le menu Type de correspondance du contenu de la réponse.
  2. Saisissez le chemin d'accès dans le champ JSONPath.
  3. Saisissez l'expression régulière dans le champ Contenu de la réponse.
  4. Pour vérifier la configuration, cliquez sur Tester.

Pour configurer le test de disponibilité afin qu'il échoue lorsqu'un chemin JSONpath spécifique dans le si les données de réponse correspondent à une expression régulière, utilisez les paramètres suivants:

  1. Sélectionnez Ne correspond pas à JSONPath dans le menu Type de correspondance du contenu de la réponse.
  2. Saisissez le chemin d'accès dans le champ JSONPath.
  3. Saisissez l'expression régulière dans le champ Contenu de la réponse.
  4. Pour vérifier la configuration, cliquez sur Tester.

API Cloud Monitoring

Pour configurer le test de disponibilité afin qu'il réussisse lorsqu'un champ spécifique du Une réponse au format JSON correspond à une expression régulière. Utilisez le code suivant : pour l'objet ContentMatcher:

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

Pour configurer le test de disponibilité afin qu'il échoue lorsqu'un champ spécifique du Une réponse au format JSON correspond à une expression régulière. Utilisez le code suivant : pour l'objet ContentMatcher:

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

Pour illustrer le fonctionnement des tests d'expressions régulières JSONpath, Prenez en compte les données de réponse JSON suivantes:

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

Le tableau suivant affiche l'état du test de disponibilité dans la réponse précédente, mais pour des chemins, des expressions régulières et des types de test différents:

État du test de disponibilité       
JSONpath Expression régulière JSONpath correspond à l'expression régulière JSONpath ne correspond pas à l'expression régulière
$.type [A-Z]{4}Path réussite échec
$.name Sample échec réussite
$.name .*Sample.* réussite échec
$.content[1].id 2 réussite échec
$.content[1].phone "[12345]{2}" réussite échec
$.content[1].enabled f.* réussite échec

Dans le tableau précédent, la colonne JSONpath identifie l'élément à test, et la colonne Regex (Expression régulière) contient l'expression régulière. Les deux colonnes suivantes spécifier le type et le résultat du test de disponibilité.

Étape suivante