REST Resource: projects.locations.httpRoutes

משאב: HttpRoute

‫HttpRoute הוא המשאב שמגדיר איך תעבורת הנתונים ב-HTTP צריכה להיות מנותבת על ידי משאב Mesh או Gateway.

ייצוג ב-JSON
{
  "name": string,
  "selfLink": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "hostnames": [
    string
  ],
  "meshes": [
    string
  ],
  "gateways": [
    string
  ],
  "labels": {
    string: string,
    ...
  },
  "rules": [
    {
      object (RouteRule)
    }
  ]
}
שדות
name

string

מזהה. השם של משאב ה-HttpRoute. הוא תואם לתבנית projects/*/locations/*/httpRoutes/http_route_name>.

description

string

זה שינוי אופציונלי. תיאור של המשאב בטקסט חופשי. אורך מקסימלי של 1,024 תווים.

createTime

string (Timestamp format)

פלט בלבד. חותמת הזמן של מועד יצירת המשאב.

השימוש הוא ב-RFC 3339, שבו הפלט שנוצר תמיד יהיה מנורמל ל-Z וישתמש ב-0, 3, 6 או 9 ספרות אחרי הנקודה העשרונית. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. לדוגמה: "2014-10-02T15:01:23Z", ‏ "2014-10-02T15:01:23.045123456Z" או "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

פלט בלבד. חותמת הזמן של מועד העדכון של המשאב.

השימוש הוא ב-RFC 3339, שבו הפלט שנוצר תמיד יהיה מנורמל ל-Z וישתמש ב-0, 3, 6 או 9 ספרות אחרי הנקודה העשרונית. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. לדוגמה: "2014-10-02T15:01:23Z", ‏ "2014-10-02T15:01:23.045123456Z" או "2014-10-02T15:01:23+05:30".

hostnames[]

string

חובה. שמות מארחים מגדירים קבוצה של מארחים שצריכים להתאים לכותרת המארח של HTTP כדי לבחור HttpRoute לעיבוד הבקשה. שם המארח הוא שם הדומיין שמוגדר במלואו של מארח רשת, כפי שמוגדר ב-RFC 1123, למעט: - אסור להשתמש בכתובות IP. - שם מארח יכול להתחיל בתווית של תו כללי לחיפוש (*.). התווית של התו הכללי לחיפוש חייבת להופיע לבד בתור התווית הראשונה.

שם המארח יכול להיות "מדויק", כלומר שם דומיין בלי הנקודה בסוף של מארח רשת (למשל foo.example.com), או "תו כללי לחיפוש", כלומר שם דומיין עם תווית של תו כללי לחיפוש בתחילת השם (למשל *.example.com).

חשוב לזכור שבהתאם ל-RFC1035 ול-RFC1123, תווית חייבת להכיל תווים אלפאנומריים באותיות קטנות או "-", ולהתחיל ולהסתיים בתו אלפאנומרי. אסור להשתמש בסימני פיסוק אחרים.

למסלולים שמשויכים ל-Mesh או לשערים חייבים להיות שמות מארחים ייחודיים. אם תנסו לצרף כמה נתיבים עם שמות מארחים סותרים, ההגדרה תידחה.

לדוגמה, אפשר לשייך מסלולים לשמות המארחים *.foo.bar.com ו-*.bar.com לאותו Mesh (או לשערים באותו היקף), אבל אי אפשר לשייך שני מסלולים ל-*.bar.com או ל-bar.com.

meshes[]

string

זה שינוי אופציונלי. השדה Meshes מגדיר רשימה של רשתות שאליהן מחובר ה-HttpRoute הזה, כאחד מכללי הניתוב לניתוב הבקשות שמטופלות על ידי הרשת.

כל הפניה לרשת צריכה להתאים לתבנית: projects/*/locations/*/meshes/<mesh_name>

ה-Mesh המצורף צריך להיות מסוג SIDECAR

gateways[]

string

זה שינוי אופציונלי. השערים מגדירים רשימה של שערים שה-HttpRoute הזה מצורף אליהם, כאחד מכללי המסלול לניתוב הבקשות שהשער מטפל בהן.

