SetIntegrationRequest policy

מדיניות ניתנת להרחבה

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

המדיניות SetIntegrationRequest מאפשרת ליצור אובייקט בקשה לשילוב שרוצים להפעיל. במדיניות, צריך להגדיר את הפרטים של טריגר ה-API ופרמטרי הקלט שנדרשים להפעלת השילוב. כשמריצים את מדיניות SetIntegrationRequest, נוצר אובייקט בקשה והוא נשמר במשתנה של זרימת נתונים. אובייקט הבקשה מכיל את כל המידע שנדרש להפעלת השילוב. בשלב הזה, השילוב עדיין לא מופעל. כדי להפעיל את השילוב, צריך להפעיל את המדיניות IntegrationCallout או להגדיר IntegrationEndpoint. כדי להפעיל את השילוב, גם המדיניות IntegrationCallout וגם IntegrationEndpoint צריכות את אובייקט הבקשה.

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

<SetIntegrationRequest>

המדיניות הזו מציינת את המדיניות SetIntegrationRequest.

ערך ברירת המחדל לא רלוונטי
חובה? חובה
סוג סוג מורכב
רכיב אב לא רלוונטי
רכיבי צאצא <ApiTrigger>
<DisplayName>
<IntegrationName>
<IntegrationRegion>
<Parameters>
<ProjectId>
<Request>
<ScheduleTime>

בטבלה הבאה מפורטים רכיבי המשנה של הרכיב <SetIntegrationRequest>:

רכיב צאצא חובה? תיאור
<ApiTrigger> חובה השם של טריגר ה-API שיופעל בשילוב.
<DisplayName> אופציונלי שם מותאם אישית למדיניות.
<IntegrationName> אופציונלי השם של השילוב שרוצים להפעיל.
<IntegrationRegion> חובה שם האזור שבו השילוב קיים.
<Parameters> אופציונלי פרמטרים של קלט לשילוב.
<ProjectId> אופציונלי השם של הפרויקט ב-Google Cloud שכולל את השילוב שרוצים להפעיל.
<Request> אופציונלי השם של משתנה הזרימה שבו יישמר אובייקט הבקשה.
<ScheduleTime> אופציונלי השעה שבה צריך להפעיל את השילוב.

מדיניות SetIntegrationRequest משתמשת בתחביר הבא:

תחביר

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SetIntegrationRequest continueOnError="[true|false]" enabled="[true|false]" name="Set-Integration-Request">
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  <ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>
  <IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>
  <IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>
  <ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>
  <ScheduleTime>PARAMETER_VALUE</ScheduleTime>
  <Parameters>
    <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter>
    <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME>
      <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value>
      <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value>
      <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value>
    </ParameterArray>
  </Parameters>
  <Request>FLOW_VARIABLE_NAME</Request>
</SetIntegrationRequest>

דוגמה

בדוגמה הבאה מוצגת הגדרת המדיניות SetIntegrationRequest:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SetIntegrationRequest continueOnError="false" enabled="true" name="Set-Integration-Request">
  <DisplayName>Set Integration Request Policy</DisplayName>
  <ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>
  <IntegrationName ref="my_integration_ref">integration_1</IntegrationName>
  <IntegrationRegion ref="my_integration_ref">asia-east1</IntegrationRegion>
  <ApiTrigger ref="my_api_trigger_ref">API-Trigger-2</ApiTrigger>
  <ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>
  <Parameters>
    <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter>
    <ParameterArray name="my_array_param" type="integer" ref="flow_var_2">
      <Value ref="flow_var_3">1</Value>
      <Value ref="flow_var_4">2</Value>
      <Value ref="flow_var_5">3</Value>
    </ParameterArray>
  </Parameters>
  <Request>my_request_var</Request>
</SetIntegrationRequest>

לרכיב הזה יש את המאפיינים הבאים שמשותפים לכל המדיניות:

מאפיין ברירת מחדל חובה? תיאור
name לא רלוונטי חובה

השם הפנימי של המדיניות. הערך של מאפיין name יכול להכיל אותיות, מספרים, רווחים, מקפים, קווים תחתונים ונקודות. הערך הזה לא יכול להיות ארוך מ-255 תווים.

אפשר להשתמש ברכיב <DisplayName> כדי לתת למדיניות תווית בשם אחר בשפה טבעית בכלי לעריכת פרוקסי בממשק המשתמש לניהול.

continueOnError FALSE אופציונלי מגדירים את הערך false כדי להחזיר שגיאה אם המדיניות נכשלת. זו התנהגות צפויה ברוב המקרים. הגדרה ל-true מאפשרת להמשיך את הביצוע של התהליך גם אחרי שמדיניות נכשלת. מאמרים קשורים:
enabled TRUE אופציונלי מגדירים את הערך true כדי לאכוף את המדיניות, או את הערך false כדי להשבית את המדיניות. המדיניות לא נאכפת גם אם היא עדיין משויכת לזרימה.
async   FALSE הוצא משימוש המאפיין הזה הוצא משימוש.

