הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
בדף הזה מתואר פורמט ה-YAML של תבניות התכונות של Apigee: סוגי המסמכים template, feature ו-proxy וכל השדות שלהם. הסבר על המושגים מופיע במאמר הגדרת שרת proxy באמצעות YAML. הוראות מפורטות זמינות במאמר יצירת proxy ל-API מתבנית YAML.
מוסכמות
- שמות השדות הם בפורמט CamelCase. לדוגמה,
schemaVersion,basePath,displayName,faultRules,defaultFaultRule,httpTargetConnection. - הסכימה מחמירה. שדות לא ידועים גורמים לשגיאה כשמייבאים את הקובץ.
- שדות חובה. רק המאפיינים
gatewayו-schemaVersionעוברים אימות כשקובץ מנותח. בפועל, צריך למלא גם את השדות האחרים שמסומנים בערך Yes בטבלאות הבאות כדי ליצור proxy תקין של API.
שדות נפוצים ברמה העליונה
כל מסמך template, feature ו-proxy
מתחיל בשדות הבאים.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
gateway |
שער היעד. חייב להיות apigee. |
לא רלוונטי | כן |
schemaVersion |
גרסת הסכימה של המסמך. חייב להיות 1.0.0. |
לא רלוונטי | כן |
name |
שם המסמך. עבור תבנית או שרת proxy, זהו שם ה-API של שרת ה-proxy שנכתב בחבילה. | לא רלוונטי | כן |
type |
סוג המסמך: template, feature או proxy. |
לא רלוונטי | כן |
description |
תיאור שקריא לאנשים. | לא רלוונטי | לא |
priority |
מספר שלם שקובע את הסדר שבו התכונות מוחלות במהלך ההידור. קודם נחיל את ההנחות עם המספרים הנמוכים יותר. | 100 |
לא |
סוג המסמך: תבנית
תבנית היא נקודת הכניסה שמייבאים. הוא כולל תכונות ומגדיר את נקודות הקצה והמסלולים של ה-proxy. תבנית לא מכילה מדיניות או משאבים, אלא הפניות לתכונות שמהן הם מגיעים.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
features |
רשימה של שמות קבצים של תכונות שיוצרים מהם את ה-proxy. כל שם חייב להיות שם של קובץ שנמצא באותה ספרייה כמו התבנית. | [] |
לא |
parameters |
רשימה של ערכי פרמטרים שמספקים ערכי ברירת מחדל לתכונות. | [] |
לא |
endpoints |
רשימה של נקודות קצה שמגדירות נתיבי בסיס ומסלולים. | [] |
לא |
targets |
רשימה של יעדים שמגדירים חיבורים לשרת העורפי. | [] |
לא |
סוג המסמך: תכונה
תכונה היא יחידת הגדרה שאפשר להשתמש בה שוב ושוב, וכוללים אותה בתבנית. תכונה מכילה מדיניות ומשאבים, ויכולה לתרום זרימות, נקודות קצה ויעדים לשרת ה-proxy המהודר. בנוסף לשדות הנפוצים ברמה העליונה, לתכונה יש את השדות הבאים.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
displayName |
שם תצוגה שקריא לאנשים. | לא רלוונטי | לא |
uid |
מזהה ייחודי שמשמש ליצירת מרחב שמות למדיניות ולמשאבים של התכונה. אם לא מוגדר, נעשה שימוש ב-name. |
לא רלוונטי | לא |
documentation |
תיעוד מורחב של התכונה. | לא רלוונטי | לא |
categories |
רשימה של תוויות קטגוריות חופשיות. | [] |
לא |
parameters |
רשימה של פרמטרים שהתכונה מגדירה. | [] |
לא |
defaultEndpoint |
נקודת קצה של שרת proxy שהתהליכים שלה וכלל ברירת המחדל שלה לשגיאות ממוזגים עם כל נקודת קצה של שרת ה-proxy שעבר קומפילציה. אפשר להשתמש בזה כדי לצרף את המדיניות של תכונה מסוימת לזרימת הבקשה או התגובה. | לא רלוונטי | לא |
defaultTarget |
יעד proxy שמשמש כחיבור ברירת מחדל לשרת קצה עורפי. | לא רלוונטי | לא |
endpoints |
רשימה של נקודות קצה של שרת proxy להוספה לשרת ה-proxy. נקודת קצה עם שם זהה לנקודת קצה קיימת מחליפה אותה. | [] |
לא |
targets |
רשימה של יעדי proxy להוספה ל-proxy. יעד עם אותו שם כמו יעד קיים מחליף אותו. | [] |
לא |
policies |
רשימה של כללי המדיניות שהתכונה מספקת. שמות כללי המדיניות מקבלים באופן אוטומטי את הקידומת של התכונה uid (או name) במהלך הקומפילציה. |
[] |
לא |
resources |
רשימה של משאבים שהתכונה מספקת, כמו קובצי JavaScript או קובצי מאפיינים. | [] |
לא |
סוג המסמך: proxy
פרוקסי הוא המסמך המלא שנוצר על ידי CLI כשמבצעים קומפילציה של תבנית עם התכונות שלה. בדרך כלל לא יוצרים סוג כזה ישירות, אבל הוא מתואר כאן כי הוא הצורה שבה נוצר חבילת ה-API proxy.
לפרוקסי יש את אותם שדות כמו לתכונה, אבל הוא משתמש ב-endpoints וב-targets (ולא ב-defaultEndpoint או ב-defaultTarget) והוא תמיד מייצג פרוקסי מלא שאפשר לפרוס. ה-type שלו הוא proxy.
אובייקטים מוטמעים
פרמטר
פרמטר מספק ערך לתכונה. הערך של פרמטר הוא default.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
name |
שם הפרמטר. התייחסות בתוכן של הפיצ'ר כאל
{name}. |
לא רלוונטי | כן |
displayName |
שם שקריא לאנשים. | לא רלוונטי | לא |
description |
תיאור של הפרמטר. | לא רלוונטי | לא |
default |
ערך ברירת המחדל. הוחלף ב-{name} במחרוזות של התכונה. |
לא רלוונטי | לא |
examples |
רשימה של ערכים לדוגמה. | [] |
לא |
maps |
מיפוי של החלפות ערכים. אם הערך שמתקבל הוא מפתח במיפוי, הוא מוחלף בערך הממופה. | לא רלוונטי | לא |
paths |
רשימה של ביטויי JSONPath. לא נתמך בגרסה הזו – השימוש בו גורם לשגיאה. | לא רלוונטי | לא |
endpoint
המאפיין הזה משמש ברשימת endpoints של תבנית.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
name |
שם נקודת הקצה. | לא רלוונטי | כן |
basePath |
נתיב הבסיס שבו הלקוחות משתמשים כדי להפעיל את ה-proxy, לדוגמה
/v1/gemini. |
לא רלוונטי | לא |
routes |
רשימה של מסלולים שממפים בקשות ליעדים. | [] |
לא |
proxyEndpoint
המאפיינים האלה נמצאים בשימוש ב-defaultEndpoint וב-endpoints של תכונה, וגם בשרת Proxy שעבר קומפילציה. Extends endpoint with flow
handling.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
flows |
רשימה של זרימות. תהליכים בשם PreFlow
או PostFlow ממופים לתהליך המתאים ב-Apigee. כל שם אחר ממוקם במאגר הכללי של התהליכים. |
[] |
לא |
postClientFlow |
תהליך יחיד שמופעל אחרי שהתשובה נשלחת ללקוח. | לא רלוונטי | לא |
faultRules |
רשימה של תהליכי עבודה שמשמשים ככללי שגיאה. | [] |
לא |
defaultFaultRule |
כלל שגיאה שמופעל כשאין כלל שגיאה אחר שתואם. | לא רלוונטי | לא |
מסלול
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
name |
שם המסלול. | לא רלוונטי | כן |
target |
השם של נקודת הקצה שאליה רוצים לנתב. | לא רלוונטי | לא |
condition |
תנאי שצריך להתקיים כדי שהניתוב הזה יחול. | לא רלוונטי | לא |
רצף פעולות
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
name |
שם התהליך. משתמשים ב-PreFlow או ב-PostFlow לתהליכי בקשה/תגובה רגילים. |
לא רלוונטי | כן |
mode |
Request או Response. קובעת אם השלבים יפעלו על הבקשה או על התגובה. |
Request |
לא |
condition |
תנאי שצריך להיות True כדי שהתהליך יפעל. | לא רלוונטי | לא |
steps |
רשימה מסודרת של שלבים (הפעלות של מדיניות). | [] |
לא |
שלב
שלב מריץ מדיניות בתוך תהליך.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
name |
שם המדיניות להפעלה. בתוך תכונה, משתמשים בשם המקומי של המדיניות. הקומפיילר משכתב אותו לשם ממרחב השמות. | לא רלוונטי | כן |
condition |
תנאי שחייב להתקיים כדי שהשלב יפעל. | לא רלוונטי | לא |
faultRule
ההרחבה flow עם שדה נוסף אחד.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
alwaysEnforce |
אם true, כלל ברירת המחדל לטיפול בשגיאות תמיד ייאכף. |
false |
לא |
יעד
המאפיין הזה משמש ברשימת targets של תבנית.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
name |
שם היעד. מופנה על ידי target של מסלול. |
לא רלוונטי | כן |
url |
כתובת ה-URL של הקצה העורפי. | לא רלוונטי | לא |
auth |
סכמת האימות לשרת קצה עורפי של Google Cloud, לדוגמה GoogleAccessToken או GoogleIDToken. |
לא רלוונטי | לא |
scopes |
רשימה של היקפי הרשאות OAuth לבקשה. ההגדרה רלוונטית כשמוגדר auth. |
[] |
לא |
aud |
הקהל שאליו מיועד האסימון. ההגדרה רלוונטית כשמוגדר auth. |
לא רלוונטי | לא |
proxyTarget
בשימוש ב-defaultTarget וב-targets של תכונה, וגם ב-Proxy שעבר קומפילציה. ההרחבה target עם טיפול בזרימה ועם
החלפות של חיבורים גולמיים.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
flows |
רשימה של זרימות שמופעלות בבקשת היעד או בתגובה. | [] |
לא |
faultRules |
רשימה של תהליכי עבודה שמשמשים ככללי שגיאה. | [] |
לא |
defaultFaultRule |
כלל שגיאה. | לא רלוונטי | לא |
httpTargetConnection |
ייצוג גולמי של הרכיב HTTPTargetConnection, להגדרה מתקדמת. אם המדיניות מוגדרת, היא מקבלת עדיפות על פני url, auth, scopes ו-aud. |
לא רלוונטי | לא |
localTargetConnection |
ייצוג גולמי של רכיב LocalTargetConnection.
אם המדיניות מוגדרת, היא מקבלת עדיפות על פני חיבור HTTP. |
לא רלוונטי | לא |
policy
מדיניות מוגדרת בתכונה. ההגדרה שלו נכתבת בקטע content באמצעות המוסכמה של מאפיין/טקסט שמתוארת במאמר מוסכמות לגבי תוכן המדיניות.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
name |
שם המדיניות. | לא רלוונטי | כן |
type |
סוג המדיניות ב-Apigee, לדוגמה VerifyAPIKey, SpikeArrest או Javascript. הערך צריך להיות זהה למפתח היחיד ברמה העליונה ב-content. |
לא רלוונטי | כן |
content |
מילון עם מפתח יחיד שערכו שווה ל-type. הערך המקונן מתאר את ה-XML של המדיניות באמצעות המוסכמה שמוסברת בהמשך. |
{} |
כן |
מוסכמות תוכן המדיניות
כללי המדיניות של Apigee הם בפורמט XML. ב-YAML, מייצגים את ה-XML ב-content באמצעות הכללים הבאים:
- המילון
contentמכיל מפתח אחד בלבד, שחייב להיות זהה לערךtypeשל המדיניות. - מאפייני רכיב מופיעים מתחת למפתח
metadata. - טקסט הרכיב מופיע מתחת למפתח
_text. לדוגמה,<Foo bar="baz">qux</Foo>הופך ל-Foo: {metadata: {bar: "baz"}, _text: "qux"}. אם רכיב מכיל רק טקסט ולא מאפיינים, אפשר לכתוב את הטקסט ישירות כערך. - רכיבי צאצא מוטמעים מתחת לשם התג שלהם. תגים חוזרים הופכים לרשימה.
לדוגמה, מדיניות התכונות הזו:
policies: - name: VA-VerifyAPIKey type: VerifyAPIKey content: VerifyAPIKey: metadata: name: VA-VerifyAPIKey enabled: "true" continueOnError: "false" DisplayName: VA-VerifyAPIKey APIKey: metadata: ref: request.header.x-api-key
הקוד הזה עובר קומפילציה לקובץ ה-XML של המדיניות הבא:
<VerifyAPIKey continueOnError="false" enabled="true" name="verify-api-key-VA-VerifyAPIKey"> <APIKey ref="request.header.x-api-key"></APIKey> <DisplayName>VA-VerifyAPIKey</DisplayName> </VerifyAPIKey>
משאב
משאב הוא קובץ שתכונה תורמת לחבילה, כמו קובץ JavaScript או קובץ מאפיינים.
| שם | תיאור | ברירת מחדל | חובה? |
|---|---|---|---|
name |
שם הקובץ, למשל hello-world.js. שמות המשאבים
כוללים קידומת של התכונה uid (או name)
במהלך הקומפילציה. |
לא רלוונטי | כן |
type |
סוג המשאב, שקובע את ספריית המשנה בחבילה, למשל jsc (JavaScript) או properties. |
לא רלוונטי | כן |
content |
התוכן הגולמי של הקובץ. | לא רלוונטי | לא |
שדות שלא נתמכים בגרסה הזו
-
pathsבפרמטר (JSONPath). השימוש בו גורם לכך שהקומפילציה נכשלת. testsבכל מסמך. השדה מתקבל אבל המערכת מתעלמת ממנו, והוא לא נכלל בחבילה שנוצרת.
מגבלות
הגודל של חבילת ה-API Proxy שנוצרת לא יכול להיות גדול מ-10MiB ללא דחיסה או לכלול יותר מ-256 קבצים.