כל הפניה לשער צריכה להתאים לתבנית: projects/*/locations/*/gateways/<gateway_name>

labels

map (key: string, value: string)

זה שינוי אופציונלי. קבוצה של תגי תוויות שמשויכים למשאב HttpRoute.

אובייקט שמכיל רשימה של זוגות "key": value. לדוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

rules[]

object (RouteRule)

חובה. כללים שמגדירים איך התנועה מנותבת ומטופלת. הכללים יותאמו ברצף על סמך ה-RouteMatch שצוין לכלל.

RouteRule

מציינת איך להתאים את התנועה ואיך לנתב אותה כשהיא תואמת.

ייצוג ב-JSON
{
  "matches": [
    {
      object (RouteMatch)
    }
  ],
  "action": {
    object (RouteAction)
  }
}
שדות
matches[]

object (RouteMatch)

רשימת התאמות מגדירה תנאים שמשמשים להתאמת הכלל לבקשות HTTP נכנסות. כל התאמה היא עצמאית, כלומר הכלל הזה יתאים אם לפחות אחת מההתאמות תתקיים.

אם לא צוין שדה התאמות, הכלל הזה יתאים לתנועה ללא תנאי.

אם רוצים להגדיר כלל ברירת מחדל, צריך להוסיף כלל בלי לציין התאמות בסוף רשימת הכללים.

action

object (RouteAction)

הכלל המפורט שמגדיר איך לנתב תנועה תואמת.

RouteMatch

‫RouteMatch מגדיר מפרטים שמשמשים להתאמת בקשות. אם מוגדרים כמה סוגי התאמה, ה-RouteMatch הזה יתאים אם כל סוגי ההתאמות יתאימו.

ייצוג ב-JSON
{
  "ignoreCase": boolean,
  "headers": [
    {
      object (HeaderMatch)
    }
  ],
  "queryParameters": [
    {
      object (QueryParameterMatch)
    }
  ],

  // Union field PathMatch can be only one of the following:
  "fullPathMatch": string,
  "prefixMatch": string,
  "regexMatch": string
  // End of list of possible types for union field PathMatch.
}
שדות
ignoreCase

boolean

המדיניות הזו קובעת אם ההתאמות של prefixMatch ו-fullPathMatch תלויות אותיות רישיות. ערך ברירת המחדל הוא False.

headers[]

object (HeaderMatch)

מציינת רשימה של כותרות של בקשות HTTP להתאמה. כל הכותרות שסופקו חייבות להתאים.

queryParameters[]

object (QueryParameterMatch)

מציינת רשימה של פרמטרים של שאילתות להתאמה. כל הפרמטרים של השאילתה חייבים להתאים.

שדה של איחוד PathMatch.

הערך PathMatch יכול להיות רק אחד מהבאים:

fullPathMatch

string

ערך הנתיב של בקשת ה-HTTP צריך להיות זהה לערך הזה.

אפשר להשתמש רק באחד מהשדות הבאים: fullPathMatch,‏ prefixMatch או regexMatch.

prefixMatch

string

ערך הנתיב של בקשת ה-HTTP חייב להתחיל ב-prefixMatch שצוין. הערך של prefixMatch חייב להתחיל ב-/.

אפשר להשתמש רק באחד מהשדות הבאים: fullPathMatch,‏ prefixMatch או regexMatch.

regexMatch

string

הערך של נתיב בקשת ה-HTTP חייב להתאים לביטוי הרגולרי שצוין על ידי regexMatch, אחרי הסרת כל הפרמטרים של השאילתה והעוגן שסופקו עם כתובת ה-URL המקורית. למידע על הדקדוק של ביטויים רגולריים, אפשר לעיין בכתובת https://github.com/google/re2/wiki/Syntax

אפשר להשתמש רק באחד מהשדות הבאים: fullPathMatch,‏ prefixMatch או regexMatch.

HeaderMatch

מציין איך לבחור כלל מסלול על סמך כותרות של בקשות HTTP.