הפניה לרכיב צאצא

בקטע הזה מתוארים רכיבי הבן של <SetIntegrationRequest>.

<DisplayName>

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

הרכיב <DisplayName> משותף לכל סוגי המדיניות.

ערך ברירת המחדל לא רלוונטי
חובה? זה שינוי אופציונלי. אם לא מציינים את <DisplayName>, המערכת משתמשת בערך של מאפיין name של המדיניות.
סוג String
רכיב אב <PolicyElement>
רכיבי צאצא ללא

רכיב <DisplayName> משתמש בתחביר הבא:

תחביר

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

דוגמה

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

לרכיב <DisplayName> אין מאפיינים או רכיבי צאצא.

<ProjectId>

מציינים את השם של הפרויקט ב-Google Cloud.

‫Apigee מקצה את הערך שציינתם לרכיב הזה למשתנה של זרימת העבודה integration.project.id.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג String
רכיב אב <SetIntegrationRequest>
רכיבי צאצא ללא

רכיב <ProjectId> משתמש בתחביר הבא:

תחביר

<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>

דוגמה

בדוגמה הבאה מוגדרת המדיניות כך שתשתמש במשתנה של זרימת הנתונים my_projectid_var כדי לאחזר את מזהה הפרויקט, ואם לא ניתן יהיה לפתור את משתנה זרימת הנתונים בזמן הריצה, המדיניות תשתמש ב-apigee_staging_1 כמזהה הפרויקט:

<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>

בטבלה הבאה מתוארים המאפיינים של <ProjectId>:

מאפיין חובה? סוג תיאור
ref אופציונלי String מציינים את משתנה הזרימה שממנו Apigee צריך לקרוא את מזהה הפרויקט ב-Google Cloud. אפשר להגדיר את הרכיב <ProjectId> באחת מהדרכים הבאות:
  • <ProjectId>val</ProjectId>: משתמשים ב-val כמזהה הפרויקט.
  • <ProjectId ref="refval"/>: מתבצעת הרצה דינמית של refval כדי לקבוע את מזהה הפרויקט. אם מזהה הפרויקט שנקבע לא תקין או אם לא ניתן לקבוע את refval, המערכת של Apigee מדווחת על חריגה.
  • <ProjectId ref="refval">val</ProjectId>: המערכת תפתור את refval באופן דינמי כדי לקבוע את מזהה הפרויקט. אם מזהה הפרויקט שנקבע לא חוקי, Apigee מדווח על חריגה. אם refval לא נפתר, משתמשים ב-val כמזהה הפרויקט.

<IntegrationName>

מציין את השילוב שרוצים להפעיל.

‫Apigee מקצה את הערך שציינתם לרכיב הזה למשתנה של זרימת העבודה integration.name.

השם של השילוב צריך לעמוד בדרישות הבאות:

  • השם חייב להתחיל ולהסתיים באותיות או במספרים.
  • אסור להשתמש ברווחים.
  • אסור להשתמש בשני מקפים או שני קווים תחתונים ברצף.
ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג String
רכיב אב <SetIntegrationRequest>
רכיבי צאצא ללא

רכיב <IntegrationName> משתמש בתחביר הבא:

תחביר

<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>

דוגמה

בדוגמה הבאה, המדיניות מוגדרת להשתמש במשתנה של זרימת my_integration_ref כדי לאחזר את שם השילוב. אם המשתנה של הזרימה לא מצליח להיפתר בזמן הריצה, המערכת משתמשת ב-integration_1 כשם השילוב:

<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>

בטבלה הבאה מתוארים המאפיינים של <IntegrationName>:

מאפיין חובה? סוג תיאור
ref אופציונלי String מציינים את משתנה הזרימה שממנו Apigee צריך לקרוא את שם השילוב. אפשר להגדיר את הרכיב <IntegrationName> באחת מהדרכים הבאות:
  • <IntegrationName>val</IntegrationName>: משתמשים ב-val כשם השילוב.
  • <IntegrationName ref="refval"/>: פתרון refval באופן דינמי כדי לקבוע את שם השילוב. מערכת Apigee מדווחת על חריגה אם שם השילוב שנקבע לא תקין או אם refval לא נקבע.
  • <IntegrationName ref="refval">val</IntegrationName>: הפונקציה refval פועלת באופן דינמי כדי לקבוע את שם השילוב. אם שם השילוב שמתקבל לא תקין, Apigee מדווח על חריגה. אם הפונקציה refval לא פועלת, שם השילוב יהיה val.

<IntegrationRegion>

מציין את האזור שבו השילוב קיים.

