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

आपको Apigee Edge दस्तावेज़ दिख रहा है.
Apigee X दस्तावेज़ देखें.

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

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

  • उदाहरण के लिए, मान लें कि आपने एपीआई कुंजी की पुष्टि करने, 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>

<FlowCallout> एट्रिब्यूट

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

इस टेबल में उन एट्रिब्यूट के बारे में बताया गया है जो नीति से जुड़े सभी पैरंट एलिमेंट में मौजूद हैं:

एट्रिब्यूट जानकारी डिफ़ॉल्ट मौजूदगी
name

नीति का अंदरूनी नाम. name एट्रिब्यूट की वैल्यू में अक्षर, संख्याएं, स्पेस, हाइफ़न, अंडरस्कोर, और फ़ुल स्टॉप का इस्तेमाल किया जा सकता है. इस वैल्यू में 255 से ज़्यादा वर्ण नहीं हो सकते.

इसके अलावा, मैनेजमेंट एलिमेंट के यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति एलिमेंट को किसी अलग नाम से इस्तेमाल करने के लिए, <DisplayName> एलिमेंट का इस्तेमाल किया जा सकता है.

लागू नहीं ज़रूरी है
continueOnError

false के लिए सेट करें, ताकि नीति के काम न करने पर गड़बड़ी दिखाई दे. ज़्यादातर नीतियों के लिए इस तरीके का इस्तेमाल किया जाना चाहिए.

true के लिए फ़्लो सेट करें, ताकि नीति लागू न होने पर भी फ़्लो जारी रखा जा सके.

गलत ज़रूरी नहीं
enabled

नीति लागू करने के लिए, true पर सेट करें.

false पर नीति बंद करें पर सेट करें. यह नीति किसी फ़्लो से जुड़ी होने के बावजूद लागू नहीं होगी.

सही ज़रूरी नहीं
async

इस एट्रिब्यूट के इस्तेमाल पर रोक लगा दी गई है.

गलत बहिष्कृत

<DisplayName> एलिमेंट

मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति को लेबल करने के लिए name एट्रिब्यूट के साथ-साथ इस्तेमाल करें. यह आम तौर पर इस्तेमाल किए जाने वाले भाषा के नाम से मेल खाता है.

<DisplayName>Policy Display Name</DisplayName>
डिफ़ॉल्ट

लागू नहीं

इस एलिमेंट को छोड़ने पर, नीति की name एट्रिब्यूट की वैल्यू का इस्तेमाल किया जाता है.

मौजूदगी ज़रूरी नहीं
Type स्ट्रिंग

<SharedFlowbundle> तत्व

इससे, कॉल करने के लिए शेयर किए गए फ़्लो का नाम मिलता है. इस एलिमेंट की वैल्यू, Shared sharedFlowbundle एलिमेंट के नाम एट्रिब्यूट की वैल्यू से मेल खानी चाहिए.

<SharedFlowBundle/>

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

<SharedFlowBundle>Shared-Flow-Name</SharedFlowBundle>
 
डिफ़ॉल्ट लागू नहीं
मौजूदगी

ज़रूरी है.

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

विशेषताएं

कोई नहीं.

<पैरामीटर> एलिमेंट

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

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

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

सिंटैक्स

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

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

ज़रूरी है.

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

विशेषताएं

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

वैरिएबल में वह वैल्यू होती है जो रनटाइम के दौरान इस्तेमाल की जाती है. अगर इस्तेमाल करने के लिए लिटरल वैल्यू तय की जा रही है, तो इस एट्रिब्यूट का इस्तेमाल न करें.

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

<पैरामीटर> एलिमेंट

इस नीति के कॉल किए गए शेयर फ़्लो में वैरिएबल के रूप में पास करने के लिए <parameter> एलिमेंट के सेट के बारे में बताता है.

सिंटैक्स

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

ज़रूरी नहीं.

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

विशेषताएं

कोई नहीं.

स्कीमा

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

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

वैरिएबल जानकारी

apigee.edge.sharedflow.name

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

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

apigee.edge.flowhook.name

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

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

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

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

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

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

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

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

लागू नहीं

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