سياسة تدفق وسائل الشرح

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

استخدِم سياسة FlowCallout لتوضيح التدفق المشترك من خادم وكيل لواجهة برمجة تطبيقات أو غيره عملية مشتركة.

في التدفق المشترك، يمكنك إنشاء سلسلة من الخطوات يمكنك إعادة استخدامها في وقت التشغيل من عدة خطوات مكانًا. يتم تنفيذ هذه الخطوات كسياسات، كما هو الحال داخل الخادم الوكيل لواجهة برمجة التطبيقات. سياسة FlowCallout طريقة لاستدعاء التدفق المشترك من الخوادم الوكيلة لواجهة برمجة التطبيقات والمسارات المشتركة الأخرى. فهي تعمل كاستدعاء دالة في لغة برمجة تقليدية.

  • على سبيل المثال، تخيل أنك أنشأت مسارًا مشتركًا مع ميزات الأمان مثل التحقق من مفتاح واجهة برمجة التطبيقات، والتحقق من رمز OAuth المميز، وحماية التعبير العادي. هذا المسار المشترَك طريقة التحقق من الطلبات الواردة. باستخدام سياسات FlowCallout، يمكنك استدعاء هذا المسار المشترك من خوادم وكيلة متعددة لواجهة برمجة التطبيقات.
  • يمكنك استدعاء تدفق مشترك من آخر عن طريق تنفيذ سياسة FlowCallout من داخل مخطط مشترك التدفق.

نماذج

إثبات صحة مفتاح واجهة برمجة التطبيقات في التدفق المشترك

في هذا المثال، يتم استخدام مسار مشترَك لتنفيذ المهام الشائعة المتعلقة بالأمان. هنا يتحقّق التدفق المشترك من صحة مفتاح واجهة برمجة التطبيقات. يمكن للخوادم الوكيلة لواجهة برمجة التطبيقات والمسارات المشتركة الأخرى استخدام FlowCallout لإجراء اتصالات في هذا المسار المشترك.

يتضمّن تعريف المسار المشترَك التالي سياسة Verify-API-Key يتم تنفيذها. عند استدعاء التدفق المشترك من سياسة FlowCallout في خادم وكيل لواجهة برمجة التطبيقات.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SharedFlow name="default">
    <Step>
        <Name>Verify-API-Key</Name>
    </Step>
</SharedFlow>

تسترد سياسة VerifyAPIKey في التدفق المشترك السابق قيمة المفتاح يتحقق منها.

<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key">
    <DisplayName>Verify API Key</DisplayName>
    <APIKey ref="request.queryparam.apikey"/>
</VerifyAPIKey>

تطلب سياسة FlowCallout التالية، المستخدمة في الخادم الوكيل لواجهة برمجة التطبيقات، التدفق المشترك السابق إلى والتحقق من مفتاح واجهة برمجة التطبيقات. حزمة التدفق المشتركة لـ verify-apikey-shared (غير معروضة هنا) تضبط هذه السياسة التدفق المشترك بالطريقة التي تضبط بها حزمة APIProxy خادمًا وكيلاً.

<FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
    <DisplayName>Auth Flow Callout</DisplayName>
    <SharedFlowBundle>verify-apikey-shared</SharedFlowBundle>
</FlowCallout>

تمرير المعلمات إلى تدفق مشترك