בזמן הריצה, Apigee מקצה את הערך של האלמנט למשתנה של זרימת הנתונים integration.region, יוצר כתובת URL ליעד שמבוססת על אזור ומאחסן את כתובת ה-URL במשתנה של זרימת הנתונים integration.target.url.

כתובת ה-URL לטירגוט לפי אזור היא בפורמט הבא: https://integration.region-integrations.googleapis.com

האזור של האינטגרציה צריך להיות נתמך על ידי Application Integration. מידע על האזורים הנתמכים של Application Integration זמין במאמר בנושא אזורים נתמכים.

ערך ברירת המחדל לא רלוונטי
חובה? חובה
סוג String
רכיב אב <SetIntegrationRequest>
רכיבי צאצא ללא

רכיב <IntegrationRegion> משתמש בתחביר הבא:

תחביר

<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>

דוגמה

בדוגמה הבאה מוגדרת המדיניות כך שתשתמש במשתנה של זרימת my_integration_region_ref כדי לאחזר את אזור השילוב, ואם לא ניתן לפתור את משתנה הזרימה בזמן הריצה, asia-east1 ישמש כאזור השילוב:

<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>

בטבלה הבאה מתוארים המאפיינים של <IntegrationRegion>:

מאפיין חובה? סוג תיאור
ref אופציונלי String מציינים את משתנה הזרימה שממנו מערכת Apigee צריכה לקרוא את אזור השילוב. אפשר להגדיר את הרכיב <IntegrationRegion> באחת מהדרכים הבאות:
  • <IntegrationRegion>val</IntegrationRegion>: משתמשים ב-val כאזור השילוב.
  • <IntegrationRegion ref="refval"/>: פתרון refval באופן דינמי כדי לקבוע את אזור השילוב. מערכת Apigee מדווחת על חריגה אם אזור השילוב שנקבע לא תקין או אם refval לא נקבע.
  • <IntegrationRegion ref="refval">val</IntegrationRegion>: פתרון refval באופן דינמי כדי לקבוע את אזור השילוב. מערכת Apigee מדווחת על חריגה אם האזור המשולב שזוהה לא תקין. אם refval לא נפתר, משתמשים ב-val כאזור השילוב.

<ApiTrigger>

מציינים את טריגר ה-API להפעלה.

צריך לציין את שם הטריגר של ה-API בפורמט api_trigger/API_TRIGGER_NAME.

‫Apigee מקצה את הערך שציינתם לרכיב הזה למשתנה של זרימת העבודה integration.api.trigger.

אם ציינתם את <IntegrationName>, רק טריגר ה-API של השילוב הזה יופעל. עם זאת, אם לא ציינתם את <IntegrationName>, כל השילובים עם טריגר ה-API שצוין יופעלו.

ערך ברירת המחדל לא רלוונטי
חובה? חובה
סוג String
רכיב אב <SetIntegrationRequest>
רכיבי צאצא ללא

רכיב <ApiTrigger> משתמש בתחביר הבא:

תחביר

<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>

דוגמה

בדוגמה הבאה מוגדרת המדיניות כך שתשתמש במשתנה הזרימה my_api_trigger_ref כדי לאחזר את שם הטריגר של ה-API, ואם לא ניתן לפתור את משתנה הזרימה בזמן הריצה, המדיניות תשתמש ב-api_trigger/API-Trigger-2 כשם הטריגר של ה-API:

<ApiTrigger ref="my_api_trigger_ref">api_trigger/API-Trigger-2</ApiTrigger>

בטבלה הבאה מתוארים המאפיינים של <ApiTrigger>:

מאפיין חובה? סוג תיאור
ref אופציונלי String מציינים את משתנה הזרימה שממנו Apigee צריך לקרוא את שם הטריגר של ה-API. אפשר להגדיר את הרכיב <ApiTrigger> באחת מהדרכים הבאות:
  • <ApiTrigger>val</ApiTrigger>: משתמשים ב-val כשם הטריגר של ה-API.
  • <ApiTrigger ref="refval"/>: פותר את refval באופן דינמי כדי לקבוע את שם הטריגר. מערכת Apigee מדווחת על חריגה אם שם טריגר ה-API שפוענח לא תקין או אם refval לא פוענח.
  • <ApiTrigger ref="refval">val</ApiTrigger>: פתרון refval באופן דינמי כדי לקבוע את שם הטריגר. מערכת Apigee מדווחת על חריגה אם השם של טריגר ה-API שזוהה לא תקין. אם refval לא נפתר, משתמשים ב-val כשם הטריגר.

<ScheduleTime>

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