ייצוג ב-JSON
{
  "header": string,
  "invertMatch": boolean,

  // Union field MatchType can be only one of the following:
  "exactMatch": string,
  "regexMatch": string,
  "prefixMatch": string,
  "presentMatch": boolean,
  "suffixMatch": string,
  "rangeMatch": {
    object (IntegerRange)
  }
  // End of list of possible types for union field MatchType.
}
שדות
header

string

השם של כותרת ה-HTTP שצריך להתאים.

invertMatch

boolean

אם מציינים את האפשרות הזו, תוצאת ההתאמה תהפוך לפני הבדיקה. ערך ברירת המחדל הוא False.

שדה של איחוד MatchType.

הערך MatchType יכול להיות רק אחד מהבאים:

exactMatch

string

הערך של הכותרת צריך להיות זהה לתוכן של exactMatch.

regexMatch

string

הערך של הכותרת חייב להתאים לביטוי הרגולרי שצוין ב-regexMatch. למידע על הדקדוק של ביטויים רגולריים, אפשר לעיין בכתובת: https://github.com/google/re2/wiki/Syntax

prefixMatch

string

הערך של הכותרת חייב להתחיל בתוכן של prefixMatch.

presentMatch

boolean

חייבת להיות כותרת עם headerName. ההתאמה מתבצעת גם אם לכותרת יש ערך וגם אם לא.

suffixMatch

string

הערך של הכותרת חייב להסתיים בתוכן של suffixMatch.

rangeMatch

object (IntegerRange)

אם מציינים את הפרמטר הזה, הכלל יתאים אם הערך של request header נמצא בטווח.

IntegerRange

מייצג טווח של ערכים מסוג מספר שלם.

ייצוג ב-JSON
{
  "start": integer,
  "end": integer
}
שדות
start

integer

תחילת הטווח (כולל)

end

integer

סוף הטווח (לא כולל)

QueryParameterMatch

מפרטים להתאמה של פרמטר שאילתה בבקשה.

ייצוג ב-JSON
{
  "queryParameter": string,

  // Union field MatchType can be only one of the following:
  "exactMatch": string,
  "regexMatch": string,
  "presentMatch": boolean
  // End of list of possible types for union field MatchType.
}
שדות
queryParameter

string

השם של פרמטר השאילתה שצריך להתאים.

שדה של איחוד MatchType.

הערך MatchType יכול להיות רק אחד מהבאים:

exactMatch

string

הערך של הפרמטר query חייב להתאים בדיוק לתוכן של exactMatch.

צריך להגדיר רק אחד מהשדות הבאים: exactMatch,‏ regexMatch או presentMatch.

regexMatch

string

הערך של פרמטר השאילתה צריך להתאים לביטוי הרגולרי שצוין על ידי regexMatch. למידע על הדקדוק של ביטויים רגולריים, אפשר לעיין בכתובת https://github.com/google/re2/wiki/Syntax

צריך להגדיר רק אחד מהשדות הבאים: exactMatch,‏ regexMatch או presentMatch.

presentMatch

boolean

מציין שה-QueryParameterMatcher תואם אם הבקשה מכילה פרמטר של שאילתה, בלי קשר לשאלה אם לפרמטר יש ערך או לא.

צריך להגדיר רק אחד מהשדות הבאים: exactMatch,‏ regexMatch או presentMatch.

RouteAction

המפרטים לניתוב תנועה ולהחלת כללי מדיניות משויכים.

ייצוג ב-JSON
{
  "destinations": [
    {
      object (Destination)
    }
  ],
  "redirect": {
    object (Redirect)
  },
  "faultInjectionPolicy": {
    object (FaultInjectionPolicy)
  },
  "requestHeaderModifier": {
    object (HeaderModifier)
  },
  "responseHeaderModifier": {
    object (HeaderModifier)
  },
  "urlRewrite": {
    object (URLRewrite)
  },
  "timeout": string,
  "retryPolicy": {
    object (RetryPolicy)
  },
  "requestMirrorPolicy": {
    object (RequestMirrorPolicy)
  },
  "corsPolicy": {
    object (CorsPolicy)
  },
  "statefulSessionAffinity": {
    object (StatefulSessionAffinityPolicy)
  },
  "directResponse": {
    object (HttpDirectResponse)
  },
  "idleTimeout": string
}
שדות
destinations[]