يوضح هذا المثال كيفية تمرير المعلمات من سياسة FlowCallout إلى عملية مشتركة. هنا، تستدعي سياسة FlowCallout تدفقًا مشتركًا مصممًا لتنفيذ إجراءات دوال معالجة السلاسل. يتضمن التدفق المشترك JavaScript الذي يتسلسل المُدخل، الأحرف الصغيرة المدخلة، أو كليهما. تُحدِّد سياسة FlowCallout المعلمات التي تحدِّد إدخال السلسلة والإخراج وما يجب فعله بالإدخال.

  1. تطلب سياسة FlowCallout في String-Handler المسار المشترك، تمرير المعلمات التي تحدد المتغير لتخزين مخرجات التدفق المشترك، وما التدفق المشترك والعملية التي يجب استخدامها والمدخل المطلوب استخدامه (هنا، سلسلة حرفية، ولكن يمكن أيضًا أن تكون متغير التدفق). تحدّد عناصر Parameter أسماء المتغيرات وقيمها لإنشاء بيئة تشغيل. يمكن للتدفق المشترك استرداد هذه المتغيرات لاستخدامها في التعليمة البرمجية الخاصة به.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <FlowCallout async="false" continueOnError="false" enabled="true" name="String-Handler">
      <DisplayName>String Handler</DisplayName>
      <Parameters>
        <Parameter name="input">Gladys Kravitz</Parameter>
        <Parameter name="operations">concatenate tolowercase</Parameter>
        <Parameter name="outputVariable">string.handler.output</Parameter>
      </Parameters>
      <SharedFlowBundle>StringHandler</SharedFlowBundle>
    </FlowCallout>
    
  2. يتضمّن مسار default المشترك التالي سياسة JavaScript SharedStringFunctions يتم تنفيذها عند طلب المسار المشترك من سياسة FlowCallout.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <SharedFlow name="default">
      <Step>
        <Name>SharedStringFunctions</Name>
      </Step>
    </SharedFlow>
  3. في المسار المشترك، سيتم تطبيق سياسة JavaScript التالية في "SharedStringFunctions" يحدد ملف JavaScript SharedStringFunctions.js الذي يتضمّن الرمز البرمجي المطلوب تنفيذه.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="SharedStringFunctions">
      <DisplayName>SharedStringFunctions</DisplayName> <Properties/>
      <ResourceURL>jsc://SharedStringFunctions.js</ResourceURL>
    </Javascript>
  4. يتم تنفيذ JavaScript التالي، SharedStringFunctions.js، من سياسة JavaScript SharedStringFunctions. يسترد هذا النص البرمجي القيم من المتغيرات التي تم إنشاؤها من عناصر سياسة FlowCallout Parameter.

    // Input value from the calling API proxy.
    var handledString = context.getVariable("input");
    // Variable to use for output from this script.
    var outputVariable = context.getVariable("outputVariable");
    // A space-separated list of things to do to the input string.
    // Convert to lower case to handle unintentional capitals in configuration.
    var operation = context.getVariable("operations").toLowerCase();
    
    // If "lowercase" was given as an operation, convert the input to lowercase.
    if (operation.includes("tolowercase")) {
        handledString = handledString.toLowerCase();
    }
    
    // If "concatenate" was given as an operation, concatenate the input.
    if (operation.includes("concatenate")) {
        handledString = handledString.replace(/\s+/g, '');
    }
    // Assign the resulting string to the output variable specified by
    // the calling API proxy.
    context.setVariable(outputVariable, handledString);
  5. ينتقل التنفيذ من سياسة JavaScript إلى المسار المشترَك ثم إلى سياسة FlowCallout في الخادم الوكيل لواجهة برمجة التطبيقات الأصلي

مرجع العنصر

في ما يلي العناصر والسمات التي يمكنك ضبطها في هذه السياسة:

<FlowCallout async="false" continueOnError="false" enabled="true" name="Flow-Callout-1">
    <DisplayName>Custom label used in UI</DisplayName>
    <SharedFlowBundle>thereferencedsharedflowbundle</SharedFlowBundle>
</FlowCallout>

&lt;FlowCallout&gt; السمات

<FlowCallout async="false" continueOnError="false" enabled="true" name="Flow-Callout-1">

يصف الجدول التالي السمات المشتركة بين جميع العناصر الرئيسية للسياسة:

السمة الوصف تلقائي التواجد في المنزل
name

الاسم الداخلي للسياسة. يمكن لقيمة السمة name أن تحتوي على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. لا يمكن لهذه القيمة يتجاوز 255 حرفًا.

يمكنك، إذا أردت، استخدام العنصر <DisplayName> لتصنيف السياسة محرر الخادم الوكيل لواجهة مستخدم الإدارة باسم مختلف بلغة طبيعية.

لا ينطبق مطلوب
continueOnError

اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ سياسة. هذا متوقّع السلوك في معظم السياسات.

يمكنك ضبط القيمة على true لمواصلة تنفيذ المسار حتى بعد تطبيق إحدى السياسات. فشل.

خطأ اختياري
enabled

اضبط القيمة على true لفرض السياسة.

اضبط القيمة على false من أجل إيقاف السياسة. لن تكون السياسة ويتم فرضها حتى لو ظلت مرتبطة بتدفق.

صحيح اختياري
async

تم إيقاف هذه السمة نهائيًا.

خطأ منهي العمل به

&lt;DisplayName&gt; عنصر

استخدِمه مع السمة name لتصنيف السياسة في إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.

<DisplayName>Policy Display Name</DisplayName>
تلقائي

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة name للسياسة على النحو التالي: استخدام البيانات المختلفة.

التواجد في المنزل اختياري
النوع سلسلة

&lt;SharedFlowBundle&gt; عنصر

تحدِّد هذه السياسة اسم المسار المشترك للاتصال به. يجب أن تكون قيمة هذا العنصر مماثلة لـ قيمة سمة اسم العنصر SharedFlowBundle المستهدف.

<SharedFlowBundle/>

في أبسط مثال، يمكنك إعطاء اسم التدفق المشترك الذي يتم استدعاؤه كقيمة لهذا العنصر. أي أنّ قيمة هذا العنصر يجب أن تكون هي نفسها قيمة name للتدفق المشترك. .

<SharedFlowBundle>Shared-Flow-Name</SharedFlowBundle>
 
تلقائي لا ينطبق
الحضور

مطلوب.

النوع لا ينطبق

السمات

بلا عُري

&lt;Parameter&gt; عنصر

تحدّد معلمة وقيمة (أو مصدر قيمة) لتمريرها كمتغير في التدفق المشترك الذي تم استدعاؤه من خلال هذا .