אם השעה שמוגדרת קטנה מהשעה הנוכחית או שווה לה, השילוב יפעל באופן מיידי. צריך לציין את השעה בפורמט yyyy-mm-ddThh:mm:ssZ, כאשר Z מייצג את אזור הזמן UTC. לדוגמה, אם מציינים 2022-01-15T01:30:15Z, השילוב מתוזמן לפעול ב-15 בינואר 2022 בשעה 1:30:15 UTC. אפשר גם לציין את אזור הזמן באמצעות היסט מ-UTC. לדוגמה, אם מציינים 2022-01-15T01:30:15-08:00, השילוב מתוזמן לפעול ב-15 בינואר 2022 בשעה 1:30:15 PST. מידע נוסף על פורמט השעה זמין במאמר ייצוגים של תאריך ושעה משולבים.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג String
רכיב אב <SetIntegrationRequest>
רכיבי צאצא ללא

רכיב <ScheduleTime> משתמש בתחביר הבא:

תחביר

<ScheduleTime>PARAMETER_VALUE</ScheduleTime>

דוגמה

בדוגמה הבאה, השילוב מתוזמן לפעול בשעה 2022-01-15T01:30:15Z:

<ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>

<Parameters>

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

אפשר לציין פרמטרים בודדים או מערכים של פרמטרים.

  • כדי לציין פרמטר ספציפי, משתמשים ברכיב <Parameter>.
  • כדי לציין מערך פרמטרים, משתמשים ברכיב <ParameterArray>.
ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג סוג מורכב
רכיב אב <SetIntegrationRequest>
רכיבי צאצא <Parameter>
<ParameterArray>

בטבלה הבאה מתוארים המאפיינים של <Parameters>:

מאפיין חובה? סוג תיאור
substitutionVariableChar אופציונלי Char מאפשר להגדיר תווי הפרדה מותאמים אישית כדי להעביר ערכים של משתני זרימה כארגומנטים של תבנית ברכיב הצאצא <Parameter>.

רכיב <Parameters> משתמש בתחביר הבא:

תחביר

<Parameters substitutionVariableChar="SUBSTITUTION_CHAR">
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME" >PARAMETER_VALUE</Parameter>
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter>
  <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE ref="FLOW_VARIABLE_NAME"">
    <Value>PARAMETER_VALUE</Value>
    <Value ref="FLOW_VARIABLE_NAME"/>
    <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value>
  </ParameterArray>
</Parameters>

דוגמה

בדוגמה הבאה מתבצעת אתחול של הפרמטר my_str_param ומערך הפרמטרים my_array_param:

<Parameters substitutionVariableChar="#">
  <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter>
  <Parameter name="strVar" type="string">#flowvar1#</Parameter>
  <ParameterArray name="my_array_param" type="integer" ref="flow_var_2">
    <Value>1</Value>
    <Value ref="flow_var_3"/>
    <Value ref="flow_var_4">3</Value>
  </ParameterArray>
</Parameters>

מערכת Apigee מתייחסת לרכיבים ריקים של <Parameter> ושל <ParameterArray> כאל ערכים של null. לדוגמה, הצהרות כמו <Parameter></Parameter> ו-<ParameterArray></ParameterArray> נחשבות לערכים של null.

<Parameter>

מציין פרמטר קלט.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג String
רכיב אב <Parameters>
רכיבי צאצא ללא

אפשר לציין את ערך הפרמטר בדרכים הבאות:

  • <Parameter name="my_param" type="string">val</Parameter>: השתמש ב-val כערך הפרמטר. אם הערך של val לא תקין, Apigee מדווח על חריגה.
  • <Parameter name="my_param" type="string" ref="refval"/>: פותר את משתנה הזרימה refval בזמן הריצה ומשתמש בערך שלו. ‫Apigee מדווח על חריגה אם הערך של refval אחרי הפתרון לא תקין או אם refval לא נפתר.
  • <Parameter name="my_param" type="string" ref="refval">val</Parameter>: פותר את משתנה הזרימה refval בזמן הריצה ומשתמש בערך שלו. ‫Apigee מדווח על חריגה אם הערך של refval אחרי הפתרון לא תקין. אם לא ניתן לפתור את refval, מערכת Apigee משתמשת ב-val כערך הפרמטר.
  • <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter>: משתמשים ב-$#FLOW_VARIABLE_NAME#$ כדי להעביר ערכים של משתני זרימה כארגומנט של תבנית בפרמטר. ‫Apigee פותר את משתנה ה-Flow‏ flowval בזמן הריצה ומשתמש בערך שלו. אם הערך של flowval אחרי הרזולוציה לא תקין, מדווחת חריגה.
  • <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter>: ‏SUBSTITUTION_CHAR מציין את הערך שצוין למאפיין substitutionVariableChar של אלמנט האב <Parameters>. ‫Apigee פותר את משתנה ה-flow‏ flowval בזמן הריצה ומשתמש בערך שלו. אם הערך של flowval אחרי הפתרון לא תקין, מדווחת חריגה.

רכיב <Parameter> משתמש בתחביר הבא:

