- Ressource : HttpRoute
- RouteRule
- RouteMatch
- HeaderMatch
- IntegerRange
- QueryParameterMatch
- RouteAction
- Destination
- HeaderModifier
- Redirect
- ResponseCode
- FaultInjectionPolicy
- Delay
- Abort
- URLRewrite
- RetryPolicy
- RequestMirrorPolicy
- CorsPolicy
- StatefulSessionAffinityPolicy
- HttpDirectResponse
- Methods
Ressource : HttpRoute
HttpRoute est la ressource qui définit la manière dont le trafic HTTP doit être acheminé par une ressource Mesh ou Gateway.
| Représentation JSON |
|---|
{
"name": string,
"selfLink": string,
"description": string,
"createTime": string,
"updateTime": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"labels": {
string: string,
...
},
"rules": [
{
object ( |
| Fields | |
|---|---|
name |
Obligatoire. Nom de la ressource HttpRoute. Il correspond au schéma |
selfLink |
Uniquement en sortie. URL de cette ressource définie par le serveur. |
description |
Facultatif. Description en texte libre de la ressource. Longueur recommandée : 1 024 caractères. |
createTime |
Uniquement en sortie. Code temporel de la création de la ressource. Code temporel 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. Code temporel 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 devant correspondre à l'en-tête d'hôte HTTP pour sélectionner une ressource HttpRoute afin de traiter la requête. Le nom d'hôte correspond au nom de domaine complet d'un hôte réseau, tel que défini par la norme RFC 1123, à l'exception des adresses IP, qui ne sont pas autorisées. - Un nom d'hôte peut être précédé d'une étiquette générique ( Le nom d'hôte peut être "précis". Il s'agit d'un nom de domaine sans le point d'arrêt d'un hôte réseau (par exemple, Sachez que, conformément aux normes RFC1035 et RFC1123, une étiquette doit être composée de caractères alphanumériques 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 maillage 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, il est acceptable que les routes pour les noms d'hôte |
meshes[] |
Facultatif. "Meshes" définit une liste de maillages auxquelles cette ressource HttpRoute est associée, en tant que l'une des règles de routage permettant d'acheminer les requêtes traitées par le maillage. Chaque référence de maillage doit correspondre au modèle suivant : Le maillage associé doit être de type SIDE-CAR. |
gateways[] |
Facultatif. "Gateways" définit la liste des passerelles auxquelles cette ressource HttpRoute est associée, en tant que l'une des règles de routage permettant d'acheminer les requêtes traitées par la passerelle. Chaque référence de passerelle doit correspondre au modèle suivant : |
labels |
Facultatif. Ensemble de tags d'étiquette associés à la ressource HttpRoute. Objet contenant une liste de paires |
rules[] |
Obligatoire. 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 de la spécification RouteMatch spécifiée pour la règle. |
RouteRule
Indique comment faire correspondre le trafic et comment l'acheminer lorsqu'il correspond.
| Représentation JSON |
|---|
{ "matches": [ { object ( |
| Fields | |
|---|---|
matches[] |
Une liste de correspondances définit les conditions utilisées pour faire correspondre la règle aux requêtes HTTP entrantes. Chaque correspondance est indépendante, c'est-à-dire que cette règle sera mise en correspondance si l'UNE des correspondances est satisfaite. Si aucun champ de correspondance n'est spécifié, cette règle correspondra inconditionnellement au trafic. Si vous souhaitez configurer une règle par défaut, ajoutez une règle sans correspondance spécifiée à la fin de la liste des règles. |
action |
Règle détaillée définissant comment acheminer le trafic correspondant. |
RouteMatch
RouteMatch définit les spécifications utilisées pour faire correspondre les requêtes. Si plusieurs types de correspondance sont définis, cette RouteMatch ne sera satisfait que si TOUS les types de correspondance le sont.
| Représentation JSON |
|---|
{ "ignoreCase": boolean, "headers": [ { object ( |
| Fields | |
|---|---|
ignoreCase |
Indique si les correspondances prefixMatch et fullPathMatch sont sensibles à la casse. La valeur par défaut est "false". |
headers[] |
Indique une liste d'en-têtes de requête 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 correspondre. |
Champ d'union
|
|
fullPathMatch |
La valeur du chemin d'accès de la requête HTTP doit correspondre exactement à cette valeur. Vous ne devez utiliser qu'une seule des valeurs suivantes : fullPathMatch, prefixMatch ou regexMatch. |
prefixMatch |
La valeur du chemin de la requête HTTP doit commencer par le prefixMatch spécifié. Le prefixMatch doit commencer par une barre oblique (/). Vous ne devez utiliser qu'une seule des valeurs suivantes : fullPathMatch, prefixMatch ou regexMatch. |
regexMatch |
La valeur du chemin de la requête HTTP doit correspondre à l'expression régulière spécifiée par regexMatch, après suppression de tous les paramètres de requête et de l'ancrage fournis avec l'URL d'origine. Pour en savoir plus sur la grammaire des expressions régulières, consultez https://github.com/google/re2/wiki/Syntax. Vous ne devez utiliser qu'une seule des valeurs suivantes : fullPathMatch, prefixMatch ou regexMatch. |
HeaderMatch
Indique comment sélectionner une règle de routage en fonction des en-têtes de requête HTTP.
| Représentation JSON |
|---|
{ "header": string, "invertMatch": boolean, // Union field |
| Fields | |
|---|---|
header |
Nom de l'en-tête HTTP à mettre en correspondance. |
invertMatch |
Si cette option est spécifiée, le résultat de la correspondance sera 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 de 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 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 s'effectue, 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 correspondra si la valeur de l'en-tête de requête se situe dans la plage. |
IntegerRange
Représente une plage de valeurs entières.
| Représentation JSON |
|---|
{ "start": integer, "end": integer } |
| Fields | |
|---|---|
start |
Début de la plage (inclus) |
end |
Fin de la plage (exclus) |
QueryParameterMatch
Spécifications permettant de faire correspondre un paramètre de requête dans la requête.
| Représentation JSON |
|---|
{ "queryParameter": string, // Union field |
| Fields | |
|---|---|
queryParameter |
Nom du paramètre de requête à faire correspondre. |
Champ d'union
|
|
exactMatch |
La valeur du paramètre de requête doit correspondre exactement au contenu de exactMatch. Vous ne devez définir qu'un seul des éléments 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 https://github.com/google/re2/wiki/Syntax. Vous ne devez définir qu'un seul des éléments 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 des éléments 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 ( |
| Fields | |
|---|---|
destinations[] |
Destination vers laquelle le trafic doit être transféré. |
redirect |
Si défini, la requête est dirigée conformément à ce champ. |
faultInjectionPolicy |
Spécification de l'injection de pannes dans le trafic pour tester la résilience des clients en cas de défaillance du service de backend. Lors 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 paramètre timeout et la règle retryPolicy seront ignorés par les clients configurés avec une règlefaultInjectionPolicy. |
requestHeaderModifier |
Spécification permettant de modifier les en-têtes d'une requête correspondante avant de l'envoyer à la destination. Si des HeaderModifiers sont définis à la fois sur les ressources Destination et RouteAction, ils seront fusionnés. Les conflits entre les deux ne seront pas résolus dans 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 les ressources Destination et RouteAction, ils seront fusionnés. Les conflits entre les deux ne seront pas résolus dans la configuration. |
urlRewrite |
Spécification pour réécrire l'URL avant de transférer les requêtes vers la destination. |
timeout |
Indique le délai avant expiration pour 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) et jusqu'à ce que la réponse soit elle aussi 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 règle de nouvelle tentative associée à cette route. |
requestMirrorPolicy |
Spécifie la règle concernant la manière dont les requêtes à l'intention de la destination des routes sont mises en miroir vers une destination distincte. Le proxy n'attendra pas la réponse de la destination non documentée avant de renvoyer la réponse. Avant d'envoyer du trafic au service non documenté, le suffixe "-shadow" est ajouté à l'en-tête d'hôte/d'autorité. |
corsPolicy |
Spécification permettant les 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. Indique le délai d'inactivité pour la route sélectionnée. Le délai d'inactivité est défini comme la période pendant laquelle aucun octet n'est envoyé ni reçu sur la connexion en amont ou en aval. Si ce paramètre n'est pas défini, le délai d'inactivité par défaut est d'une heure. Si la valeur est définie 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 ( |
| Fields | |
|---|---|
serviceName |
URL d'un BackendService vers lequel le trafic doit être acheminé. |
weight |
Spécifie la proportion de requêtes transférées au backend référencé par le champ "serviceName". Voici le calcul : - weight/Sum(weights in this destination list). Pour les valeurs non nulles, il peut y avoir valeur epsilon par rapport à la proportion exacte définie ici, selon la précision acceptée par l'implémentation. Si un seul serviceName est spécifié et que sa pondération est supérieure à 0, 100 % du trafic est transféré vers ce backend. Si des pondérations sont spécifiées pour un nom de service, elles doivent l'être pour tous les noms de service. Si aucune pondération n'est spécifiée pour tous les services, le trafic est réparti de manière égale entre eux. |
requestHeaderModifier |
Facultatif. Spécification permettant de modifier les en-têtes d'une requête correspondante avant de l'envoyer à la destination. Si des HeaderModifiers sont définis à la fois sur les ressources Destination et RouteAction, ils seront fusionnés. Les conflits entre les deux ne seront pas résolus dans 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 les ressources Destination et RouteAction, ils seront fusionnés. Les conflits entre les deux ne seront pas résolus dans la configuration. |
HeaderModifier
Spécification pour modifier l'en-tête HTTP dans la requête et la réponse HTTP.
| Représentation JSON |
|---|
{ "set": { string: string, ... }, "add": { string: string, ... }, "remove": [ string ] } |
| Fields | |
|---|---|
set |
Remplace/écrase complètement les en-têtes par la carte donnée, où la clé est le nom de l'en-tête et la valeur est la valeur de l'en-tête. Objet contenant une liste de paires |
add |
Ajoute les en-têtes avec la carte donnée, où la clé correspond au nom de l'en-tête et la valeur à la valeur de l'en-tête. Objet contenant une liste de paires |
remove[] |
Supprime les en-têtes (correspondant par nom d'en-tête) spécifiés dans la liste. |
Redirect
Spécification pour la redirection du trafic.
| Représentation JSON |
|---|
{
"hostRedirect": string,
"pathRedirect": string,
"prefixRewrite": string,
"responseCode": enum ( |
| Fields | |
|---|---|
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 au lieu de celui fourni dans la requête. Le paramètre pathRedirect ne peut pas être fourni avec prefixRedirect. Veuillez n'en fournir qu'un seul ou aucun. Si aucun des deux n'est fourni, le chemin de la requête d'origine sera utilisé pour la redirection. |
prefixRewrite |
Indique que, lors de la redirection, le préfixe (ou le chemin d'accès) correspondant doit être remplacé par cette valeur. Cette option permet de créer des URL de manière dynamique en fonction de la requête. |
responseCode |
Code d'état HTTP à utiliser pour la redirection. |
httpsRedirect |
Si la valeur est "true", le schéma d'URL de la requête redirigée est défini sur "https". Si la valeur est définie 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 de l'URL d'origine est supprimée avant la redirection de la requête. Si la valeur est définie sur "false", la partie de 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 à la place de celui fourni dans la requête. |
ResponseCode
Code de réponse HTTP accepté.
| Enums | |
|---|---|
RESPONSE_CODE_UNSPECIFIED |
Valeur par défaut |
MOVED_PERMANENTLY_DEFAULT |
Correspond à 301. |
FOUND |
Correspond à 302. |
SEE_OTHER |
Correspond à 303. |
TEMPORARY_REDIRECT |
Correspond à 307. Dans ce cas, la méthode de requête sera conservée. |
PERMANENT_REDIRECT |
Correspond à 308. Dans ce cas, la méthode de requête sera conservée. |
FaultInjectionPolicy
Spécification de l'injection de pannes dans le trafic pour tester la résilience des clients en cas de défaillance du service de destination. Lors de l'injection de pannes, lorsque les clients envoient des requêtes à un service de destination, des retards peuvent être introduits par le proxy client sur un pourcentage de requêtes avant de les envoyer au service de destination. De même, les requêtes peuvent être abandonnées par le proxy client pour un pourcentage de requêtes.
| Représentation JSON |
|---|
{ "delay": { object ( |
| Fields | |
|---|---|
delay |
Spécification pour l'injection de retard dans les requêtes client. |
abort |
Spécification pour l'annulation des requêtes client. |
Delay
Spécification de la manière dont les requêtes client sont retardées lors de l'injection de pannes avant d'être envoyées vers une destination.
| Représentation JSON |
|---|
{ "fixedDelay": string, "percentage": integer } |
| Fields | |
|---|---|
fixedDelay |
Spécifiez un délai fixe avant de transférer la requête. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
percentage |
Pourcentage du trafic sur lequel le délai sera injecté. La valeur doit être comprise entre [0, 100]. |
Abort
Spécification de la manière dont les requêtes client sont annulées lors de l'injection de pannes avant d'être envoyées vers une destination.
| Représentation JSON |
|---|
{ "httpStatus": integer, "percentage": integer } |
| Fields | |
|---|---|
httpStatus |
Code d'état HTTP utilisé pour annuler la requête. La valeur doit être comprise entre 200 et 599 inclus. |
percentage |
Pourcentage du trafic qui sera annulé. La valeur doit être comprise entre [0, 100]. |
URLRewrite
Spécification permettant de modifier l'URL de la requête avant de la transférer vers la destination.
| Représentation JSON |
|---|
{ "pathPrefixRewrite": string, "hostRewrite": string } |
| Fields | |
|---|---|
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 le transfert de la requête vers la destination sélectionnée, l'en-tête d'hôte de la requête est remplacé par cette valeur. |
RetryPolicy
Spécifications pour les nouvelles tentatives.
| Représentation JSON |
|---|
{ "retryConditions": [ string ], "numRetries": integer, "perTryTimeout": string } |
| Fields | |
|---|---|
retryConditions[] |
Spécifie une ou plusieurs conditions d'application de cette règle de nouvelle tentative. Les valeurs valides sont les suivantes. 5xx : le proxy effectuera une nouvelle tentative si le service de destination répond avec un code de réponse 5xx ou s'il ne répond pas du tout (par exemple, en cas de déconnexion, de réinitialisation, de délai de lecture, d'échec de connexion et de flux refusés). gateway-error : semblable à 5xx, mais ne s'applique qu'aux codes de réponse 502, 503 ou 504. reset : le proxy tentera une nouvelle fois d'établir la connexion si le service de destination ne répond pas du tout (déconnexion/réinitialisation/délai de lecture). connect-failure : le proxy effectue une nouvelle tentative en cas d'échec de la connexion à la destination (par exemple, en raison d'un délai d'inactivité de la connexion). retriable-4xx : le proxy effectuera une nouvelle tentative pour les codes de réponse 4xx pouvant faire l'objet d'une nouvelle exécution. Actuellement, la seule erreur pouvant faire l'objet d'une nouvelle tentative est l'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 qu'il est possible de réessayer. |
numRetries |
Spécifie le nombre de tentatives autorisées. Ce nombre doit être supérieur à 0. Si aucune valeur n'est spécifiée, la valeur par défaut est 1. |
perTryTimeout |
Spécifie un délai non nul par tentative. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
RequestMirrorPolicy
Spécifie la règle concernant la façon dont les requêtes sont mises en miroir vers un service de destination distinct. Le proxy n'attend pas de réponse du service non documenté. Avant d'envoyer du trafic au service non documenté, le suffixe "-shadow" est ajouté à l'en-tête d'hôte/d'autorité.
| Représentation JSON |
|---|
{
"destination": {
object ( |
| Fields | |
|---|---|
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 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 } |
| Fields | |
|---|---|
allowOrigins[] |
Spécifie la liste des origines qui seront autorisées à effectuer 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 modèles d'expression régulière qui correspondent aux origines autorisées. Pour en savoir plus sur la grammaire des expressions régulières, consultez 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 (en secondes) de mise en cache des résultats d'une requête préliminaire. Cela se traduit par l'en-tête Access-Control-Max-Age. |
allowCredentials |
En réponse à une requête préliminaire, la définition de cette valeur 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 "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 données fournit un "cookie de session" nommé "GSSA" qui encode un hôte de destination spécifique. Chaque requête contenant ce cookie sera dirigée vers cet hôte tant que l'hôte de destination reste opérationnel et en bon état.
La bibliothèque de maillage sans proxy gRPC ou le proxy side-car gèrent le cookie de session, mais le code de l'application cliente est responsable de la copie du cookie de chaque RPC de la session vers le suivant.
| Représentation JSON |
|---|
{ "cookieTtl": string } |
| Fields | |
|---|---|
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 définie sur une valeur 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 |
| Fields | |
|---|---|
status |
Obligatoire. État à renvoyer dans la réponse HTTP. Vous devez saisir un entier positif. |
Champ d'union HttpBody. Corps à renvoyer dans la 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. La longueur du 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. |
Methods |
|
|---|---|
|
Crée une ressource HttpRoute dans un projet et un emplacement donnés. |
|
Supprime une seule ressource HttpRoute. |
|
Récupère les détails d'une seule ressource HttpRoute. |
|
Liste les objets HttpRoute d'un projet et d'un emplacement donnés. |
|
Met à jour les paramètres d'une seule ressource HttpRoute. |
|
Définit la stratégie de contrôle des accès de la ressource spécifiée. |
|
Renvoie les autorisations qu'un appelant a sur la ressource spécifiée. |