object (Destination)

היעד שאליו צריך להעביר את התנועה.

redirect

object (Redirect)

אם השדה מוגדר, הבקשה מופנית לפי ההגדרה בשדה הזה.

faultInjectionPolicy

object (FaultInjectionPolicy)

המפרט של הזרקת תקלות שהוכנסה לתנועה כדי לבדוק את העמידות של הלקוחות לכשל בשירות לקצה העורפי. כחלק מהזרקת תקלות, כשלקוחות שולחים בקשות לשירות לקצה העורפי, אפשר להוסיף עיכובים לאחוז מסוים מהבקשות לפני שהן נשלחות לשירות לקצה העורפי. באופן דומה, אפשר לבטל אחוז מסוים של בקשות מלקוחות.

לקוחות שהוגדרו עם faultInjectionPolicy יתעלמו מ-timeout ומ-retryPolicy

requestHeaderModifier

object (HeaderModifier)

המפרט לשינוי הכותרות של בקשה שמולאה לפני שהבקשה נשלחת ליעד. אם HeaderModifiers מוגדרים גם ב-Destination וגם ב-RouteAction, הם ימוזגו. אם יש סתירות בין שתי ההגדרות, הן לא ייפתרו בהגדרה.

responseHeaderModifier

object (HeaderModifier)

המפרט לשינוי הכותרות של התשובה לפני שהיא נשלחת בחזרה ללקוח. אם HeaderModifiers מוגדרים גם ב-Destination וגם ב-RouteAction, הם ימוזגו. אם יש סתירות בין שתי ההגדרות, הן לא ייפתרו בהגדרה.

urlRewrite

object (URLRewrite)

המפרט לשכתוב כתובת ה-URL לפני העברת הבקשות ליעד.

timeout

string (Duration format)

מציינת את הזמן הקצוב לתפוגה של המסלול שנבחר. זמן הקצוב לתפוגה מחושב מהרגע שהבקשה עובדה במלואה (כלומר, סוף הסטרימינג) ועד שהתגובה עובדה במלואה. זמן הקצוב לתפוגה כולל את כל הניסיונות החוזרים.

משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-"s". לדוגמה: "3.5s".

retryPolicy

object (RetryPolicy)

מציינת את מדיניות הניסיונות החוזרים שמשויכת לנתיב הזה.

requestMirrorPolicy

object (RequestMirrorPolicy)

מציינת את המדיניות לגבי האופן שבו בקשות שמיועדות ליעד של המסלולים מועתקות ליעד נפרד. שרת ה-Proxy לא ימתין לתגובה מיעד הצל לפני שיחזיר את התגובה. לפני שליחת התנועה לשירות הצל, לכותרת המארח/הרשות מתווספת הסיומת ‎-shadow.

corsPolicy

object (CorsPolicy)

המפרט שמאפשר בקשות ממקורות שונים בצד הלקוח.

statefulSessionAffinity

object (StatefulSessionAffinityPolicy)

זה שינוי אופציונלי. מציין זיקה לסשן (session affinity) עם שמירת מצב (stateful) שמבוססת על קובצי Cookie.

directResponse

object (HttpDirectResponse)

זה שינוי אופציונלי. אובייקט סטטי של תגובת HTTP שיוחזר ללא קשר לבקשה.

idleTimeout

string (Duration format)

זה שינוי אופציונלי. מציינת את הזמן הקצוב לתפוגה במצב חוסר פעילות של המסלול שנבחר. זמן קצוב לתפוגה במצב חוסר פעילות מוגדר כפרק הזמן שבו לא נשלחים או מתקבלים בייטים בחיבור במעלה הזרם או במורד הזרם. אם לא מגדירים את המדיניות, ברירת המחדל של זמן הקצוב לתפוגה במצב חוסר פעילות היא שעה אחת. אם מגדירים את הערך 0s, הזמן הקצוב לתפוגה מושבת.

משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-"s". לדוגמה: "3.5s".

יעד

מפרט של יעד שאליו צריך לנתב את הבקשה.

ייצוג ב-JSON
{
  "serviceName": string,
  "weight": integer,
  "requestHeaderModifier": {
    object (HeaderModifier)
  },
  "responseHeaderModifier": {
    object (HeaderModifier)
  }
}
שדות
serviceName

string

כתובת ה-URL של BackendService שאליה תנותב התנועה.

weight

integer

מציין את שיעור הבקשות שמועברות לקצה העורפי שאליו מתייחס השדה serviceName. החישוב הוא: - משקל/סכום(משקלים ברשימת היעדים הזו). לערכים שאינם אפס, יכול להיות שיהיה אפסילון מסוים מהיחס המדויק שמוגדר כאן, בהתאם לדיוק שההטמעה תומכת בו.

אם מציינים רק serviceName אחד והמשקל שלו גדול מ-0, 100% מהתנועה מועברת לקצה העורפי הזה.

אם מציינים משקלים לשם שירות אחד, צריך לציין אותם לכל שמות השירותים.

אם לא צוינו משקלים לאף אחד מהשירותים, התנועה תתחלק באופן שווה בין כולם.

requestHeaderModifier

object (HeaderModifier)

זה שינוי אופציונלי. המפרט לשינוי הכותרות של בקשה שמולאה לפני שהבקשה נשלחת ליעד. אם HeaderModifiers מוגדרים גם ב-Destination וגם ב-RouteAction, הם ימוזגו. אם יש סתירות בין שתי ההגדרות, הן לא ייפתרו בהגדרה.

responseHeaderModifier

object (HeaderModifier)

זה שינוי אופציונלי. המפרט לשינוי הכותרות של התשובה לפני שהיא נשלחת בחזרה ללקוח. אם HeaderModifiers מוגדרים גם ב-Destination וגם ב-RouteAction, הם ימוזגו. אם יש סתירות בין שתי ההגדרות, הן לא ייפתרו בהגדרה.

HeaderModifier

המפרט לשינוי כותרת HTTP בבקשת HTTP ובתגובת HTTP.

ייצוג ב-JSON
{
  "set": {
    string: string,
    ...
  },
  "add": {
    string: string,
    ...
  },
  "remove": [
    string
  ]
}
שדות
set

map (key: string, value: string)

החלפה או החלפה מלאה של הכותרות במפה נתונה, כאשר המפתח הוא שם הכותרת והערך הוא הערך של הכותרת.

אובייקט שמכיל רשימה של זוגות "key": value. לדוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

add

map (key: string, value: string)

מוסיפים את הכותרות עם המפה הנתונה, כאשר המפתח הוא שם הכותרת והערך הוא הערך של הכותרת.

אובייקט שמכיל רשימה של זוגות "key": value. לדוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

remove[]

string

הסרת כותרות (התאמה לפי שמות הכותרות) שצוינו ברשימה.

הפניה לכתובת URL אחרת

המפרט להפניית תנועה.

ייצוג ב-JSON
{
  "hostRedirect": string,
  "pathRedirect": string,
  "prefixRewrite": string,
  "responseCode": enum (ResponseCode),
  "httpsRedirect": boolean,
  "stripQuery": boolean,
  "portRedirect": integer
}
שדות
hostRedirect

string

המארח שישמש בתגובת ההפניה האוטומטית במקום המארח שסופק בבקשה.

pathRedirect

string

הנתיב שישמש בתגובת ההפניה האוטומטית במקום הנתיב שסופק בבקשה. אי אפשר לספק את pathRedirect יחד עם prefixRedirect. צריך לספק רק אחד מהם או אף אחד מהם. אם לא תספקו אף אחד מהם, הנתיב של הבקשה המקורית ישמש להפניה לכתובת URL אחרת.