תחביר
<Parameters substitutionVariableChar="SUBSTITUTION_CHAR">
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">PARAMETER_VALUE</Parameter>
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME"/>
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter>
  <Parameter name="PARAMETER_NAME" type="json">$#FLOW_VARIABLE_NAME#$</Parameter>
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter>
</Parameters>
דוגמה 1

בדוגמה הבאה, הפרמטר my_str_param מוצהר כמחרוזת והערך שלו מוגדר כ-someText.

<Parameters>
  <Parameter name="my_str_param" type="string">someText</Parameter>
</Parameters>
דוגמה 2

בדוגמה הבאה מוצהר על הפרמטר my_double_param כערך כפול ומוקצה לו הערך של משתנה הזרימה flow_var.

<Parameters>
  <Parameter name="my_double_param" type="double" ref="flow_var"/>
</Parameters>
דוגמה 3

בדוגמה הבאה הערך מוגדר לפרמטר my_int_param_1 מסוג מספר שלם.

<Parameters>
  <Parameter name="my_int_param_1" type="integer" ref="flow_var_1">96</Parameter>
</Parameters>

בדוגמה הזו, אם משתנה הזרימה flow_var_1 נפתר בהצלחה, הערך של my_int_param_1 מוגדר כערך של משתנה הזרימה. אבל אם flow_var_1 לא מצליח לתרגם, my_int_param_1 מוגדר ל-96.

דוגמה 4

בדוגמה הבאה מוגדרים ערכים לפרמטרים my_json_param_1 ו-my_json_param_2 ב-JSON.

<Parameters>
  <Parameter name="my_json_param_1" type="json" ref="flow_var_1">{name:"Apple", color:"Red"}</Parameter>
  <Parameter name="my_json_param_2" type="json">{name:"Banana", color:"Yellow"}</Parameter>
</Parameters>

בדוגמה הזו, אם משתנה הזרימה flow_var_1 נפתר בהצלחה, הערך של my_json_param_1 מוגדר כערך של משתנה הזרימה flow_var_1. עם זאת, אם flow_var_1 לא מצליח לפתור את הבעיה, הערך של my_json_param_1 מוגדר ל-{name:"Apple", color:"Red"}. הפרמטר my_json_param_2 מוגדר לערך {name:"Banana", color:"Yellow"} כי לא צוין מאפיין ref.

דוגמה 5

בדוגמה הבאה מוגדר הערך של פרמטר ה-JSON‏ template_json_param באמצעות הערך של משתנה הזרימה שמועבר בתבנית ברירת המחדל.

  <Parameters>
    <Parameter name="template_json_param" type="json">{"name":"$#flow_var_1#$"}</Parameter>
</Parameters>
  

בדוגמה הזו, אם משתנה הזרימה flow_var_1 מתורגם בהצלחה, הערך של template_json_param מוגדר לערך של משתנה הזרימה flow_var_1. עם זאת, אם התרגום של flow_var_1 נכשל, Apigee יוצר חריגה.

דוגמה 6

בדוגמה הבאה מוגדר הערך של פרמטר ה-JSON‏ template_json_param באמצעות המאפיין substitutionVariableChar.

<Parameters substitutionVariableChar="#">
    <Parameter name="template_json_param" type="json">{"name":"#flow_var_1#"}</Parameter>
</Parameters>
  

בדוגמה הזו, אם משתנה הזרימה flow_var_1 מתורגם בהצלחה, הערך של template_json_param מוגדר לערך של משתנה הזרימה flow_var_1. עם זאת, אם התרגום של flow_var_1 נכשל, Apigee יוצר חריגה.

בטבלה הבאה מתוארים המאפיינים של <Parameter>:

מאפיין חובה? סוג תיאור
name חובה String שם הפרמטר.
type חובה String סוג הנתונים של הפרמטר. הסוגים הנתמכים הם: integer,‏ string,‏ boolean, double ו-json.
ref אופציונלי String מציינים את משתנה הזרימה שממנו מערכת Apigee צריכה לקרוא את ערך הפרמטר. מערכת Apigee משתמשת בקריטריונים הבאים כדי להגדיר את ערך הפרמטר:
  • אם משתנה הזרימה נפתר בזמן הריצה והוא תקף, Apigee משתמש בערך של משתנה הזרימה.
  • אם משתנה של זרימת נתונים נפתר בזמן הריצה אבל הוא לא תקין, Apigee מדווח על חריגה.
  • אם משתנה הזרימה לא נפתר בזמן הריצה, Apigee משתמש בערך של רכיב <Parameter>. אם ערך הרכיב לא תקין, Apigee מדווח על שגיאה.

<ParameterArray>

מציין מערך של פרמטרים של קלט.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג סוג מורכב
רכיב אב <Parameters>
רכיבי צאצא <Value>

