फ़्लो कॉलआउट नीति

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

एपीआई प्रॉक्सी या दूसरे एपीआई प्रॉक्सी या किसी दूसरे तरीके से शेयर किए गए फ़्लो पर कॉल करने के लिए, फ़्लो कॉलआउट नीति का इस्तेमाल करें शेयर किया गया फ़्लो.

शेयर किए गए फ़्लो में, चरणों का एक क्रम बनाया जाता है, जिसे रन टाइम के दौरान कई जगहें. ये चरण, एपीआई प्रॉक्सी की तरह ही नीतियों के तौर पर लागू किए जाते हैं. फ़्लो कॉलआउट नीति एपीआई प्रॉक्सी और अन्य शेयर किए गए फ़्लो से, शेयर किए गए फ़्लो को शुरू करने का तरीका बताता है. यह किसी पारंपरिक प्रोग्रामिंग भाषा में फ़ंक्शन कॉल की तरह काम करता है.

  • उदाहरण के लिए, मान लें कि आपने सुरक्षा से जुड़ी इन सुविधाओं के साथ एक शेयर फ़्लो बनाया है, जैसे कि एपीआई पासकोड की पुष्टि, OAuth टोकन की पुष्टि, और रेगुलर एक्सप्रेशन की सुरक्षा. शेयर किया गया यह फ़्लो इनबाउंड अनुरोधों की जांच करने के तरीके को दिखाता है. फ़्लोकॉलआउट नीतियों का इस्तेमाल करके, आप एक से ज़्यादा एपीआई प्रॉक्सी से उस शेयर किए गए फ़्लो को शुरू कर सकते हैं.
  • किसी शेयर किए गए फ़्लो के अंदर से एक फ़्लो कॉलआउट नीति लागू करके, एक शेयर किए गए फ़्लो को दूसरे फ़्लो से कॉल किया जा सकता है फ़्लो.

सैंपल

शेयर किए गए फ़्लो में एपीआई पासकोड की पुष्टि करें

इस उदाहरण में, सुरक्षा से जुड़े सामान्य टास्क करने के लिए, शेयर किए गए फ़्लो का इस्तेमाल किया गया है. यहां शेयर किया गया फ़्लो, एपीआई पासकोड की पुष्टि करता है. एपीआई प्रॉक्सी और अन्य शेयर किए गए फ़्लो, फ़्लो कॉलआउट का इस्तेमाल कर सकते हैं कॉल करने की नीति का इस्तेमाल किया जा रहा है.

शेयर किए गए फ़्लो की इस परिभाषा में, लागू होने वाली Verify-API-Key नीति शामिल है जब शेयर किए गए फ़्लो को, एपीआई प्रॉक्सी में फ़्लोकॉलआउट नीति से कॉल किया जाता है.

<?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>

एपीआई प्रॉक्सी में इस्तेमाल की जाने वाली फ़्लोकॉलआउट नीति, पिछले शेयर किए गए फ़्लो को की पुष्टि करें. verify-apikey-shared शेयर किया गया फ़्लो बंडल (यहां नहीं दिखाया गया है) शेयर किए गए फ़्लो को उसी तरह कॉन्फ़िगर करता है जिस तरह एपीआई प्रॉक्सी बंडल, प्रॉक्सी को कॉन्फ़िगर करता है.

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

पैरामीटर को शेयर किए गए फ़्लो में पास करना

इस उदाहरण में बताया गया है कि फ़्लोकॉलआउट नीति से पैरामीटर को शेयर किया गया फ़्लो. यहां फ़्लोकॉलआउट नीति, सामान्य तरीके से काम करने के लिए डिज़ाइन किए गए शेयर किए गए फ़्लो को कॉल करती है स्ट्रिंग हैंडलिंग फ़ंक्शन. शेयर किए गए फ़्लो में JavaScript शामिल होता है, जो इसके इनपुट को जोड़ता है, इसके इनपुट को लोअरकेस में लिखता है या दोनों. फ़्लो कॉलआउट नीति ऐसे पैरामीटर के बारे में बताती है जो स्ट्रिंग इनपुट, आउटपुट, और इनपुट से क्या करना है.

  1. 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 शेयर किए गए फ़्लो में, SharedStringFunctions JavaScript नीति शामिल है. यह नीति तब लागू होती है, जब फ़्लोकॉलआउट नीति से, शेयर किए गए फ़्लो को कॉल किया जाता है.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <SharedFlow name="default">
      <Step>
        <Name>SharedStringFunctions</Name>
      </Step>
    </SharedFlow>
  3. शेयर किए गए फ़्लो में, यहां दी गई SharedStringFunctions JavaScript नीति एक्ज़ीक्यूट करने के लिए कोड के साथ SharedStringFunctions.js JavaScript फ़ाइल तय करता है.

    <?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, SharedStringFunctions JavaScript की नीति. यह स्क्रिप्ट इनसे वैल्यू लेती है फ़्लोकॉलआउट नीति 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 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; एलिमेंट

इससे, शेयर किए गए फ़्लो में वैरिएबल के तौर पर पास करने के लिए, पैरामीटर और वैल्यू (या वैल्यू का सोर्स) तय होता है. की नीति देखें.