prefixRewrite

string

מציין שבמהלך ההפניה האוטומטית, צריך להחליף את הקידומת (או הנתיב) התואמת בערך הזה. האפשרות הזו מאפשרת ליצור כתובות URL באופן דינמי על סמך הבקשה.

responseCode

enum (ResponseCode)

קוד הסטטוס של HTTP שבו צריך להשתמש להפניה האוטומטית.

httpsRedirect

boolean

אם הערך הוא True, סכמת ה-URL בבקשה שהופנתה מחדש מוגדרת כ-https. אם המדיניות מוגדרת כ-False, סכמת ה-URL של הבקשה שהופנתה מחדש תישאר זהה לזו של הבקשה.

כברירת מחדל, הערך שמוגדר הוא False.

stripQuery

boolean

אם הערך מוגדר כ-true, כל חלק נלווה של שאילתה בכתובת ה-URL המקורית יוסר לפני הפניית הבקשה. אם המדיניות מוגדרת כ-False, החלק של השאילתה בכתובת ה-URL המקורית נשמר.

כברירת מחדל, הערך שמוגדר הוא False.

portRedirect

integer

היציאה שתשמש בבקשה שהופנתה מחדש, במקום זו שסופקה בבקשה.

ResponseCode

קוד תגובת HTTP נתמך.

טיפוסים בני מנייה (enum)
RESPONSE_CODE_UNSPECIFIED ערך ברירת המחדל
MOVED_PERMANENTLY_DEFAULT תואם ל-301.
FOUND תואם ל-302.
SEE_OTHER תואם ל-303.
TEMPORARY_REDIRECT תואם ל-307. במקרה כזה, שיטת הבקשה תישמר.
PERMANENT_REDIRECT תואם ל-308. במקרה כזה, שיטת הבקשה תישמר.

FaultInjectionPolicy

המפרט של הזרקת תקלות שהוכנס לתנועה כדי לבדוק את העמידות של הלקוחות לכשל בשירות היעד. כחלק מהזרקת תקלות, כשלקוחות שולחים בקשות ליעד, שרת ה-proxy של הלקוח יכול להוסיף עיכובים באחוז מסוים מהבקשות לפני שליחת הבקשות האלה לשירות היעד. באופן דומה, שרת ה-proxy של הלקוח יכול לבטל אחוז מסוים מהבקשות.

ייצוג ב-JSON
{
  "delay": {
    object (Delay)
  },
  "abort": {
    object (Abort)
  }
}
שדות
delay

object (Delay)

המפרט להוספת השהיה לבקשות של לקוחות.

abort

object (Abort)

המפרט לביטול בקשות של לקוחות.

השהיה

מפרט של אופן העיכוב של בקשות לקוח כחלק מהזרקת תקלות לפני שהן נשלחות ליעד.

ייצוג ב-JSON
{
  "fixedDelay": string,
  "percentage": integer
}
שדות
fixedDelay

string (Duration format)

מציינים השהיה קבועה לפני העברת הבקשה.

משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-"s". לדוגמה: "3.5s".

percentage

integer

אחוז התנועה שבה יוזרק עיכוב.

הערך צריך להיות בין [0, 100]

ביטול

מפרט של האופן שבו בקשות לקוח מבוטלות כחלק מהזרקת תקלות לפני שהן נשלחות ליעד.

ייצוג ב-JSON
{
  "httpStatus": integer,
  "percentage": integer
}
שדות
httpStatus

integer

קוד הסטטוס של HTTP שמשמש לביטול הבקשה.

הערך צריך להיות בין 200 ל-599 (כולל).

percentage

integer

אחוז התנועה שתבוטל.

הערך צריך להיות בין [0, 100]

URLRewrite

המפרט לשינוי כתובת ה-URL של הבקשה, לפני העברת הבקשה ליעד.

ייצוג ב-JSON
{
  "pathPrefixRewrite": string,
  "hostRewrite": string
}
שדות
pathPrefixRewrite

string