وباستخدام إحدى المعلمات، يمكنك تحديد قيمة (أو متغير يحتوي على قيمة) يجب أن تكون تمريره إلى التدفق المشترك الذي تستدعيه السياسة. يشبه هذا من الناحية النظرية تحديد في استدعاء الدالة. وكما هو الحال مع معلمة الدالة، يمكن لقيمة معلمة FlowCallout تختلف بناءً على سياق استدعاء التدفق المشترك.

لا تظهر معلمات FlowCallout إلا أثناء تنفيذ التدفق المشترك.

البنية

يمكنك استخدام هذا العنصر مع أي من نماذج بناء الجملة التالية. لاحظ أنه حيث استخدام قيمة حرفية، فإن تنسيق القيمة التي تحددها سيعتمد على الكود الذي يستهلكها.

<!- A literal value in an attribute. --/>
<Parameter name="parameter-name" value='parameter-value' />
<!- A reference to a variable in an attribute. --/>
<Parameter name="parameter-name" ref='source-variable-name' />
<!- A literal value in the element content. --/>
<Parameter name="parameter-name">parameter-value</Parameter>
<!- An reference to an attribute in the element content. --/>
<Parameter name="parameter-name">{source-variable-name}</Parameter>

مثال

تعمل سياسة FlowCallout String-Handler هذه على تمرير المعلَمات التي تحدِّد مكان لتخزين مخرجات التدفق المشترك والمدخلات التي ينبغي استخدامها. عناصر Parameter تحديد أسماء المتغيرات وقيمها لإنشاء بيئة التشغيل. يمكن للتدفق المشترك استرداد هذه المتغيرات لاستخدامها في التعليمة البرمجية الخاصة بها.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FlowCallout async="false" continueOnError="false" enabled="true" name="String-Handler">
  <DisplayName>String Handler</DisplayName>
  <Parameters>
    <Parameter name="input">Gladys Kravitz</Parameter>
    <Parameter name="outputVariable">string.handler.output</Parameter>
  </Parameters>
  <SharedFlowBundle>StringHandler</SharedFlowBundle>
</FlowCallout>
تلقائي لا ينطبق
الحضور

مطلوب.

النوع لا ينطبق

السمات

السمة الوصف تلقائي التواجد في المنزل النوع
الاسم اسم متغيّر بيئة التشغيل المطلوب إنشاؤه بهذه المَعلمة بلا عُري مطلوب. سلسلة
المرجع

يشير ذلك المصطلح إلى المتغيّر الذي يحتوي على القيمة المطلوب استخدامها في وقت التشغيل. أزل هذه السمة إذا كنت لتحديد قيمة حرفية لاستخدامها.

بلا عُري اختياريّ. سلسلة
القيمة القيمة المطلوب استخدامها في متغيّر بيئة التشغيل الذي تم إنشاؤه باستخدام هذه المَعلمة يجب حذف هذه السمة إذا ينبغي لك تحديد اسم متغير يجب أن يكون مصدر القيمة. بلا عُري اختياريّ. سلسلة

&lt;Parameters&gt; عنصر

تحدّد مجموعة عناصر &lt;Parameter&gt; التي سيتم تمريرها كمتغيّرات في التدفق المشترك الذي استدعاه هذا .

البنية

<Parameters>
  <Parameter name="parameter-name" value='parameter-value' />
</Parameters>
تلقائي لا ينطبق
الحضور

اختياريّ.

النوع لا ينطبق

السمات

بلا عُري

المخططات

متغيّرات التدفق

تعمل متغيرات التدفق على تفعيل السلوك الديناميكي للسياسات والتدفقات في وقت التشغيل، استنادًا إلى HTTP العناوين أو محتوى الرسالة أو سياق التدفق. لمزيد من المعلومات حول متغيرات التدفق، يُرجى الاطّلاع على مرجع المتغيّرات:

متغير الوصف

apigee.edge.sharedflow.name

النطاق: أثناء تنفيذ التدفق المشترك
النوع: سلسلة
الإذن: قراءة

قيمة سمة اسم التدفق المشترك.

apigee.edge.flowhook.name

النطاق: أثناء تنفيذ التدفق المشترك المرفق بالتدفق عنصر جذب.
النوع: سلسلة
الإذن: قراءة

اسم عنصر الجذب للتدفق.

مرجع الخطأ

يصف هذا القسم رموز الأخطاء ورسائل الخطأ التي يتم عرضها ومتغيّرات الأخطاء التي تضبطها Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. هذه المعلومات مهمة لمعرفة ما إذا كنت تعمل على تطوير قواعد للأخطاء للتعامل مع الأخطاء. لمزيد من المعلومات، يمكنك الاطّلاع على المعلومات التي يجب معرفتها عن الأخطاء المتعلقة بالسياسات وأخطاء المعالجة.

أخطاء في وقت التشغيل

يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.

رمز الخطأ رموز حالة HTTP السبب إصلاح
flow.SharedFlowNotFound 500 إما أن التدفق المشترك غير موجود، أو أن التدفق المشترك موجود ولكن لم يتم نشره.

أخطاء النشر

لا ينطبق

مواضيع ذات صلة