רכיב <Parameters> יכול להכיל כמה רכיבי <ParameterArray>. במערך פרמטרים אפשר להגדיר את הערך של רכיבי המערך על ידי ציון הערך בפועל או על ידי ציון משתנה של זרימת נתונים במאפיין ref. אם מציינים משתנה של זרימת נתונים, רכיבי המערך מוגדרים לערך של משתנה זרימת הנתונים. בדוגמאות שבקטע הזה מתוארות הדרכים השונות שבהן אפשר להגדיר את הרכיב <ParameterArray>.

רכיב <ParameterArray> משתמש בתחביר הבא:

תחביר
<Parameters>
  <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME">
    <Value ref="FLOW_VARIABLE_NAME"/>
    <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value>
    <Value>PARAMETER_VALUE</Value>
  </ParameterArray>
  <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"/>
  <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE">
    <Value ref="FLOW_VARIABLE_NAME"/>
    <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value>
    <Value>PARAMETER_VALUE</Value>
  </ParameterArray>
<Parameters/>
Example-1

בדוגמה הבאה מוצהר על my_array_param כמערך של מספרים שלמים והערך של רכיבי המערך מוגדר כ-1,‏ 2 ו-3:

<Parameters>
  <ParameterArray name="my_array_param" type="integer">
    <Value>1</Value>
    <Value>2</Value>
    <Value>3</Value>
  </ParameterArray>
<Parameters/>
Example-2

בדוגמה הבאה מוצהר על my_array_param כמערך כפול, כאשר:

  • האלמנט הראשון מוגדר לערך של משתנה ה-Flow‏ flow_var_1.
  • הרכיב השני מוגדר ל-3.0.
<Parameters>
  <ParameterArray name="my_array_param" type="double">
    <Value ref="flow_var_1"/>
    <Value>3.0</Value>
  </ParameterArray>
<Parameters/>
Example-3

בדוגמה הבאה מוצהר על my_array_param כמערך בוליאני והוא מוגדר לערך של משתנה הזרימה flow_var_1.

<Parameters>
  <ParameterArray name="my_array_param" type="boolean" ref="flow_var_1">
    <Value>true</Value>
    <Value>false</Value>
    <Value>false</Value>
  </ParameterArray>
<Parameters/>

בדוגמה הזו, אם flow_var_1 נפתר בהצלחה, my_array_param מוגדר לערכים של מערך flow_var_1. עם זאת, אם הפונקציה flow_var_1 לא מצליחה לפתור את הבעיה, המערך my_array_param מוגדר לערכים של רכיבי Value.

Example-4

בדוגמה הבאה, המשתנה my_array_param מוצהר כמערך JSON והערך שלו מוגדר כערך של משתנה הזרימה flow_var_1.

<Parameters>
  <ParameterArray name="my_array_param" type="json" ref="flow_var_1"/>
<Parameters/>

בדוגמה הזו, אם flow_var_1 נפתר בהצלחה, my_array_param מוגדר לערכים של מערך flow_var_1. עם זאת, אם הפונקציה flow_var_1 לא מצליחה לפתור את הבעיה, Apigee מדווחת על חריגה.

Example-5

בדוגמה הבאה, המשתנה my_array_param מוצהר כמערך מחרוזות ומוגדר לערכים של משתנה הזרימה flow_var_1.

<Parameters>
  <ParameterArray name="my_array_param" type="string" ref="flow_var_1">
    <Value ref="flow_var_2"/>
    <Value>test_string</Value>
  </ParameterArray>
<Parameters/>

בדוגמה הזו, אם flow_var_1 נפתר בהצלחה, my_array_param מוגדר לערכים של מערך flow_var_1. רק אם לא מצליחים לפתור את flow_var_1, הערכים שצוינו ברכיבי <Value> מוגדרים ל-my_array_param.

בטבלה הבאה מתוארים המאפיינים של <ParameterArray>:

מאפיין חובה? סוג תיאור
name חובה String שם מערך הפרמטרים.
type חובה String סוג הנתונים של מערך הפרמטרים. הסוגים הנתמכים הם: integer,‏ string,‏ boolean ו-double.
ref אופציונלי String מציינים את משתנה הזרימה שממנו Apigee צריך לקרוא את ערכי המערך. ‫Apigee משתמש בקריטריונים הבאים כדי להגדיר את ערך הפרמטר:
  • אם משתנה הזרימה נפתר בזמן הריצה והוא תקף, Apigee משתמש בערך של משתנה הזרימה.
  • אם משתנה של זרימת נתונים נפתר בזמן הריצה אבל הוא לא תקין, Apigee מדווח על חריגה.
  • אם משתנה הזרימה לא נפתר בזמן הריצה, Apigee משתמש בערכים שצוינו ברכיבי <Value>.
<Value>

מציין את הערך של רכיב במערך.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג String
רכיב אב <ParameterArray>
רכיבי צאצא ללא