पैरामीटर का इस्तेमाल करके, आप एक ऐसी वैल्यू (या वैल्यू वाला वैरिएबल) तय कर सकते हैं जिसे को शेयर किए गए फ़्लो में भेजा जाता है. यह सैद्धांतिक तौर पर, किसी फ़ंक्शन कॉल में पैरामीटर. फ़ंक्शन पैरामीटर की तरह ही, फ़्लो कॉलआउट पैरामीटर का मान शेयर फ़्लो कॉल के संदर्भ के आधार पर अलग-अलग हो सकते हैं.

फ़्लो कॉलआउट पैरामीटर सिर्फ़ शेयर किए गए फ़्लो के चलने के दौरान दिखते हैं.

सिंटैक्स

इस एलिमेंट का इस्तेमाल, इनमें से किसी भी सिंटैक्स फ़ॉर्म के साथ किया जा सकता है. ध्यान दें कि जहां आपने लिटरल वैल्यू का इस्तेमाल करते हैं, तो आपके तय किए गए वैल्यू का फ़ॉर्मैट, उस कोड पर निर्भर करेगा इसका इस्तेमाल करता है.

<!- 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>

उदाहरण

यह 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>
डिफ़ॉल्ट लागू नहीं
मौजूदगी

ज़रूरी है.

स्ट्रीम किस तरह की है लागू नहीं

विशेषताएं

एट्रिब्यूट ब्यौरा डिफ़ॉल्ट मौजूदगी टाइप
नाम इस पैरामीटर के साथ बनाने के लिए रनटाइम वैरिएबल का नाम. कोई नहीं. ज़रूरी है. स्ट्रिंग
संदर्भ

वैरिएबल में रनटाइम के समय इस्तेमाल किया जाने वाला मान शामिल होता है. अगर आप इस्तेमाल करने के लिए लिटरल वैल्यू तय करें.

कोई नहीं. ज़रूरी नहीं. स्ट्रिंग
value इस पैरामीटर से बनाए गए रनटाइम वैरिएबल में इस्तेमाल की जाने वाली वैल्यू. इस एट्रिब्यूट को छोड़ दें, अगर आप ऐसे वैरिएबल का नाम तय कर रहे हैं जो वैल्यू का सोर्स होना चाहिए. कोई नहीं. ज़रूरी नहीं. स्ट्रिंग

&lt;Parameters&gt; एलिमेंट

इस कॉलम से, वैरिएबल के तौर पर पास किए जाने वाले &lt;Parameter&gt; एलिमेंट के सेट को तय करता है. की नीति देखें.

सिंटैक्स

<Parameters>
  <Parameter name="parameter-name" value='parameter-value' />
</Parameters>
डिफ़ॉल्ट लागू नहीं
मौजूदगी

ज़रूरी नहीं.

स्ट्रीम किस तरह की है लागू नहीं

विशेषताएं

कोई नहीं.

स्कीमा

फ़्लो वैरिएबल

फ़्लो वैरिएबल, एचटीटीपी के आधार पर रनटाइम के दौरान नीतियों और फ़्लो के डाइनैमिक व्यवहार को चालू करते हैं हेडर, मैसेज कॉन्टेंट या फ़्लो कॉन्टेक्स्ट. फ़्लो वैरिएबल के बारे में ज़्यादा जानकारी के लिए, देखें वैरिएबल रेफ़रंस.

वैरिएबल ब्यौरा

apigee.edge.sharedflow.name

स्कोप: शेयर किए गए फ़्लो को एक्ज़ीक्यूट करने के दौरान
टाइप: स्ट्रिंग
अनुमति: पढ़ें

शेयर किए गए फ़्लो के नाम वाले एट्रिब्यूट की वैल्यू.

apigee.edge.flowhook.name

स्कोप: फ़्लो से अटैच किए गए शेयर किए गए फ़्लो के एक्ज़ीक्यूशन के दौरान हुक.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Type: स्ट्रिंग
अनुमति: पढ़ें

फ़्लो हुक का नाम.

गड़बड़ी का रेफ़रंस

इस सेक्शन में गड़बड़ी के कोड और दिखाए गए गड़बड़ी के मैसेज के बारे में बताया गया है. साथ ही, इस नीति के ट्रिगर होने पर Edge की मदद से सेट किए गए गड़बड़ी वाले वैरिएबल के बारे में बताया गया है. यह जानकारी जानना ज़रूरी है कि क्या आप गड़बड़ियों को ठीक करने के लिए, गड़बड़ी से जुड़े नियम बना रहे हैं. ज़्यादा जानने के लिए, नीति से जुड़ी गड़बड़ियों के बारे में आपके लिए ज़रूरी जानकारी और गड़बड़ियों को ठीक करने के तरीके देखें.

रनटाइम से जुड़ी गड़बड़ियां

नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.

गड़बड़ी का कोड एचटीटीपी कोड स्थिति वजह समाधान
flow.SharedFlowNotFound 500 शेयर किया गया फ़्लो मौजूद नहीं है या शेयर किया गया फ़्लो मौजूद है, लेकिन उसे डिप्लॉय नहीं किया गया है.

डिप्लॉयमेंट से जुड़ी गड़बड़ियां

लागू नहीं

मिलते-जुलते विषय