- Ressource: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Type
- HeaderMatch
- Type
- RouteAction
- Destination
- FaultInjectionPolicy
- Délai
- Avorter
- RetryPolicy
- StatefulSessionAffinityPolicy
- Méthodes
Ressource: GrpcRoute
GrpcRoute est la ressource qui définit le routage du trafic gRPC acheminé par une ressource Mesh ou Gateway.
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 |
Obligatoire. 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. 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 : |
labels |
Facultatif. Ensemble de tags de libellé associés à la ressource GrpcRoute. Objet contenant une liste de paires |
description |
Facultatif. Description libre de la ressource. Longueur maximale : 1 024 caractères. |
hostnames[] |
Obligatoire. Noms d'hôte de service avec un port facultatif pour lequel ce routage 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 d'un nom d'hôte dans la RFC 1123, à deux exceptions près: - 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", c'est-à-dire un nom de domaine sans le point final d'un hôte réseau (par exemple, Notez que, conformément aux RFC 1035 et RFC 1123, un libellé doit contenir des caractères alphanumériques minuscules ou "-", 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 à une passerelle doivent avoir des noms d'hôte uniques. Si vous essayez 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 des 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. Les "maillages" définissent une liste de maillages auxquels ce GrpcRoute est associé, en tant qu'une des règles de routage pour acheminer les requêtes traitées par le maillage. Chaque référence de maillage doit respecter le format suivant: |
gateways[] |
Facultatif. Gateways définit une liste de passerelles auxquelles ce GrpcRoute est associé, en tant qu'une des règles de routage pour acheminer les requêtes traitées par la passerelle. Chaque référence de passerelle doit respecter le format suivant: |
rules[] |
Obligatoire. Liste de règles détaillées définissant le routage du trafic. Dans un seul GrpcRoute, l'action GrpcRoute.RouteAction associée à la première règle GrpcRoute.RouteRule correspondante est 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. Autrement dit, cette règle sera appliquée 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 le routage du trafic. Ce champ est obligatoire. |
RouteMatch
Critères de correspondance du trafic. Une correspondance RouteMatch est considérée comme valide 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 correspond à toutes les méthodes. |
MethodMatch
Spécifie une correspondance avec une méthode.
Représentation JSON |
---|
{
"type": enum ( |
Champs | |
---|---|
type |
Facultatif. Spécifie le nom à mettre en correspondance. 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 de 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 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 comment effectuer 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 auxquels 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 "weight" de ces destinations. |
faultInjectionPolicy |
Facultatif. Spécification de l'injection de pannes introduite dans le trafic pour tester la résilience des clients en cas de défaillance 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 appliqués à un pourcentage de requêtes avant de les envoyer au service de destination. De même, un pourcentage de requêtes provenant de clients peut être interrompu. Les valeurs "timeout" et "retryPolicy" seront ignorées par les clients configurés avec une stratégie de faultInjectionPolicy. |
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) jusqu'à ce que la réponse ait é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 |
Facultatif. Indique la stratégie de nouvelle tentative associée à cet itinéraire. |
statefulSessionAffinity |
Facultatif. Spécifie l'affinité de session avec état basée sur les cookies. |
idleTimeout |
Facultatif. Indique le délai avant expiration d'inactivité pour la route sélectionnée. Le délai avant expiration 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 avant expiration par défaut est de 1 heure. Si cette 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 acheminer le trafic. Doit faire référence à un BackendService ou à un ServiceDirectoryService. |
weight |
Facultatif. Spécifie la proportion de requêtes transférées vers le backend référencé par le champ serviceName. Il est calculé comme suit: - poids/somme des poids de cette liste de destinations. Pour les valeurs non nulles, il peut y avoir un epsilon par rapport à la proportion exacte définie ici, en fonction de la précision prise en charge par une implémentation. Si un seul serviceName est spécifié et qu'il a une pondération supérieure à 0, 100% du trafic est transféré vers ce backend. Si des poids sont spécifiés pour un nom de service, ils doivent l'être pour tous. Si aucune pondération n'est spécifiée pour tous les services, le trafic est réparti à parts égales entre eux. |
FaultInjectionPolicy
Spécification de l'injection de pannes introduite dans le trafic pour tester la résilience des clients en cas de défaillance 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 sur un pourcentage de requêtes avant de les envoyer au service de destination. De même, un pourcentage de requêtes provenant de clients peut être interrompu.
Représentation JSON |
---|
{ "delay": { object ( |
Champs | |
---|---|
delay |
Spécification d'injection de retard dans les requêtes client. |
abort |
Spécification pour l'abandon des requêtes client. |
Délai
Spécification de la façon dont les requêtes client sont retardées dans le cadre de l'injection de fautes avant d'être envoyées à une destination.
Représentation JSON |
---|
{ "fixedDelay": string, "percentage": integer } |
Champs | |
---|---|
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 de trafic sur lequel un délai sera injecté. La valeur doit être comprise entre 0 et 100. |
Annuler
Spécification de la manière dont les requêtes client sont interrompues dans le cadre de l'injection de fautes avant d'être envoyées à une destination.
Représentation JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Champs | |
---|---|
httpStatus |
Code d'état HTTP utilisé pour interrompre 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. |
RetryPolicy
Spécifications des nouvelles tentatives.
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 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 qu'il restera opérationnel.
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 chargé de copier le cookie de chaque RPC de la session à la suivante.
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 un GrpcRoute dans un projet et un emplacement donnés. |
|
Supprime un seul GrpcRoute. |
|
Récupère les informations d'un seul GrpcRoute. |
|
Récupère la stratégie de contrôle d'accès d'une ressource. |
|
Répertorie les GrpcRoutes d'un projet et d'un emplacement donnés. |
|
Met à jour les paramètres d'un seul objet 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. |