לפני שהבקשה מועברת ליעד שנבחר, החלק התואם של נתיב הבקשות מוחלף בערך הזה.

hostRewrite

string

לפני שהבקשה מועברת ליעד שנבחר, כותרת המארח של הבקשה מוחלפת בערך הזה.

RetryPolicy

המפרט של הניסיונות החוזרים.

ייצוג ב-JSON
{
  "retryConditions": [
    string
  ],
  "numRetries": integer,
  "perTryTimeout": string
}
שדות
retryConditions[]

string

מציינת תנאי אחד או יותר שבהם המדיניות הזו חלה. ערכים חוקיים: 5xx: שרת ה-Proxy ינסה שוב אם שירות היעד מגיב עם קוד תגובה 5xx, או אם שירות היעד לא מגיב בכלל, לדוגמה: ניתוק, איפוס, זמן קצוב לתפוגה של קריאה, כשל בחיבור ודחיית סטרימינג.

‫gateway-error: דומה ל-5xx, אבל חל רק על קודי התגובה 502, 503 ו-504.

‫reset: שרת ה-Proxy ינסה שוב אם שירות היעד לא מגיב בכלל (ניתוק/איפוס/זמן קצוב לתפוגה של קריאה)

‫connect-failure: שרת ה-proxy ינסה שוב אם החיבור ליעד ייכשל, למשל בגלל זמן קצוב לתפוגה של החיבור.

‫retriable-4xx: שרת ה-Proxy ינסה שוב אם יתקבלו קודי תגובה מסוג 4xx שניתן לנסות שוב. כרגע, השגיאה היחידה שאפשר לנסות שוב היא 409.

‫refused-stream: שרת ה-Proxy ינסה שוב אם היעד יאפס את הסטרימינג עם קוד השגיאה REFUSED_STREAM. סוג האיפוס הזה מציין שאפשר לנסות שוב בבטחה.

numRetries

integer

מציינת את מספר הניסיונות החוזרים המותרים. המספר הזה חייב להיות גדול מ-0. אם לא מצוין ערך, ברירת המחדל היא 1.

perTryTimeout

string (Duration format)

מציינת זמן קצוב לתפוגה שאינו אפס לכל ניסיון חוזר.

משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-"s". לדוגמה: "3.5s".

RequestMirrorPolicy

מציינת את המדיניות לגבי האופן שבו בקשות מועתקות לשירות יעד נפרד. שרת ה-proxy לא ממתין לתגובות משירות הצללים. לפני שליחת התנועה לשירות הצל, לכותרת המארח/הרשות מתווספת הסיומת ‎-shadow. בשלב הזה, אין תמיכה בשיקוף ליעדים ב-Cloud Run.

ייצוג ב-JSON
{
  "destination": {
    object (Destination)
  },
  "mirrorPercent": number
}
שדות
destination

object (Destination)

היעד שאליו הבקשות ישוכפלו. המערכת תתעלם מהמשקל של היעד.

mirrorPercent

number

זה שינוי אופציונלי. אחוז הבקשות שיועברו ליעד הרצוי.

CorsPolicy

המפרט שמאפשר בקשות ממקורות שונים בצד הלקוח.

ייצוג ב-JSON
{
  "allowOrigins": [
    string
  ],
  "allowOriginRegexes": [
    string
  ],
  "allowMethods": [
    string
  ],
  "allowHeaders": [
    string
  ],
  "exposeHeaders": [
    string
  ],
  "maxAge": string,
  "allowCredentials": boolean,
  "disabled": boolean
}
שדות
allowOrigins[]

string

המדיניות הזו מציינת את רשימת המקורות שיורשו לשלוח בקשות CORS. מקור מותר אם הוא תואם לפריט ב-allowOrigins או לפריט ב-allowOriginRegexes.

allowOriginRegexes[]

string

מציינת את תבניות הביטויים הרגולריים שתואמות למקורות המותרים. למידע על הדקדוק של ביטויים רגולריים, אפשר לעיין בכתובת https://github.com/google/re2/wiki/Syntax.

allowMethods[]

string

