বার্তা প্রবাহ পরিবর্তনশীল

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

message ফ্লো ভেরিয়েবল এবং এর প্রোপার্টিগুলোর অ্যাক্সেস নির্ভর করে এপিআই প্রক্সি ফ্লো-এর কোন পর্যায়ে এটি অ্যাক্সেস করা হচ্ছে তার উপর। এটি সমস্ত কনটেক্সটে উপলব্ধ, যেখানে request বা response মতো কিছু অবজেক্ট উপলব্ধ নয়।

ব্যবহারের ক্ষেত্র

message ফ্লো ভেরিয়েবলের প্রধান ব্যবহার হলো যখন আপনার প্রক্সি এরর ফ্লোতে প্রবেশ করে: তখন request এবং response ফ্লো ভেরিয়েবলগুলো স্কোপের বাইরে চলে যায়।

উদাহরণস্বরূপ, এরর ফ্লো-তে response অবজেক্টটি পাওয়া যায় না। এরর ফ্লো-তে থাকলে আপনি জাভাস্ক্রিপ্ট পলিসি ব্যবহার করে response অবজেক্টে রেসপন্স হেডার সেট করতে পারবেন না। এর পরিবর্তে, আপনি নিম্নলিখিতগুলির মধ্যে একটি ব্যবহার করতে পারেন:

এই উভয় অবজেক্টই এরর ফ্লো-তে উপলব্ধ, এবং এগুলো একটি জাভাস্ক্রিপ্ট পলিসির ভেতর থেকে রেসপন্স হেডার সেট করতে অথবা ফ্লো ভ্যারিয়েবল ব্যবহার করতে পারে এমন অন্যান্য পলিসিতে অ্যাক্সেস করা যায়।

আপনি রেসপন্স অবজেক্টে হেডার-এর মতো ভ্যালু অ্যাসাইন করার জন্য AssignMessage পলিসি ব্যবহার করতে পারেন। Assign Message স্বয়ংক্রিয়ভাবে রিকোয়েস্ট/রেসপন্স ফ্লো থেকে এরর ফ্লো-তে কনটেক্সট পরিবর্তনের বিষয়টি পরিচালনা করে।

message ভেরিয়েবলের আরেকটি ব্যবহার হলো `MessageLogging` পলিসির মাধ্যমে `PostClientFlow`-তে রেসপন্স ডেটা লগ করা। আপনি যদি message অবজেক্টটি ব্যবহার করেন, তাহলে প্রক্সিতে সফল এবং ত্রুটিপূর্ণ উভয় ক্ষেত্রেই রেসপন্সের তথ্য নির্বিঘ্নে লগ করতে পারবেন।

উদাহরণ

এরর ফ্লো-তে, আপনি জাভাস্ক্রিপ্ট পলিসি থেকে error অথবা message ব্যবহার করে একটি রেসপন্স হেডার সেট করতে পারেন। উদাহরণস্বরূপ:

context.setVariable('error.header.FOO-1', 'error_header');

অথবা

context.setVariable('message.header.FOO-2', 'message_header');

তবে, নিম্নলিখিত এক্সপ্রেশনটি কাজ করবে না :

context.setVariable('response.header.FOO-3', 'response_header');

এক্ষেত্রে, এরর ফ্লো-তে response ভ্যারিয়েবলটি স্কোপের বাইরে থাকে। (উল্লেখ্য যে, ট্রেস-এ, একটি সমান চিহ্নের উপর দিয়ে একটি স্ল্যাশ টেনে ভ্যারিয়েবলগুলো দৃশ্যত তা নির্দেশ করে।)

একটিমাত্র পলিসিতে সফল এবং ত্রুটিপূর্ণ উভয় ফ্লো-এর জন্য রেসপন্স হেডার সেট করতে, আপনি জাভাস্ক্রিপ্ট পলিসির ভিতরে message ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

<faultrules>
  <faultrule name="invalid_key_rule">
    <step>
      <name>SetResponseHeaders</name>
    </step>
    <condition>(fault.name = "InvalidApiKey")</condition>
  </faultrule>
</faultrules>

পলিসিতে, নিম্নলিখিতের মতো কোড যেকোনো ফ্লো কনটেক্সটে এরর/রেসপন্স হেডার সেট করে:

context.setVariable('message.header.FOO-1', 'the header value');

আপনি এই একই পলিসি সাধারণ ProxyResponse ফ্লো-তে পুনরায় ব্যবহার করতে পারেন এবং এটি সফল হবে, কারণ message সমস্ত কনটেক্সট থেকে উপলব্ধ।