- Ressource : GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Type
- HeaderMatch
- Type
- RouteAction
- Destination
- FaultInjectionPolicy
- Delay
- Abort
- RetryPolicy
- StatefulSessionAffinityPolicy
- Méthodes
Ressource : GrpcRoute
GrpcRoute est la ressource qui définit la manière dont le trafic gRPC acheminé par une ressource Mesh ou Gateway est acheminé.
| Représentation JSON |
|---|
{
"name": string,
"selfLink": string,
"createTime": string,
"updateTime": string,
"labels": {
string: string,
...
},
"description": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"rules": [
{
object ( |
| Champs | |
|---|---|
name |
Identifiant. Nom de la ressource GrpcRoute. Il correspond au modèle |
selfLink |
Uniquement en sortie. URL de cette ressource définie par le serveur. |
createTime |
Uniquement en sortie. Code temporel de la création de la ressource. Utilise la norme RFC 3339, où le résultat généré se sert toujours du format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
updateTime |
Uniquement en sortie. Code temporel de la mise à jour de la ressource. Utilise la norme RFC 3339, où le résultat généré se sert toujours du format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
labels |
Facultatif. Ensemble de tags d'étiquette associés à la ressource GrpcRoute. Objet contenant une liste de paires |
description |
Facultatif. Description en texte libre de la ressource. Longueur recommandée : 1 024 caractères. |
hostnames[] |
Obligatoire. Noms d'hôte de service avec un port facultatif pour lequel cet itinéraire décrit le trafic. Format : Le nom d'hôte est le nom de domaine complet d'un hôte réseau. Cela correspond à la définition RFC 1123 d'un nom d'hôte, à deux exceptions notables : - Les adresses IP 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 Si un port est spécifié, les clients gRPC doivent utiliser l'URI du canal avec le port pour correspondre à cette règle (par exemple, "xds:///service:123"). Sinon, ils doivent fournir l'URI sans port (par exemple, "xds:///service"). |
meshes[] |
Facultatif. "Meshes" définit une liste de maillages auxquels cette ressource GrpcRoute 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 : |
gateways[] |
Facultatif. "Gateways" définit la liste des passerelles auxquelles cette ressource GrpcRoute 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 : |
rules[] |
Obligatoire. Liste des règles détaillées définissant comment acheminer le trafic. Dans une seule ressource GrpcRoute, la ressource GrpcRoute.RouteAction associée à la première ressource GrpcRoute.RouteRule correspondante sera exécutée. Vous devez fournir au moins une règle. |
RouteRule
Décrit comment acheminer le trafic.
| Représentation JSON |
|---|
{ "matches": [ { object ( |
| Champs | |
|---|---|
matches[] |
Facultatif. Les correspondances définissent les conditions utilisées pour faire correspondre la règle aux requêtes gRPC 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. |
action |
Obligatoire. Règle détaillée définissant comment acheminer le trafic. Ce champ est obligatoire. |
RouteMatch
Critères de correspondance du trafic. Une RouteMatch est considérée comme correspondante lorsque tous les champs fournis correspondent.
| Représentation JSON |
|---|
{ "headers": [ { object ( |
| Champs | |
|---|---|
headers[] |
Facultatif. Spécifie une collection d'en-têtes à faire correspondre. |
method |
Facultatif. Méthode gRPC à mettre en correspondance. Si ce champ est vide ou omis, il correspondra à toutes les méthodes. |
MethodMatch
Spécifie une correspondance avec une méthode.
| Représentation JSON |
|---|
{
"type": enum ( |
| Champs | |
|---|---|
type |
Facultatif. Indique comment établir une correspondance avec le nom. Si aucune valeur n'est spécifiée, la valeur par défaut "EXACT" est utilisée. |
grpcService |
Obligatoire. Nom du service avec lequel établir une correspondance. S'il n'est pas spécifié, la correspondance est effectuée avec tous les services. |
grpcMethod |
Obligatoire. Nom de la méthode à mettre en correspondance. Si aucune valeur n'est spécifiée, toutes les méthodes sont mises en correspondance. |
caseSensitive |
Facultatif. Indique que les correspondances sont sensibles à la casse. La valeur par défaut est "true". "caseSensitive" ne doit pas être utilisé avec un type REGULAR_EXPRESSION. |
Type
Type de correspondance.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Non spécifié. |
EXACT |
Ne correspond qu'au nom exact fourni. |
REGULAR_EXPRESSION |
Interprète grpcMethod et grpcService comme des expressions régulières. La syntaxe RE2 est acceptée. |
HeaderMatch
Correspondance avec une collection d'en-têtes.
| Représentation JSON |
|---|
{
"type": enum ( |
| Champs | |
|---|---|
type |
Facultatif. Spécifie une correspondance avec la valeur de l'en-tête. Si aucune valeur n'est spécifiée, la valeur par défaut EXACT est utilisée. |
key |
Obligatoire. Clé de l'en-tête. |
value |
Obligatoire. Valeur de l'en-tête. |
Type
Type de correspondance.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Non spécifié. |
EXACT |
Ne correspond qu'à la valeur exacte fournie. |
REGULAR_EXPRESSION |
Correspond aux chemins conformes au préfixe spécifié par la valeur. La syntaxe RE2 est acceptée. |
RouteAction
Indique comment acheminer le trafic correspondant.
| Représentation JSON |
|---|
{ "destinations": [ { object ( |
| Champs | |
|---|---|
destinations[] |
Facultatif. Services de destination vers lesquels le trafic doit être transféré. Si plusieurs destinations sont spécifiées, le trafic sera réparti entre les services de backend en fonction du champ de pondération de ces destinations. |
faultInjectionPolicy |
Facultatif. 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 sur un pourcentage de requêtes avant de les envoyer au service de destination. 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. |
timeout |
Facultatif. 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 |
Facultatif. Spécifie la règle de nouvelle tentative associée à cette route. |
statefulSessionAffinity |
Facultatif. Spécifie l'affinité de session avec état basée sur les cookies. |
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
Destination vers laquelle le trafic sera acheminé.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union destination_type. Spécifie le type de destination vers laquelle le trafic sera acheminé. destination_type ne peut être qu'un des éléments suivants : |
|
serviceName |
Obligatoire. URL d'un service de destination vers lequel le trafic doit être acheminé. Doit faire référence à un BackendService ou à un ServiceDirectoryService. |
weight |
Facultatif. 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. |
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 sur un pourcentage de requêtes avant de les envoyer au service de destination. De même, les requêtes des clients peuvent être annulées pour un certain 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]. |
RetryPolicy
Spécifications pour les nouvelles tentatives. Spécifie une ou plusieurs conditions d'application de cette règle de nouvelle tentative. Les valeurs possibles sont les suivantes :
| Représentation JSON |
|---|
{ "retryConditions": [ string ], "numRetries": integer } |
| Champs | |
|---|---|
retryConditions[] |
|
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. |
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 } |
| 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 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 " |
Méthodes |
|
|---|---|
|
Crée une ressource GrpcRoute dans un projet et un emplacement donnés. |
|
Supprime une seule ressource GrpcRoute. |
|
Récupère les détails d'une seule ressource GrpcRoute. |
|
Liste les ressources GrpcRoutes d'un projet et d'un emplacement donnés. |
|
Met à jour les paramètres d'une seule ressource GrpcRoute. |
|
Définit la stratégie de contrôle d'accès de la ressource spécifiée. |
|
Renvoie les autorisations qu'un appelant a sur la ressource spécifiée. |