מציינת את התוכן של הכותרת Access-Control-Allow-Methods.

allowHeaders[]

string

מציינת את התוכן של הכותרת Access-Control-Allow-Headers.

exposeHeaders[]

string

מציין את התוכן של הכותרת Access-Control-Expose-Headers.

maxAge

string

מציינת למשך כמה זמן (בשניות) אפשר לשמור במטמון את התוצאה של בקשת קדם-הפעלה. הערך הזה מתורגם לכותרת Access-Control-Max-Age.

allowCredentials

boolean

בתגובה לבקשת קדם-הפעלה, הגדרת הערך True מציינת שהבקשה עצמה יכולה לכלול פרטי כניסה של משתמשים. ההגדרה הזו מתורגמת לכותרת Access-Control-Allow-Credentials.

ערך ברירת המחדל הוא False.

disabled

boolean

אם הערך הוא True, מדיניות CORS מושבתת. ערך ברירת המחדל הוא False, כלומר מדיניות ה-CORS בתוקף.

StatefulSessionAffinityPolicy

המפרט של זיקה לסשן (session affinity) עם שמירת מצב (stateful) שמבוססת על קובצי Cookie, שבה מישור הנתונים מספק "קובץ Cookie זמני" בשם GSSA שמקודד מארח יעד ספציפי, וכל בקשה שמכילה את קובץ ה-Cookie הזה תופנה למארח הזה כל עוד מארח היעד פועל ותקין.

ספריית הרשת בלי שרת Proxy של gRPC או קובץ העזר החיצוני ינהלו את קובץ ה-Cookie הזמני, אבל קוד אפליקציית הלקוח אחראי להעתקת קובץ ה-Cookie מכל קריאה לשירות מרוחק (RPC) בסשן לקריאה הבאה.

ייצוג ב-JSON
{
  "cookieTtl": string
}
שדות
cookieTtl

string (Duration format)

חובה. ערך ה-TTL של קובץ ה-Cookie לכותרת Set-Cookie שנוצרה על ידי מישור הנתונים. אפשר להגדיר את משך החיים של קובץ ה-cookie לערך בין 0 ל-86,400 שניות (24 שעות), כולל.

כדי להשתמש בקובץ Cookie זמני ולהשבית את התפוגה של קובצי Cookie, צריך להגדיר את הערך ל-0s.

משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-"s". לדוגמה: "3.5s".

HttpDirectResponse

אובייקט תגובת HTTP סטטי שיוחזר.

ייצוג ב-JSON
{
  "status": integer,

  // Union field HttpBody can be only one of the following:
  "stringBody": string,
  "bytesBody": string
  // End of list of possible types for union field HttpBody.
}
שדות
status

integer

חובה. הסטטוס שיוחזר כחלק מתגובת ה-HTTP. חייב להיות מספר שלם חיובי.

שדה של איחוד HttpBody. גוף שיוחזר כחלק מתגובת HTTP. הערך HttpBody יכול להיות רק אחד מהבאים:
stringBody

string

זה שינוי אופציונלי. גוף התגובה כמחרוזת. האורך המקסימלי של גוף ההודעה הוא 1,024 תווים.

bytesBody

string (bytes format)

זה שינוי אופציונלי. גוף התגובה בבייטים. הגודל המקסימלי של גוף ההודעה הוא 4,096B.

מחרוזת בקידוד Base64.

Methods

create

יצירת HttpRoute חדש בפרויקט ובמיקום נתונים.

delete

מחיקה של HttpRoute יחיד.

get

אחזור פרטים של HttpRoute יחיד.

getIamPolicy

מקבלת את מדיניות בקרת הגישה של משאב.

list

הצגת רשימה של HttpRoute בפרויקט ובמיקום נתונים.

patch

עדכון הפרמטרים של HttpRoute יחיד.

setIamPolicy

מגדירה את מדיניות בקרת הגישה במשאב שצוין.

testIamPermissions

הפונקציה מחזירה את ההרשאות שיש לפונקציית קריאה חוזרת (caller) במשאב שצוין.