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 באופן דינמי כדי לקבוע את מזהה הפרויקט. מערכת Apigee מדווחת על חריגה אם מזהה הפרויקט שנקבע לא תקין או אם refval לא נקבע.
  • ‫<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>: Resolve refval dynamically to determine the integration name. ‫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 מציינים את משתנה ה-Flow שממנו 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-1-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 פותר את משתנה הזרימה flowval בזמן הריצה ומשתמש בערך שלו. אם הערך של flowval אחרי הרזולוציה לא תקין, מדווחת חריגה.
  • ‫<Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter>: ‏SUBSTITUTION_CHAR מציין את הערך שצוין למאפיין substitutionVariableChar של אלמנט האב <Parameters>. ‫Apigee פותר את משתנה זרימה 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 פותר את משתנה הזרימה 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