আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
একটি API প্রক্সি বা অন্য শেয়ার্ড ফ্লো থেকে একটি শেয়ার্ড ফ্লোতে কল করার জন্য FlowCallout নীতি ব্যবহার করুন৷
একটি ভাগ করা প্রবাহে, আপনি পদক্ষেপগুলির একটি ক্রম তৈরি করেন যা আপনি একাধিক স্থান থেকে রান টাইমে পুনরায় ব্যবহার করতে পারেন। এই পদক্ষেপগুলি নীতি হিসাবে প্রয়োগ করা হয়, যেমন একটি API প্রক্সির মধ্যে। FlowCallout নীতি আপনাকে API প্রক্সি এবং অন্যান্য শেয়ার্ড ফ্লো থেকে শেয়ার্ড ফ্লো শুরু করার একটি উপায় দেয়৷ এটি একটি ঐতিহ্যগত প্রোগ্রামিং ভাষায় একটি ফাংশন কলের মতো কাজ করে।
- উদাহরণস্বরূপ, কল্পনা করুন যে আপনি API কী যাচাইকরণ, OAuth টোকেন যাচাইকরণ এবং নিয়মিত অভিব্যক্তি সুরক্ষার মতো সুরক্ষা বৈশিষ্ট্যগুলির সাথে একটি ভাগ করা প্রবাহ তৈরি করেছেন৷ এই শেয়ার্ড ফ্লো ইনবাউন্ড রিকোয়েস্ট চেক করার জন্য আপনার কনভেনশনের প্রতিনিধিত্ব করে। FlowCallout নীতিগুলি ব্যবহার করে, আপনি একাধিক API প্রক্সি থেকে সেই ভাগ করা প্রবাহকে আহ্বান করতে পারেন৷
- আপনি একটি শেয়ার্ড প্রবাহের মধ্যে থেকে একটি ফ্লোকলআউট নীতি প্রয়োগ করে একটি শেয়ার্ড ফ্লোকে অন্য থেকে কল করতে পারেন৷
নমুনা
ভাগ করা প্রবাহে API কী যাচাই করুন
এই উদাহরণে একটি শেয়ার্ড ফ্লো সাধারণ নিরাপত্তা-সম্পর্কিত কাজ সম্পাদন করতে ব্যবহৃত হয়। এখানে ভাগ করা প্রবাহ একটি API কীকে বৈধ করে। API প্রক্সি এবং অন্যান্য শেয়ার্ড ফ্লো এই শেয়ার্ড ফ্লোতে কল করতে FlowCallout নীতি ব্যবহার করতে পারে৷
নিম্নলিখিত শেয়ার্ড ফ্লো সংজ্ঞাতে একটি Verify-API-Key
নীতি অন্তর্ভুক্ত রয়েছে যা একটি API প্রক্সিতে একটি ফ্লোকলআউট নীতি থেকে শেয়ার্ড ফ্লো কল করা হলে তা কার্যকর করে৷
<?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>
নিম্নলিখিত ফ্লোকলআউট নীতি, একটি API প্রক্সিতে ব্যবহৃত, API কী যাচাই করতে পূর্ববর্তী ভাগ করা প্রবাহকে কল করে৷ 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 নীতি সাধারণ স্ট্রিং হ্যান্ডলিং ফাংশন সঞ্চালনের জন্য ডিজাইন করা একটি ভাগ করা প্রবাহকে কল করে। শেয়ার্ড ফ্লোতে জাভাস্ক্রিপ্ট অন্তর্ভুক্ত থাকে যা এর ইনপুট, ছোট ক্ষেত্রে এর ইনপুট বা উভয়কেই সংযুক্ত করে। 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>
নিম্নলিখিত
default
শেয়ার্ড ফ্লোতে একটিSharedStringFunctions
JavaScript নীতি অন্তর্ভুক্ত থাকে যা একটি FlowCallout নীতি থেকে শেয়ার্ড ফ্লো কল করা হলে তা কার্যকর করে৷<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SharedFlow name="default"> <Step> <Name>SharedStringFunctions</Name> </Step> </SharedFlow>
শেয়ার্ড ফ্লোতে, নিচের
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>
নিম্নলিখিত জাভাস্ক্রিপ্ট, SharedStringFunctions.js,
SharedStringFunctions
JavaScript নীতি থেকে কার্যকর করা হয়। এই স্ক্রিপ্ট 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);
- এক্সিকিউশন জাভাস্ক্রিপ্ট নীতি থেকে, শেয়ার্ড ফ্লোতে, তারপর আদি API প্রক্সিতে ফ্লোকলআউট নীতিতে প্রবাহিত হয়।
উপাদান রেফারেন্স
নিম্নলিখিত উপাদান এবং বৈশিষ্ট্যগুলি আপনি এই নীতিতে কনফিগার করতে পারেন:
<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 | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name
বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
<DisplayName>Policy Display Name</DisplayName>
ডিফল্ট | N/A আপনি এই উপাদানটি বাদ দিলে, নীতির |
---|---|
উপস্থিতি | ঐচ্ছিক |
টাইপ | স্ট্রিং |
<SharedFlowBundle> উপাদান
কল করার জন্য ভাগ করা প্রবাহের নাম নির্দিষ্ট করে। এই এলিমেন্টের মান টার্গেট SharedFlowBundle এলিমেন্টের নামের অ্যাট্রিবিউটের মানের সমান হওয়া উচিত।
<SharedFlowBundle/>
সবচেয়ে সহজ উদাহরণে, আপনি এই উপাদানটির জন্য একটি মান হিসাবে বলা শেয়ার্ড প্রবাহের নাম দেন। অর্থাৎ, এই উপাদানটির মান অবশ্যই শেয়ার্ড ফ্লো-এর name
অ্যাট্রিবিউট মানের সমান হতে হবে।
<SharedFlowBundle>Shared-Flow-Name</SharedFlowBundle>
ডিফল্ট | N/A |
উপস্থিতি | প্রয়োজন। |
টাইপ | N/A |
গুণাবলী
কোনোটিই নয়।
<প্যারামিটার> উপাদান
এই নীতি দ্বারা বলা শেয়ার্ড ফ্লোতে একটি পরিবর্তনশীল হিসাবে পাস করার জন্য একটি প্যারামিটার এবং মান (বা মান উত্স) নির্দিষ্ট করে৷
একটি প্যারামিটার ব্যবহার করে, আপনি একটি মান (অথবা একটি মান ধারণকারী একটি পরিবর্তনশীল) নির্দিষ্ট করতে পারেন যা নীতি দ্বারা বলা শেয়ার্ড ফ্লোতে পাস করা উচিত। এটি ধারণাগতভাবে একটি ফাংশন কলে একটি প্যারামিটার নির্দিষ্ট করার মতো। একটি ফাংশন প্যারামিটারের মতো, একটি ফ্লোকলআউট প্যারামিটারের মান ভাগ করা ফ্লো কলের প্রসঙ্গের উপর ভিত্তি করে পরিবর্তিত হতে পারে।
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>
উদাহরণ
এই 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>
ডিফল্ট | N/A |
উপস্থিতি | প্রয়োজন। |
টাইপ | N/A |
গুণাবলী
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | টাইপ |
---|---|---|---|---|
নাম | এই প্যারামিটার দিয়ে তৈরি করার জন্য রানটাইম ভেরিয়েবলের নাম। | কোনোটিই নয়। | প্রয়োজন। | স্ট্রিং | রেফ | চলকটি রানটাইমে ব্যবহার করার মান ধারণ করে। আপনি যদি ব্যবহার করার জন্য একটি আক্ষরিক মান নির্দিষ্ট করছেন তবে এই বৈশিষ্ট্যটি বাদ দিন। | কোনোটিই নয়। | ঐচ্ছিক। | স্ট্রিং |
মান | এই প্যারামিটার দিয়ে তৈরি রানটাইম ভেরিয়েবলে ব্যবহার করার মান। আপনি যদি একটি ভেরিয়েবলের নাম উল্লেখ করেন যা মান উৎস হওয়া উচিত তাহলে এই বৈশিষ্ট্যটি বাদ দিন। | কোনোটিই নয়। | ঐচ্ছিক। | স্ট্রিং |
<প্যারামিটার> উপাদান
এই নীতি দ্বারা বলা শেয়ার্ড ফ্লোতে ভেরিয়েবল হিসাবে পাস করার জন্য <প্যারামিটার> উপাদানগুলির সেট নির্দিষ্ট করে৷
সিনট্যাক্স
<Parameters> <Parameter name="parameter-name" value='parameter-value' /> </Parameters>
ডিফল্ট | N/A |
উপস্থিতি | ঐচ্ছিক। |
টাইপ | N/A |
গুণাবলী
কোনোটিই নয়।
স্কিমাস
ফ্লো ভেরিয়েবল
ফ্লো ভেরিয়েবলগুলি HTTP শিরোনাম, বার্তা বিষয়বস্তু বা প্রবাহ প্রসঙ্গের উপর ভিত্তি করে রানটাইমে নীতি এবং প্রবাহের গতিশীল আচরণ সক্ষম করে। ফ্লো ভেরিয়েবল সম্পর্কে আরও তথ্যের জন্য, ভেরিয়েবল রেফারেন্স দেখুন।
পরিবর্তনশীল | বর্ণনা |
---|---|
| সুযোগ : শেয়ার্ড ফ্লো এক্সিকিউশনের সময় ভাগ করা প্রবাহের নামের বৈশিষ্ট্যের মান। |
| সুযোগ : ফ্লো হুকের সাথে সংযুক্ত শেয়ার্ড ফ্লো কার্যকর করার সময়। ফ্লো হুকের নাম। |
ত্রুটি উল্লেখ
এই বিভাগটি ফল্ট কোড এবং ত্রুটির বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷
ফল্ট কোড | HTTP স্থিতি | কারণ | ঠিক করুন |
---|---|---|---|
flow.SharedFlowNotFound | 500 | হয় ভাগ করা প্রবাহ বিদ্যমান নেই, অথবা ভাগ করা প্রবাহ বিদ্যমান কিন্তু স্থাপন করা হয় না। | build |
স্থাপনার ত্রুটি
N/A
সম্পর্কিত বিষয়
- ভাগ করা প্রবাহ তৈরি করা: পুনরায় ব্যবহারযোগ্য ভাগ করা প্রবাহ
- একাধিক প্রক্সি জুড়ে ভাগ করা প্রবাহ নির্বাহ করা: একটি ফ্লো হুক ব্যবহার করে একটি ভাগ করা প্রবাহ সংযুক্ত করা