כל רכיב במערך צריך להיות רכיב <Value> נפרד. אפשר לציין את הערך באופנים הבאים:

  • <Value>val</Value>: הערך val משמש כערך הרכיב. אם הערך של val לא תקין, Apigee מדווח על חריגה.
  • <Value ref="refval"/>: פותר את משתנה הזרימה refval בזמן הריצה ומשתמש בערך שלו. ‫Apigee מדווח על חריגה אם הערך של refval אחרי הפתרון לא תקין או אם refval לא נפתר.
  • <Value ref="refval">val</Value>: פותר את משתנה הזרימה refval בזמן הריצה ומשתמש בערך שלו. ‫Apigee מדווח על חריגה אם הערך של refval אחרי הפתרון לא תקין. אם refval לא נפתר, מערכת Apigee משתמשת ב-val כערך הרכיב.
  • <Value>val1 $#flowval#$</Value>: משתמשים ב-$#FLOW_VARIABLE_NAME#$ כדי להעביר ערכים של משתני זרימה כארגומנט של תבנית בערך. ‫Apigee פותר את משתנה ה-Flow‏ flowval בזמן הריצה ומשתמש בערך שלו. אם הערך של flowval אחרי הרזולוציה לא תקין, מדווחת חריגה.

רכיב <Value> משתמש בתחביר הבא:

תחביר
<ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME">
  <Value>PARAMETER_VALUE</Value>
  <Value ref="FLOW_VARIABLE_NAME"/>
  <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value>
</ParameterArray>
דוגמה 1

בדוגמה הבאה מוצהר על my_array_param כמערך של פרמטרים מסוג integer עם הערכים 1,‏ 2 ו-3:

<ParameterArray name="my_array_param" type="integer">
  <Value>1</Value>
  <Value>2</Value>
  <Value>3</Value>
</ParameterArray>
דוגמה 2

בדוגמה הבאה מוצהר על my_array_param כמערך של פרמטרים מסוג מחרוזת עם ערכים של משתני הזרימה flow_var_1 ו-flow_var_2:

<ParameterArray name="my_array_param" type="string">
  <Value ref="flow_var_1"/>
  <Value ref="flow_var_2"/>
</ParameterArray>
דוגמה 3

בדוגמה הבאה, המשתנה my_array_param מוצהר כמערך של פרמטרים מסוג מחרוזת:

<ParameterArray name="my_array_param" type="string">
   <Value ref="flow_var_1">string_1</Value>
   <Value ref="flow_var_2">string_2</Value>
</ParameterArray>

בדוגמה הזו, אם המשתנה של הזרימה נפתר בהצלחה, ערך הרכיב במערך מוגדר לערך של משתנה הזרימה flow_var_1. עם זאת, אם flow_var_1 לא מצליח לפתור את הבעיה, ערך הרכיב במערך מוגדר כ-string_1.

דוגמה 4

בדוגמה הבאה, הערך של פרמטר מערך המחרוזות template_strArray_param מוגדר באמצעות ערך משתנה הזרימה שמועבר בתבנית.

  <Parameters>
    <ParameterArray name="template_strArray_param" type="string">
    <Value>apple $#flow_var_1#$</Value>
    </ParameterArray>
  </Parameters>
  

בדוגמה הזו, אם המשתנה של הזרימה נפתר בהצלחה, ערך הרכיב במערך מוגדר לערך של משתנה הזרימה flow_var_1. עם זאת, אם לא ניתן לפענח את flow_var_1,‏ מערכת Apigee תגרום לחריגה.

בטבלה הבאה מתוארים המאפיינים של <Value>:

מאפיין חובה? סוג תיאור
ref אופציונלי String מציינים את משתנה הזרימה שממנו מערכת Apigee צריכה לקרוא את ערך הפרמטר. מערכת Apigee משתמשת בקריטריונים הבאים כדי להגדיר את ערך הפרמטר:
  • אם משתנה הזרימה נפתר בזמן הריצה והוא תקף, Apigee משתמש בערך של משתנה הזרימה.
  • אם משתנה של זרימת נתונים נפתר בזמן הריצה אבל הוא לא תקין, Apigee מדווח על חריגה.
  • אם משתנה הזרימה לא נפתר בזמן הריצה, Apigee משתמש בערך של הרכיב <Value>. אם ערך הרכיב לא תקין, Apigee מדווח על שגיאה.

<Request>

מציינים את השם של משתנה הזרימה לשמירת הבקשה.

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

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

ערך ברירת המחדל בקשה
חובה? אופציונלי
סוג String
רכיב אב <SetIntegrationRequest>
רכיבי צאצא ללא

רכיב <Request> משתמש בתחביר הבא:

תחביר

<Request>FLOW_VARIABLE_NAME</Request>

דוגמה

