- Ressource: HttpRoute
- RouteRule
- RouteMatch
- HeaderMatch
- IntegerRange
- QueryParameterMatch
- RouteAction
- Destination
- HeaderModifier
- Redirection
- ResponseCode
- FaultInjectionPolicy
- Retard
- Annuler
- URLRewrite
- RetryPolicy
- RequestMirrorPolicy
- CorsPolicy
- StatefulSessionAffinityPolicy
- HttpDirectResponse
- Méthodes
Ressource: HttpRoute
HttpRoute est la ressource qui définit la manière dont le trafic HTTP doit être acheminé par une ressource de réseau maillé ou de passerelle.
Représentation JSON |
---|
{
"name": string,
"selfLink": string,
"description": string,
"createTime": string,
"updateTime": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"labels": {
string: string,
...
},
"rules": [
{
object ( |
Champs | |
---|---|
name |
Obligatoire. Nom de la ressource HttpRoute. Il correspond au modèle |
selfLink |
Uniquement en sortie. URL définie par le serveur de cette ressource |
description |
Facultatif. Description en texte libre de la ressource. Longueur maximale : 1 024 caractères. |
createTime |
Uniquement en sortie. Code temporel de la création de la ressource. Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : |
updateTime |
Uniquement en sortie. Code temporel de la mise à jour de la ressource. Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : |
hostnames[] |
Obligatoire. Les noms d'hôte définissent un ensemble d'hôtes qui doivent correspondre à l'en-tête d'hôte HTTP pour sélectionner une route HTTP afin de traiter la requête. Le nom d'hôte est le nom de domaine complet d'un hôte réseau, tel que défini par la norme RFC 1123, à l'exception des points suivants: - Les adresses IP ne sont pas autorisées. - Un nom d'hôte peut être précédé d'un libellé générique ( Le nom d'hôte peut être "exact", c'est-à-dire un nom de domaine sans le point de fin d'un hôte réseau (par exemple, Notez que conformément aux normes RFC1035 et RFC1123, une étiquette doit être composée de caractères alphanumériques en minuscules ou de "-", et doit commencer et se terminer par un caractère alphanumérique. Aucun autre signe de ponctuation n'est autorisé. Les routes associées à un réseau maillé ou à des passerelles doivent avoir des noms d'hôte uniques. Si vous tentez d'associer plusieurs routes avec des noms d'hôte en conflit, la configuration sera refusée. Par exemple, bien qu'il soit acceptable que les routes soient associées aux noms d'hôte |
meshes[] |
Facultatif. Les réseaux maillés définissent une liste de réseaux maillés auxquels cette liaison HttpRoute est associée. Il s'agit de l'une des règles de routage permettant d'acheminer les requêtes diffusées par le maillage. Chaque référence au maillage doit correspondre au modèle suivant: Le maillage connecté doit être de type SIDECAR |
gateways[] |
Facultatif. "Gateways" définit la liste des passerelles auxquelles la passerelle HTTP est associée. Il s'agit de l'une des règles de routage servant à acheminer les requêtes diffusées par la passerelle. Chaque référence de passerelle doit correspondre au format suivant: |
labels |
Facultatif. Ensemble de tags d'étiquette associés à la ressource HttpRoute. Objet contenant une liste de paires |
rules[] |
Obligatoire. Des règles qui définissent la manière dont le trafic est acheminé et géré. Les règles sont mises en correspondance de manière séquentielle en fonction du RouteMatch spécifié. |
RouteRule
Spécifie comment mettre en correspondance le trafic et comment l'acheminer lorsqu'il correspond.
Représentation JSON |
---|
{ "matches": [ { object ( |
Champs | |
---|---|
matches[] |
Une liste de correspondances définit les conditions utilisées pour mettre en correspondance la règle avec les requêtes HTTP entrantes. Chaque correspondance est indépendante : la règle sera prise en compte si l'une des correspondances est satisfaite. Si aucun champ de correspondance n'est spécifié, la règle mettra en correspondance le trafic sans condition. Si vous souhaitez configurer une règle par défaut, ajoutez une règle sans correspondance à la fin de la liste de règles. |
action |
Règle détaillée définissant comment acheminer le trafic mis en correspondance. |
RouteMatch
RouteMatch définit les spécifications utilisées pour mettre en correspondance les requêtes. Si plusieurs types de correspondance sont définis, ce RouteMatch sera mis en correspondance si TOUS les types de correspondances sont mis en correspondance.
Représentation JSON |
---|
{ "ignoreCase": boolean, "headers": [ { object ( |
Champs | |
---|---|
ignoreCase |
Indique si les correspondances prefixMatch et fullPathMatch sont sensibles à la casse. La valeur par défaut est false. |
headers[] |
Spécifie une liste d'en-têtes de requêtes HTTP à mettre en correspondance. TOUS les en-têtes fournis doivent correspondre. |
queryParameters[] |
Spécifie une liste de paramètres de requête à mettre en correspondance. TOUS les paramètres de requête doivent être mis en correspondance. |
Champ d'union
|
|
fullPathMatch |
La valeur du chemin de la requête HTTP doit correspondre exactement à cette valeur. Vous ne devez utiliser qu'une seule correspondance (fullPathMatch, prefixMatch, ou regexMatch). |
prefixMatch |
La valeur du chemin de la requête HTTP doit commencer par prefixMatch spécifié. prefixMatch doit commencer par une barre oblique (/). Vous ne devez utiliser qu'une seule correspondance (fullPathMatch, prefixMatch, ou regexMatch). |
regexMatch |
La valeur du chemin de la requête HTTP doit respecter l'expression régulière spécifiée par regexMatch après la suppression des paramètres de requête et de l'ancre fournis avec l'URL d'origine. Pour en savoir plus sur la grammaire des expressions régulières, consultez la page https://github.com/google/re2/wiki/Syntax. Vous ne devez utiliser qu'une seule correspondance (fullPathMatch, prefixMatch, ou regexMatch). |
HeaderMatch
Spécifie comment sélectionner une règle de routage basée sur des en-têtes de requête HTTP.
Représentation JSON |
---|
{ "header": string, "invertMatch": boolean, // Union field |
Champs | |
---|---|
header |
Nom de l'en-tête HTTP à mettre en correspondance. |
invertMatch |
Si cette valeur est spécifiée, le résultat de la correspondance est inversé avant la vérification. La valeur par défaut est définie sur "false". |
Champ d'union
|
|
exactMatch |
La valeur de l'en-tête doit correspondre exactement au contenu d'exactMatch. |
regexMatch |
La valeur de l'en-tête doit correspondre à l'expression régulière spécifiée dans regexMatch. Pour en savoir plus sur la grammaire des expressions régulières, consultez la page https://github.com/google/re2/wiki/Syntax. |
prefixMatch |
La valeur de l'en-tête doit commencer par le contenu de prefixMatch. |
presentMatch |
Un en-tête avec headerName doit exister. La correspondance a lieu que l'en-tête ait une valeur ou non. |
suffixMatch |
La valeur de l'en-tête doit se terminer par le contenu de suffixMatch. |
rangeMatch |
Si elle est spécifiée, la règle sera identique si la valeur de en-tête de requête est comprise dans la plage. |
IntegerRange
Représente une plage de valeurs entières.
Représentation JSON |
---|
{ "start": integer, "end": integer } |
Champs | |
---|---|
start |
Début de la plage (incluse) |
end |
Fin de la plage (exclue) |
QueryParameterMatch
Spécifications permettant de faire correspondre un paramètre de requête dans la requête.
Représentation JSON |
---|
{ "queryParameter": string, // Union field |
Champs | |
---|---|
queryParameter |
Nom du paramètre de requête à mettre en correspondance. |
Champ d'union
|
|
exactMatch |
La valeur du paramètre de requête doit correspondre exactement au contenu d'exactMatch. Vous ne devez définir qu'un seul type de correspondance "exactMatch", "regexMatch" ou "presentMatch". |
regexMatch |
La valeur du paramètre de requête doit correspondre à l'expression régulière spécifiée par regexMatch. Pour en savoir plus sur la grammaire des expressions régulières, consultez la page https://github.com/google/re2/wiki/Syntax. Vous ne devez définir qu'un seul type de correspondance "exactMatch", "regexMatch" ou "presentMatch". |
presentMatch |
Indique que QueryParameterMatcher correspond si la requête contient un paramètre de requête, que le paramètre ait une valeur ou non. Vous ne devez définir qu'un seul type de correspondance "exactMatch", "regexMatch" ou "presentMatch". |
RouteAction
Spécifications pour le routage du trafic et l'application des règles associées
Représentation JSON |
---|
{ "destinations": [ { object ( |
Champs | |
---|---|
destinations[] |
Destination vers laquelle le trafic doit être transféré. |
redirect |
S'il est défini, la requête est dirigée conformément à la configuration de ce champ. |
faultInjectionPolicy |
Spécification d'injection de pannes introduite dans le trafic pour tester la résilience des clients aux défaillances du service de backend. Dans le cadre de l'injection de pannes, lorsque les clients envoient des requêtes à un service de backend, des retards peuvent être introduits sur un pourcentage de requêtes avant de les envoyer au service de backend. De même, les requêtes des clients peuvent être annulées pour un certain pourcentage de requêtes. Le délai d'expiration et l'objet "RetryPolicy" sont ignorés par les clients configurés avec un paramètre faultInjectionPolicy. |
requestHeaderModifier |
Spécification permettant de modifier les en-têtes d'une requête correspondante avant la livraison de la requête à la destination. Si des HeaderModifiers sont définis à la fois sur la destination et sur RouteAction, ils seront fusionnés. Les conflits entre les deux ne seront pas résolus au niveau de la configuration. |
responseHeaderModifier |
Spécification permettant de modifier les en-têtes d'une réponse avant de la renvoyer au client. Si des HeaderModifiers sont définis à la fois sur la destination et sur RouteAction, ils seront fusionnés. Les conflits entre les deux ne seront pas résolus au niveau de la configuration. |
urlRewrite |
Spécification de réécriture de l'URL avant transfert des requêtes vers la destination. |
timeout |
Spécifie le délai avant expiration de la route sélectionnée. Le délai avant expiration est calculé à partir du moment où la requête a été entièrement traitée (c'est-à-dire, la fin du flux) jusqu'au moment où la réponse a été entièrement traitée. Le délai avant expiration inclut l'ensemble des nouvelles tentatives. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
retryPolicy |
Spécifie la stratégie de nouvelle tentative associée à cette route. |
requestMirrorPolicy |
Spécifie la règle selon laquelle les requêtes destinées à la destination des routes sont bloquées vers une destination mise en miroir distincte. Le proxy n'attend pas que la destination fantôme réponde avant de renvoyer la réponse. Avant d'envoyer du trafic vers le service fictif, l'en-tête host/authority porte le suffixe -shadow. |
corsPolicy |
Spécification pour l'autorisation des requêtes multi-origines côté client. |
statefulSessionAffinity |
Facultatif. Spécifie l'affinité de session avec état basée sur les cookies. |
directResponse |
Facultatif. Objet de réponse HTTP statique à renvoyer quelle que soit la requête. |
idleTimeout |
Facultatif. Spécifie le délai d'inactivité pour la route sélectionnée. Le délai d'inactivité est défini comme la période au cours de laquelle aucun octet n'est envoyé ni reçu sur la connexion en amont ou en aval. Si cette règle n'est pas configurée, le délai d'inactivité par défaut est d'une heure. S'il est défini sur 0 s, le délai avant expiration est désactivé. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
Destination
Spécifications d'une destination vers laquelle la requête doit être acheminée.
Représentation JSON |
---|
{ "serviceName": string, "weight": integer, "requestHeaderModifier": { object ( |
Champs | |
---|---|
serviceName |
URL d'un service BackendService vers lequel acheminer le trafic. |
weight |
Spécifie la proportion de requêtes transférées au backend référencé par le champ serviceName. Cette valeur est calculée de la façon suivante: - weight/Sum(pondérations dans cette liste de destination). Pour les valeurs non nulles, il peut y avoir une valeur epsilon par rapport à la proportion exacte définie ici, en fonction de la précision acceptée par une implémentation. Si un seul serviceName est spécifié et que sa pondération est supérieure à 0, la totalité du trafic est transmise à ce backend. Si des pondérations sont spécifiées pour un nom de service donné, elles doivent l'être pour tous les noms de service. Si les pondérations ne sont pas spécifiées pour tous les services, le trafic est réparti dans des proportions égales entre tous ces services. |
requestHeaderModifier |
Facultatif. Spécification permettant de modifier les en-têtes d'une requête correspondante avant la livraison de la requête à la destination. Si des HeaderModifiers sont définis à la fois sur la destination et sur RouteAction, ils seront fusionnés. Les conflits entre les deux ne seront pas résolus au niveau de la configuration. |
responseHeaderModifier |
Facultatif. Spécification permettant de modifier les en-têtes d'une réponse avant de la renvoyer au client. Si des HeaderModifiers sont définis à la fois sur la destination et sur RouteAction, ils seront fusionnés. Les conflits entre les deux ne seront pas résolus au niveau de la configuration. |
HeaderModifier
Spécification permettant de modifier l'en-tête HTTP dans les requêtes et les réponses HTTP.
Représentation JSON |
---|
{ "set": { string: string, ... }, "add": { string: string, ... }, "remove": [ string ] } |
Champs | |
---|---|
set |
Remplacez ou remplacez complètement les en-têtes par le mappage donné, où "key" correspond au nom de l'en-tête et "value" à la valeur de l'en-tête. Objet contenant une liste de paires |
add |
Ajoute les en-têtes avec un mappage donné, où "key" correspond au nom de l'en-tête et "value" à la valeur de l'en-tête. Objet contenant une liste de paires |
remove[] |
Supprimer les en-têtes (correspondant par nom d'en-tête) spécifiés dans la liste. |
Redirection
Spécification pour la redirection du trafic.
Représentation JSON |
---|
{
"hostRedirect": string,
"pathRedirect": string,
"prefixRewrite": string,
"responseCode": enum ( |
Champs | |
---|---|
hostRedirect |
Hôte qui sera utilisé dans la réponse de redirection au lieu de celui fourni dans la requête. |
pathRedirect |
Chemin qui sera utilisé dans la réponse de redirection à la place de celui fourni dans la requête. pathRedirect ne peut pas être fourni avec prefixRedirect. Indiquez-en une seule ou aucune. Si aucune de ces valeurs n'est fournie, le chemin de la requête d'origine est utilisé pour la redirection. |
prefixRewrite |
Indique qu'au cours de la redirection, le préfixe (ou chemin) correspondant doit être remplacé par cette valeur. Cette option permet de créer des URL dynamiquement en fonction de la requête. |
responseCode |
Code d'état HTTP à utiliser pour la redirection. |
httpsRedirect |
Si cette règle est définie sur "true", le schéma d'URL de la requête redirigée est défini sur https. S'il est défini sur "false", le schéma d'URL de la requête redirigée restera le même que celui de la requête. La valeur par défaut est "false". |
stripQuery |
Si la valeur est définie sur "true", toute partie de requête associée à l'URL d'origine est supprimée avant la redirection de la requête. Si cette règle est définie sur "false", la partie requête de l'URL d'origine est conservée. La valeur par défaut est "false". |
portRedirect |
Port qui sera utilisé dans la requête redirigée au lieu de celui fourni dans la requête. |
ResponseCode
Code de réponse HTTP compatible.
Enums | |
---|---|
RESPONSE_CODE_UNSPECIFIED |
Valeur par défaut |
MOVED_PERMANENTLY_DEFAULT |
Correspond au code 301. |
FOUND |
Correspond au code 302. |
SEE_OTHER |
Correspond au code 303. |
TEMPORARY_REDIRECT |
Correspond au code 307. Dans ce cas, la méthode de requête est conservée. |
PERMANENT_REDIRECT |
Correspond au code 308. Dans ce cas, la méthode de requête est conservée. |
FaultInjectionPolicy
Spécification d'injection de pannes introduite dans le trafic pour tester la résilience des clients à l'échec du service de destination. Dans le cadre de l'injection de pannes, lorsque les clients envoient des requêtes à une destination, des retards peuvent être introduits par le proxy client sur un pourcentage de requêtes avant d'envoyer ces requêtes au service de destination. De même, les requêtes peuvent être annulées par un proxy client pour un certain pourcentage de requêtes.
Représentation JSON |
---|
{ "delay": { object ( |
Champs | |
---|---|
delay |
Spécification permettant d'injecter un délai aux requêtes client. |
abort |
Spécification permettant d'abandonner des requêtes client. |
Délai
Spécification du retard des requêtes client dans le cadre de l'injection de pannes avant d'être envoyées à une destination.
Représentation JSON |
---|
{ "fixedDelay": string, "percentage": integer } |
Champs | |
---|---|
fixedDelay |
Spécifiez un délai fixe avant de transmettre la requête. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
percentage |
Pourcentage du trafic auquel le retard sera injecté. La valeur doit être comprise entre 0 et 100 |
Annuler
Spécification de la manière dont les requêtes client sont annulées dans le cadre de l'injection de pannes avant d'être envoyées à une destination.
Représentation JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Champs | |
---|---|
httpStatus |
Code d'état HTTP utilisé pour annuler la requête. La valeur doit être comprise entre 200 et 599 inclus. |
percentage |
Pourcentage de trafic qui sera abandonné. La valeur doit être comprise entre 0 et 100 |
URLRewrite
Spécification permettant de modifier l'URL de la requête avant de la transmettre à la destination.
Représentation JSON |
---|
{ "pathPrefixRewrite": string, "hostRewrite": string } |
Champs | |
---|---|
pathPrefixRewrite |
Avant le transfert de la requête vers la destination sélectionnée, la partie correspondante du chemin de la requête est remplacée par cette valeur. |
hostRewrite |
Avant de transmettre la requête à la destination sélectionnée, l'en-tête de l'hôte des requêtes est remplacé par cette valeur. |
RetryPolicy
Spécifications des nouvelles tentatives
Représentation JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer, "perTryTimeout": string } |
Champs | |
---|---|
retryConditions[] |
Spécifie une ou plusieurs conditions d'application de cette règle de nouvelle tentative. Les valeurs valides sont: 5xx: le proxy tentera une nouvelle tentative si le service de destination répond avec un code de réponse 5xx, ou si le service de destination ne répond pas du tout, par exemple: déconnexion, réinitialisation, délai avant expiration de la lecture, échec de connexion et flux refusés. passerelle-erreur: semblable à 5xx, mais ne s'applique qu'aux codes de réponse 502, 503, 504. Réinitialiser: le proxy tente de réessayer si le service de destination ne répond pas du tout (délai de déconnexion/réinitialisation/lecture). connect-failure: le proxy effectuera de nouvelles tentatives en cas d'échec de connexion à la destination, par exemple en raison de l'expiration du délai de connexion. retriable-4xx: le proxy tente à nouveau d'utiliser les codes de réponse 4xx récupérables. Actuellement, la seule erreur récupérable est la erreur 409. refused-stream: le proxy effectuera une nouvelle tentative si la destination réinitialise le flux avec un code d'erreur REFUSED_STREAM. Ce type de réinitialisation indique que vous pouvez réessayer sans risque. |
numRetries |
Spécifie le nombre autorisé de tentatives. Ce nombre doit être supérieur à zéro. Si aucune valeur n'est spécifiée, la valeur par défaut est 1. |
perTryTimeout |
Spécifie un délai avant expiration non nul pour chaque nouvelle tentative. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
RequestMirrorPolicy
Spécifie la règle définissant le blocage des requêtes vers un service de destination en miroir distinct. Le proxy n'attend pas les réponses du service fictif. Avant d'envoyer du trafic vers le service fictif, l'en-tête host/authority porte le suffixe -shadow.
Représentation JSON |
---|
{
"destination": {
object ( |
Champs | |
---|---|
destination |
Destination vers laquelle les requêtes seront mises en miroir. La pondération de la destination sera ignorée. |
mirrorPercent |
Facultatif. Pourcentage de requêtes à mettre en miroir vers la destination souhaitée. |
CorsPolicy
Spécification permettant d'autoriser les requêtes multi-origines côté client.
Représentation JSON |
---|
{ "allowOrigins": [ string ], "allowOriginRegexes": [ string ], "allowMethods": [ string ], "allowHeaders": [ string ], "exposeHeaders": [ string ], "maxAge": string, "allowCredentials": boolean, "disabled": boolean } |
Champs | |
---|---|
allowOrigins[] |
Spécifie la liste des origines qui seront autorisées à envoyer des requêtes CORS. Une origine est autorisée si elle correspond à un élément de allowOrigins ou à un élément de allowOriginRegexes. |
allowOriginRegexes[] |
Spécifie les formats d'expression régulière qui correspondent aux origines autorisées. Pour en savoir plus sur la grammaire des expressions régulières, consultez la page https://github.com/google/re2/wiki/Syntax. |
allowMethods[] |
Spécifie le contenu de l'en-tête Access-Control-Allow-Methods. |
allowHeaders[] |
Spécifie le contenu de l'en-tête Access-Control-Allow-Headers. |
exposeHeaders[] |
Spécifie le contenu de l'en-tête Access-Control-Expose-Headers. |
maxAge |
Spécifie la durée pendant laquelle le résultat d'une requête préliminaire peut être mis en cache, en secondes. Cela se traduit par l'en-tête Access-Control-Max-Age. |
allowCredentials |
En réponse à une requête préliminaire, le fait de définir ce paramètre sur "true" indique que la requête réelle peut inclure des identifiants utilisateur. Cela se traduit par l'en-tête Access-Control-Allow-Credentials. La valeur par défaut est Faux (false). |
disabled |
Si la valeur est "true", la règle CORS est désactivée. La valeur par défaut est "false", ce qui indique que la règle CORS est en vigueur. |
StatefulSessionAffinityPolicy
Spécification de l'affinité de session avec état basée sur les cookies, où le plan de date fournit un "cookie de session" nommé "GSSA", qui encode un hôte de destination spécifique, et chaque requête contenant ce cookie sera dirigée vers cet hôte tant que l'hôte de destination reste opérationnel et opérationnel.
La bibliothèque de maillages sans proxy gRPC ou le proxy side-car gère le cookie de la session, mais le code de l'application cliente est chargé de copier le cookie de chaque RPC de la session vers le suivant.
Représentation JSON |
---|
{ "cookieTtl": string } |
Champs | |
---|---|
cookieTtl |
Obligatoire. Valeur TTL du cookie pour l'en-tête Set-Cookie généré par le plan de données. La durée de vie du cookie peut être comprise entre 1 et 86 400 secondes (24 heures) inclus. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
HttpDirectResponse
Objet de réponse HTTP statique à renvoyer.
Représentation JSON |
---|
{ "status": integer, // Union field |
Champs | |
---|---|
status |
Obligatoire. État à renvoyer dans le cadre d'une réponse HTTP. Vous devez saisir un entier positif. |
Champ d'union HttpBody . Corps à renvoyer dans le cadre d'une réponse HTTP. HttpBody ne peut être qu'un des éléments suivants : |
|
stringBody |
Facultatif. Corps de la réponse sous forme de chaîne. Le corps ne doit pas dépasser 1 024 caractères. |
bytesBody |
Facultatif. Corps de la réponse en octets. La taille maximale du corps est de 4 096 octets. Chaîne encodée en base64. |
Méthodes |
|
---|---|
|
Crée une route HTTP dans un projet et un emplacement donnés. |
|
Supprime une seule route HTTP. |
|
Récupère les détails d'une seule route HttpRoute. |
|
Répertorie HttpRoute dans un projet et un emplacement donnés. |
|
Met à jour les paramètres d'une seule route HTTP. |