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> אופציונלי השם של משתנה ה-Flow שבו יישמר אובייקט הבקשה.
<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 מציין את משתנה ה-flow שממנו 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 מציינים את משתנה הזרימה שממנו 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"/>: Resolve refval באופן דינמי כדי לקבוע את שם הטריגר. מערכת Apigee מדווחת על חריגה אם שם טריגר ה-API שפוענח לא תקין או אם refval לא פוענח.
  • <ApiTrigger ref="refval">val</ApiTrigger>: Resolve 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 כערך כפול (double) ומוקצה לו הערך של משתנה הזרימה 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, הערך של my_array_param מוגדר לערכים שצוינו ברכיבי <Value>.

בטבלה הבאה מתוארים המאפיינים של <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 כמערך פרמטרים של מספרים שלמים עם הערכים 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 לא מצליח לפתור את משתני ה-Flow שצוינו ברכיבים <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