בדוגמה הבאה, אובייקט הבקשה נשמר במשתנה של זרימת העבודה my_request_var:

<Request>my_request_var</Request>

קודי שגיאה

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

שגיאות זמן ריצה

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

קוד תקלה סטטוס HTTP מטרה
steps.setintegrationrequest.EmptyParameterArray 500

השגיאה הזו מתרחשת כשלרכיב <ParameterArray> יש את המאפיינים name ו-type, אבל אין לו את המאפיין ref או את הרכיב <Value>.

steps.setintegrationrequest.EmptyParameterArrayValue 500

השגיאה הזו מתרחשת כשהרכיב <Value> ריק והמאפיין ref לא מוגדר.

steps.setintegrationrequest.InvalidResolvedFlowVariable 500

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

  • במקרה של הרכיבים ProjectId, IntegrationName או ApiTrigger, השגיאה הזו מתרחשת אם משתנה הזרימה מומר לערך null, למחרוזת ריקה או לסוג נתונים לא תקין.

    הערך החוקי של הרכיבים האלה הוא:

    • ProjectId: הדרישות למתן שמות ל-Project ID מפורטות בקטע לפני שמתחילים.
    • IntegrationName: אפשר לעיין בדרישות למתן שמות לרכיב IntegrationName.
    • ApiTrigger: השם צריך להתחיל ב-api_trigger/.
  • במקרה של רכיב ParameterArray, השגיאה הזו מתרחשת אם משתנה הזרימה מפוענח כמחרוזת ריקה.
steps.setintegrationrequest.MismatchedTypeAndResolvedRef 500

השגיאה הזו מתרחשת כשמשתנה הזרימה שצוין במאפיין ref של הרכיב <Parameter> נפתר, אבל סוג הנתונים של הערך של משתנה הזרימה לא תואם לסוג הנתונים שצוין במאפיין type.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray 500

השגיאה הזו מתרחשת כשהמשתנה של הזרימה שצוין במאפיין ref של הרכיב <ParameterArray> נפתר, אבל סוג הנתונים של ערך המשתנה של הזרימה לא תואם לסוג הנתונים שצוין במאפיין type.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue 500

השגיאה הזו מתרחשת כשהמשתנה של זרימת העבודה שצוין במאפיין ref של הרכיב <Value> נפתר, אבל סוג הנתונים של ערך המשתנה של זרימת העבודה לא תואם לסוג הנתונים שצוין במאפיין type של רכיב האב שלו (<ParameterArray>).

steps.setintegrationrequest.RequestVariableNotMessageType 500 השגיאה הזו מתרחשת כשמשתנה הזרימה שצוין ברכיב Request הוא לא מסוג message.
steps.setintegrationrequest.RequestVariableNotRequestMessageType 500 השגיאה הזו מתרחשת כשמשתנה הזרימה שצוין ברכיב Request הוא לא מסוג Request message.
steps.setintegrationrequest.UnresolvedVariable 500

השגיאה הזו מתרחשת כש-Apigee לא מצליח לפתור את משתני הזרימה שצוינו ברכיבים <Parameter>, <ParameterArray> או <Value>.

משתני תקלות

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

כדי להתאים אישית את הודעות השגיאה, אפשר להשתמש בכללי תקלות או במדיניות RaiseFault. מידע על ההבדלים בין כללי תקלות לבין מדיניות RaiseFault זמין במאמר FaultRules לעומת מדיניות RaiseFault. צריך לבדוק את התנאים באמצעות הרכיב Condition גם בכללי השגיאה וגם במדיניות RaiseFault. ‫Apigee מספק משתני שגיאה שייחודיים לכל מדיניות, והערכים של משתני השגיאה מוגדרים כשמדיניות מפעילה שגיאות בזמן ריצה. באמצעות המשתנים האלה, אפשר לבדוק תנאי שגיאה ספציפיים ולנקוט פעולות מתאימות. מידע נוסף על בדיקת תנאי שגיאה זמין במאמר יצירת תנאים.

בטבלה הבאה מתוארים משתני השגיאה שספציפיים למדיניות הזו.

משתנים כאשר: דוגמה
fault.name הערך fault.name יכול להתאים לכל אחת מהתקלות שמופיעות בטבלה שגיאות בזמן ריצה. שם התקלה הוא החלק האחרון של קוד התקלה. fault.name Matches "UnresolvedVariable"
SetIntegrationRequest.POLICY_NAME.failed POLICY_NAME הוא השם שהמשתמש הגדיר למדיניות שגרמה לשגיאה. SetIntegrationRequest.set-integration-request-1.failed = true
מידע נוסף על שגיאות שקשורות למדיניות זמין במאמר מה צריך לדעת על שגיאות שקשורות למדיניות.

נושאים קשורים

מידע נוסף על התכונה Application Integration זמין במאמר בנושא סקירה כללית של Application Integration