- משאב: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- סוג
- HeaderMatch
- סוג
- RouteAction
- יעד
- FaultInjectionPolicy
- עיכוב
- ביטול
- RetryPolicy
- StatefulSessionAffinityPolicy
- Methods
משאב: GrpcRoute
GrpcRoute הוא המשאב שמגדיר איך תעבורת נתונים של gRPC שמנותבת על ידי משאב Mesh או Gateway מנותבת.
| ייצוג ב-JSON |
|---|
{
"name": string,
"selfLink": string,
"createTime": string,
"updateTime": string,
"labels": {
string: string,
...
},
"description": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"rules": [
{
object ( |
| שדות | |
|---|---|
name |
מזהה. השם של משאב GrpcRoute. היא תואמת לתבנית |
selfLink |
פלט בלבד. כתובת ה-URL של מקור המידע הזה שהוגדרה על ידי השרת |
createTime |
פלט בלבד. חותמת הזמן שבה נוצר המשאב. הפורמט הוא RFC 3339, והפלט שנוצר תמיד יהיה בפורמט Z עם 0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים חוץ מ-Z. דוגמאות: |
updateTime |
פלט בלבד. חותמת הזמן של מועד העדכון של המשאב. הפורמט הוא RFC 3339, והפלט שנוצר תמיד יהיה בפורמט Z עם 0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים חוץ מ-Z. דוגמאות: |
labels |
זה שינוי אופציונלי. קבוצת תגי תוויות שמשויכים למשאב GrpcRoute. אובייקט שמכיל רשימה של |
description |
זה שינוי אופציונלי. תיאור של המשאב בטקסט חופשי. אורך מקסימלי של 1,024 תווים. |
hostnames[] |
חובה. שמות מארחים של שירותים עם יציאה אופציונלית שמתארת את התעבורה במסלול הזה. פורמט: שם המארח הוא שם הדומיין שמוגדר במלואו של מארח ברשת. ההגדרה הזו תואמת להגדרה של שם מארח ב-RFC 1123, עם שני חריגים בולטים: – אסור להשתמש בכתובות IP. – שם מארח יכול להתחיל בתווית של תו כללי לחיפוש ( שם המארח יכול להיות 'מדויק', כלומר שם דומיין ללא הנקודה שמסיימת את שם המארח ברשת (למשל, שימו לב: בהתאם ל-RFC1035 ול-RFC1123, תווית חייבת לכלול תווים אלפאנומריים באותיות קטנות או '-', ולהתחיל ולהסתיים בתו אלפאנומרי. אסור להשתמש בסימני פיסוק אחרים. למסלולים שמשויכים לרשת Mesh או לשער צריך להיות שם מארח ייחודי. אם תנסו לצרף כמה מסלולים עם שמות מארחים סותרים, המערכת תדחה את ההגדרה. לדוגמה, אפשר לשייך את המסלולים של שמות המארחים אם מציינים יציאה, לקוחות gRPC צריכים להשתמש ב-URI של הערוץ עם היציאה כדי להתאים לכלל הזה (למשל, xds:///service:123), אחרת הם צריכים לספק את ה-URI ללא יציאה (למשל, xds:///service). |
meshes[] |
זה שינוי אופציונלי. השדה Meshes מגדיר רשימה של רשתות שאליהן מצורף GrpcRoute, כאחד מכללי הניתוב לניתוב הבקשות שמטופלות על ידי הרשת. כל הפניה לרשת צריכה להתאים לתבנית: |
gateways[] |
זה שינוי אופציונלי. השדה Gateways מגדיר רשימה של שערים שאליהם מצורף GrpcRoute, כאחד מכללי הניתוב לניתוב הבקשות שהשער משרת. כל הפניה לשער צריכה להתאים לתבנית: |
rules[] |
חובה. רשימה של כללים מפורטים שמגדירים איך לנתב את התנועה. ב-GrpcRoute יחיד, תתבצע הפעולה GrpcRoute.RouteAction שמשויכת ל-GrpcRoute.RouteRule הראשון שתואם. צריך לספק לפחות כלל אחד. |
RouteRule
הסבר על ניתוב תנועה.
| ייצוג ב-JSON |
|---|
{ "matches": [ { object ( |
| שדות | |
|---|---|
matches[] |
זה שינוי אופציונלי. התאמות מגדירות תנאים שמשמשים להתאמת הכלל לבקשות gRPC נכנסות. כל התאמה היא עצמאית, כלומר הכלל הזה יתאים אם תנאי ההתאמה יתקיים באחת מההתאמות. אם לא מציינים שדה של התאמות, הכלל הזה יתאים לתנועה ללא תנאי. |
action |
חובה. כלל מפורט שמגדיר איך לנתב את תעבורת הנתונים. חובה למלא את השדה הזה. |
RouteMatch
קריטריונים להתאמת תנועה. התאמה של RouteMatch תיחשב כהתאמה אם כל השדות שסופקו תואמים.
| ייצוג ב-JSON |
|---|
{ "headers": [ { object ( |
| שדות | |
|---|---|
headers[] |
זה שינוי אופציונלי. מציינים אוסף של כותרות שצריך למצוא להן התאמה. |
method |
זה שינוי אופציונלי. שיטת gRPC להתאמה. אם השדה הזה ריק או מושמט, הוא יתאים לכל השיטות. |
MethodMatch
מציין התאמה לשיטה.
| ייצוג ב-JSON |
|---|
{
"type": enum ( |
| שדות | |
|---|---|
type |
זה שינוי אופציונלי. קובע איך להתאים לשם. אם לא מציינים ערך, המערכת משתמשת בערך ברירת המחדל EXACT. |
grpcService |
חובה. שם השירות שרוצים להתאים לו. אם לא מצוין ערך, המדיניות תחול על כל השירותים. |
grpcMethod |
חובה. שם השיטה שרוצים להשוות אליה. אם לא מצוין ערך, יתבצע התאמה לכל השיטות. |
caseSensitive |
זה שינוי אופציונלי. מציין שההתאמות הן תלויות אותיות רישיות. ערך ברירת המחדל הוא true. אי אפשר להשתמש ב-caseSensitive עם סוג של REGULAR_EXPRESSION. |
סוג
סוג ההתאמה.
| טיפוסים בני מנייה (enum) | |
|---|---|
TYPE_UNSPECIFIED |
לא צוין. |
EXACT |
ההתאמה תהיה רק לשם המדויק שצוין. |
REGULAR_EXPRESSION |
המערכת תפרש את grpcMethod ואת grpcService כביטויי Regular. יש תמיכה בתחביר RE2. |
HeaderMatch
התאמה לאוסף של כותרות.
| ייצוג ב-JSON |
|---|
{
"type": enum ( |
| שדות | |
|---|---|
type |
זה שינוי אופציונלי. מציין איך להתאים לערך של הכותרת. אם לא מציינים ערך, המערכת משתמשת בערך ברירת המחדל EXACT. |
key |
חובה. המפתח של הכותרת. |
value |
חובה. הערך של הכותרת. |
סוג
סוג ההתאמה.
| טיפוסים בני מנייה (enum) | |
|---|---|
TYPE_UNSPECIFIED |
לא צוין. |
EXACT |
ההתאמה תהיה רק לערך המדויק שצוין. |
REGULAR_EXPRESSION |
יתאימו לנתיבים שתואמים לתחילית שצוינה בערך. יש תמיכה בתחביר RE2. |
RouteAction
מציינת איך לנתב תנועה תואמת.
| ייצוג ב-JSON |
|---|
{ "destinations": [ { object ( |
| שדות | |
|---|---|
destinations[] |
זה שינוי אופציונלי. שירותי היעד שאליהם התנועה תועבר. אם מציינים כמה יעדים, התנועה תפוצל בין שירותי ה-Backend בהתאם לשדה המשקל של היעדים האלה. |
faultInjectionPolicy |
זה שינוי אופציונלי. המפרט להזרקת תקלות שמוחדר לתנועה כדי לבדוק את העמידות של לקוחות לכשל בשירות היעד. כחלק מהזרקת תקלות, כשלקוחות שולחים בקשות ליעד, יכול להיות שיווצרו עיכובים באחוז מסוים מהבקשות לפני שהן יישלחו לשירות היעד. באופן דומה, אפשר להפסיק בקשות מלקוחות עבור אחוז מסוים מהבקשות. לקוחות שהוגדרה להם מדיניות faultInjectionPolicy יתעלמו מההגדרות timeout ו-retryPolicy |
timeout |
זה שינוי אופציונלי. מציינת את הזמן הקצוב לתפוגה של הנתיב שנבחר. הזמן הקצוב לתפוגה מחושב מהרגע שבו הבקשה עובדה במלואה (כלומר, סוף הזרם) ועד שהתשובה עובדה במלואה. הזמן הקצוב לתפוגה כולל את כל הניסיונות החוזרים. משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-' |
retryPolicy |
זה שינוי אופציונלי. המדיניות הזו מגדירה את מדיניות הניסיון החוזר שמשויכת למסלול הזה. |
statefulSessionAffinity |
זה שינוי אופציונלי. מציין זיקה למשך פעילות הסשן עם שמירת מצב שמבוססת על קובצי Cookie. |
idleTimeout |
זה שינוי אופציונלי. מציינים את הזמן הקצוב לתפוגה של חוסר פעילות עבור המסלול שנבחר. הזמן הקצוב לתפוגה במצב המתנה מוגדר כפרק הזמן שבו לא נשלחים או מתקבלים בייטים בחיבור במעלה הזרם או במורד הזרם. אם לא מגדירים את משך הזמן הקצוב ללא פעילות, ברירת המחדל היא שעה אחת. אם מגדירים את הערך ל-0s, פסק הזמן מושבת. משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-' |
יעד
היעד שאליו תנותב התנועה.
| ייצוג ב-JSON |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד destination_type. מציין את סוג היעד שאליו תנותב התנועה. הערך destination_type יכול להיות רק אחד מהבאים: |
|
serviceName |
חובה. כתובת ה-URL של שירות היעד שאליו תנותב תנועת הגולשים. חובה להפנות אל BackendService או אל ServiceDirectoryService. |
weight |
זה שינוי אופציונלי. מציין את שיעור הבקשות שמועברות לחלק האחורי שאליו מתייחס השדה serviceName. החישוב מתבצע באופן הבא: משקל חלקי סכום המשקלים ברשימת היעדים הזו. לערכים שאינם אפס, יכול להיות שיהיה אפסילון מסוים מהפרופורציה המדויקת שמוגדרת כאן, בהתאם לדיוק שההטמעה תומכת בו. אם מציינים רק serviceName אחד והמשקל שלו גדול מ-0, 100% מהתנועה מועברים לקצה העורפי הזה. אם מציינים משקלים לשם שירות אחד, צריך לציין משקלים לכל שמות השירותים. אם לא מציינים משקלים לכל השירותים, התנועה מתחלקת ביניהם באופן שווה. |
FaultInjectionPolicy
המפרט להזרקת תקלות שמוחדר לתנועה כדי לבדוק את העמידות של לקוחות לכשל בשירות היעד. כחלק מהזרקת תקלות, כשלקוחות שולחים בקשות ליעד, יכול להיות שיווצרו עיכובים באחוז מסוים מהבקשות לפני שהן יישלחו לשירות היעד. באופן דומה, אפשר להפסיק בקשות מלקוחות עבור אחוז מסוים מהבקשות.
| ייצוג ב-JSON |
|---|
{ "delay": { object ( |
| שדות | |
|---|---|
delay |
המפרט להוספת עיכוב לבקשות של לקוחות. |
abort |
המפרט לביטול בקשות ללקוח. |
השהיה
הגדרה של אופן העיכוב של בקשות לקוח כחלק מהחדרת תקלות לפני שהן נשלחות ליעד.
| ייצוג ב-JSON |
|---|
{ "fixedDelay": string, "percentage": integer } |
| שדות | |
|---|---|
fixedDelay |
מציינים השהיה קבועה לפני העברת הבקשה. משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-' |
percentage |
אחוז התנועה שיוזרק לה עיכוב. הערך צריך להיות בין 0 ל-100 |
ביטול
הגדרה של אופן ביטול הבקשות של הלקוח כחלק מהחדרת תקלות לפני שהן נשלחות ליעד.
| ייצוג ב-JSON |
|---|
{ "httpStatus": integer, "percentage": integer } |
| שדות | |
|---|---|
httpStatus |
קוד סטטוס של HTTP ששימש לביטול הבקשה. הערך צריך להיות בין 200 ל-599 כולל. |
percentage |
אחוז התנועה שיבוטל. הערך צריך להיות בין 0 ל-100 |
RetryPolicy
המפרט של ניסיונות חוזרים. מציינים תנאי אחד או יותר שכלל הניסיון החוזר הזה חל עליהם. הערכים החוקיים הם:
| ייצוג ב-JSON |
|---|
{ "retryConditions": [ string ], "numRetries": integer } |
| שדות | |
|---|---|
retryConditions[] |
|
numRetries |
מציין את מספר הניסיונות החוזרים המותר. המספר הזה חייב להיות גדול מ-0. אם לא מציינים ערך, ברירת המחדל היא 1. |
StatefulSessionAffinityPolicy
המפרט של זיקה לסשן מבוססת-Cookie עם שמירת מצב שבה מישור הנתונים מספק 'קובץ Cookie זמני' עם השם GSSA שמקודד מארח יעד ספציפי, וכל בקשה שמכילה את קובץ ה-Cookie הזה תופנה למארח הזה כל עוד מארח היעד פעיל ותקין.
ספריית ה-gRPC proxyless mesh או קובץ העזר החיצוני ינהלו את קובץ ה-Cookie הזמני, אבל קוד אפליקציית הלקוח אחראי להעתקת קובץ ה-Cookie מכל RPC בסשן אל ה-RPC הבא.
| ייצוג ב-JSON |
|---|
{ "cookieTtl": string } |
| שדות | |
|---|---|
cookieTtl |
חובה. ערך ה-TTL של קובץ ה-Cookie בכותרת Set-Cookie שנוצרת על ידי מישור הנתונים. אפשר להגדיר את אורך החיים של קובץ ה-Cookie לערך בין 1 ל-86,400 שניות (24 שעות), כולל. משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-' |
Methods |
|
|---|---|
|
יוצרת GrpcRoute חדש בפרויקט ובמיקום נתונים. |
|
מחיקת GrpcRoute יחיד. |
|
קבלת פרטים של GrpcRoute יחיד. |
|
מקבלת את מדיניות בקרת הגישה למשאב. |
|
הצגת רשימה של GrpcRoutes בפרויקט ובמיקום נתונים. |
|
עדכון הפרמטרים של GrpcRoute יחיד. |
|
הגדרת מדיניות בקרת הגישה במשאב שצוין. |
|
מחזירה את ההרשאות שיש לפונקציית קריאה חוזרת (caller) במשאב שצוין. |