16.08.17 - পাবলিক ক্লাউড রিলিজ নোটের জন্য Apigee Edge

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

মঙ্গলবার, ৩০শে আগস্ট, ২০১৬ তারিখে আমরা পাবলিক ক্লাউডের জন্য Apigee Edge-এর একটি নতুন সংস্করণ প্রকাশ করেছি।

নতুন বৈশিষ্ট্য এবং আপডেট

এই রিলিজের নতুন ফিচার ও আপডেটগুলো নিচে দেওয়া হলো।

মেসেজ অ্যাসাইন করুন এবং ফল্ট উত্থাপন করুন-এ JSON পেলোড

'Assign Message' বা 'Raise Fault' পলিসি ব্যবহার করে JSON পেলোড সেট করার সময়, রানটাইমে JSON মেসেজটি সঠিকভাবে ফরম্যাট করা নিশ্চিত করতে ব্যবহারকারীদের কখনও কখনও বিকল্প পদ্ধতি অবলম্বন করতে হতো। যেমন, পেলোডের শুরুতে একটি ব্যাকস্ল্যাশ "\" ব্যবহার করা অথবা 'Payload' এলিমেন্টে 'variablePrefix' ও 'variableSuffix' উল্লেখ করা, এমনকি মেসেজে কোনো ভ্যারিয়েবল ব্যবহার করা না হলেও।

এই উন্নতির ফলে, সঠিক JSON মেসেজ ফরম্যাটিং নিশ্চিত করার জন্য কোনো বিকল্প পদ্ধতির প্রয়োজন নেই, এবং অবৈধ JSON তৈরি না করেই কার্লি ব্র্যাকেট ব্যবহার করে ভেরিয়েবল নির্দিষ্ট করা যাবে। উদাহরণস্বরূপ, নিম্নলিখিতটি JSON মেসেজে message.content-এর মান সন্নিবেশ করে:

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

যদি আপনি কোনো বিকল্প পদ্ধতি ব্যবহার করে থাকেন, তাহলেও আপনার কোড আগের মতোই কাজ করতে থাকবে। ভেরিয়েবল বোঝানোর জন্য আপনি কার্লি ব্র্যাকেটের পরিবর্তে variablePrefix এবং variableSuffix-ও ব্যবহার করতে পারেন।

অ্যাসাইন মেসেজ পলিসি এবং রেইজ ফল্ট পলিসি রেফারেন্স ডক্স-এ <Set><Payload> এলিমেন্টটি দেখুন। (APIRT-1160)

XML থেকে JSON নীতি উন্নয়ন

XML থেকে JSON পলিসিটি নিম্নলিখিত সক্ষমতাগুলো দিয়ে উন্নত করা হয়েছে। আপনি পলিসিটি কনফিগার করতে পারেন:

  • রূপান্তরের সময় কিছু XML এলিমেন্টকে অ্যারে হিসেবে বিবেচনা করা হয়, যার ফলে JSON ডকুমেন্টে মানগুলো বর্গাকার বন্ধনী '[ ]'-এর মধ্যে থাকে।
  • চূড়ান্ত JSON ডকুমেন্ট থেকে XML ডকুমেন্টের স্তরক্রম বাদ দিন বা মুছে ফেলুন।

আরও তথ্যের জন্য, XML থেকে JSON নীতিমালা দেখুন। (APIRT-1144)

এপিআই প্রোডাক্ট রিসোর্স পাথে একাধিক ওয়াইল্ডকার্ড

API প্রোডাক্ট-এ রিসোর্স পাথ নির্ধারণ করার সময়, আপনি একটি রিসোর্স পাথের একাধিক স্থানে ওয়াইল্ডকার্ড অন্তর্ভুক্ত করতে পারেন। উদাহরণস্বরূপ, /team/*/invoices/** /team পরে যেকোনো একটি ভ্যালু এবং invoices/ এর পরে যেকোনো রিসোর্স পাথ ব্যবহার করে API কল করার অনুমতি দেয়। একটি API কলে অনুমোদিত URI হবে proxyBasePath/team/finance/invoices/company/a

এই রিলিজের পর যদি আপনার বিদ্যমান API প্রোডাক্ট রিসোর্স পাথগুলো প্রত্যাশিতভাবে কাজ করা বন্ধ করে দেয়, তাহলে পূর্ববর্তী আচরণে ফিরে যেতে আপনার অর্গানাইজেশনে নিম্নলিখিত প্রপার্টিটি সেট করুন: features.enableStandardWildCardMatchForAPIProductResources = true

(এমজিএমটি-৩২৭৩)

জাভাস্ক্রিপ্টে ক্রিপ্টো ফাংশন

MD5, SHA-1, SHA256, SHA512-এর মতো হ্যাশ অবজেক্ট তৈরি, গ্রহণ এবং আপডেট করার জন্য এক নতুন সেট উচ্চ-ক্ষমতাসম্পন্ন জাভাস্ক্রিপ্ট crypto ফাংশন উপলব্ধ হয়েছে। এই ক্রিপ্টো অবজেক্টটি আপনাকে বিভিন্ন ফরম্যাটে তারিখ গ্রহণ করার সুবিধাও দেয়। আরও তথ্যের জন্য, জাভাস্ক্রিপ্ট অবজেক্ট মডেল দেখুন। (APIRT-2886)

জাভা কলআউট JAR সংস্করণ পরীক্ষা

একটি এপিআই প্রক্সিতে জাভা JAR রিসোর্স আপলোড করার সময়, যদি জাভা রিসোর্সটির ভার্সন 'Supported software and supported versions'- এ তালিকাভুক্ত Edge-এর সমর্থিত জাভা ভার্সনের সাথে সামঞ্জস্যপূর্ণ না হয়, তাহলে HTTP 400 স্ট্যাটাস কোড (500-এর পরিবর্তে) রিটার্ন করা হয়। (MGMT-3420)

এপিআই প্রক্সি রিসোর্স যাচাইকরণ

যখন আপনার এনভায়রনমেন্ট বা অর্গানাইজেশন স্কোপে এপিআই প্রক্সি রিসোর্স ফাইল (যেমন জাভাস্ক্রিপ্ট বা জাভা JAR) সংরক্ষিত থাকে, তখন ভ্যালিডেশন ফ্রেমওয়ার্ক অনুযায়ী ইম্পোর্টের ভ্যালিডেশন পাস করার জন্য আপনাকে আর প্রক্সি বান্ডেলে এপিআই প্রক্সি লেভেলে সেই রিসোর্সগুলো অন্তর্ভুক্ত করার প্রয়োজন হয় না। রিসোর্স ভ্যালিডেশন এখন ইম্পোর্টের সময় নয়, বরং ডিপ্লয়ের সময় সম্পন্ন হয়। (MGMT-1430)

প্রতিটি এপিআই প্রক্সির জন্য টাইমআউট কনফিগার করুন

আপনি এপিআই প্রক্সিগুলোকে একটি নির্দিষ্ট সময়ের পরে টাইম আউট করার জন্য কনফিগার করতে পারেন (একটি 504 গেটওয়ে টাইম আউট স্ট্যাটাস সহ)। এর প্রধান ব্যবহার হলো সেইসব প্রাইভেট ক্লাউড গ্রাহকদের জন্য, যাদের এপিআই প্রক্সিগুলো কার্যকর হতে বেশি সময় নেয়। উদাহরণস্বরূপ, ধরুন আপনার নির্দিষ্ট প্রক্সিগুলোকে ৩ মিনিটে টাইম আউট করার প্রয়োজন। আপনি একটি এপিআই প্রক্সির কনফিগারেশনে একটি নতুন api.timeout প্রপার্টি ব্যবহার করতে পারেন। ৩-মিনিটের উদাহরণটির ক্ষেত্রে আপনি যেভাবে এটি করবেন তা নিচে দেওয়া হলো:

  1. প্রথমে, লোড ব্যালেন্সার, রাউটার এবং মেসেজ প্রসেসরকে ৩ মিনিট পর টাইম আউট হওয়ার জন্য কনফিগার করে নিন।
  2. এরপর, প্রাসঙ্গিক প্রক্সিগুলোকে ৩ মিনিটে টাইম আউট হওয়ার জন্য কনফিগার করুন। মানটি মিলিসেকেন্ডে উল্লেখ করুন। উদাহরণস্বরূপ:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. তবে মনে রাখবেন, সিস্টেম টাইমআউট বাড়ালে পারফরম্যান্সে সমস্যা হতে পারে, কারণ api.timeout সেটিং ছাড়া সমস্ত প্রক্সি নতুন, উচ্চতর লোড ব্যালেন্সার, রাউটার এবং মেসেজ প্রসেসর টাইমআউট ব্যবহার করে। তাই অন্যান্য এপিআই প্রক্সি, যেগুলোর জন্য দীর্ঘ টাইমআউটের প্রয়োজন নেই, সেগুলোকে কম টাইমআউট ব্যবহার করার জন্য কনফিগার করুন। উদাহরণস্বরূপ, নিম্নলিখিতটি একটি এপিআই প্রক্সিকে ১ মিনিট পর টাইমআউট করার জন্য সেট করে:
    <Property name="api.timeout">60000</Property>

যেসব ক্লাউড গ্রাহক Edge টাইমআউট পরিবর্তন করতে পারেন না, তারা একটি API প্রক্সি টাইমআউটও কনফিগার করতে পারেন, তবে শর্ত হলো সেই টাইমআউটটি অবশ্যই ৫৭ সেকেন্ডের স্ট্যান্ডার্ড Edge মেসেজ প্রসেসর টাইমআউটের চেয়ে কম হতে হবে।

আপনি কোনো ভেরিয়েবল দিয়ে মানটি পূরণ করতে পারবেন না। এই বৈশিষ্ট্যটি এন্ডপয়েন্ট প্রপার্টিজ রেফারেন্সে অন্তর্ভুক্ত আছে। (APIRT-1778)

বার্তা লগিং নীতির জন্য TLS/SSL

মেসেজ লগিং পলিসির SSLInfo কনফিগারেশনে <KeyStore> এবং <TrustStore> সেট করা যায়, যা একটি লগিং সার্ভিসের সাথে একমুখী এবং দ্বিমুখী TLS/SSL-এর অনুমতি দেয়। আপনি একটি প্রক্সি TargetEndpoint-এর মতোই মেসেজ লগিং পলিসিতে SSLInfo কনফিগার করেন। তবে, মেসেজ লগিং TLS/SSL শুধুমাত্র TCP প্রোটোকল সমর্থন করে। (APIRT-1858)

ত্রুটিগুলি সমাধান করা হয়েছে

এই রিলিজে নিম্নলিখিত বাগগুলো সমাধান করা হয়েছে। এই তালিকাটি মূলত সেইসব ব্যবহারকারীদের জন্য, যারা তাদের সাপোর্ট টিকেটগুলো সমাধান হয়েছে কিনা তা পরীক্ষা করে দেখতে চান। এটি সকল ব্যবহারকারীকে বিস্তারিত তথ্য প্রদানের জন্য তৈরি করা হয়নি।

ইস্যু আইডি বর্ণনা
SECENG-609 সংশ্লিষ্ট ট্রাস্টস্টোর মুছে ফেলার সময় অথবা ট্রাস্টস্টোরে থাকা বৈধ সার্টিফিকেটটি মুছে ফেলা হলে রানটাইম কলগুলো ব্যর্থ হচ্ছে না।
এমজিএমটি-৩৪০৪ Node.js লগ দেখা/পুনরুদ্ধার করা এবং প্রক্সি স্থাপন করা খুব ধীরগতির।
এমজিএমটি-৩৪০০ যদি কলকারী ব্যবহারকারীর নামে একটি "+" চিহ্ন থাকে, তাহলে /userroles ম্যানেজমেন্ট API-তে করা কলটি ব্যর্থ হয়।
এমজিএমটি-৩৩৬৮ java.lang.ArrayIndexOutOfBoundsException: 1, যখন এমন একটি API প্রক্সি বান্ডেল ইম্পোর্ট করা হয় যাতে resources/node/resources ডিরেক্টরি থাকে।
এমজিএমটি-৩৩৬৪ OAuthV2: রিডাইরেক্ট_ইউআরআই চেক
এমজিএমটি-৩৩১৯ কোনো ভল্টের যে এন্ট্রিগুলোর একটিতে নাল ভ্যালু আছে, সেগুলোর তালিকা দেখা অর্গগুলোর (সিপিএস এবং নন-সিপিএস) জন্য কাজ করে না।
এমজিএমটি-৩২২৬ সংস্থা/পরিবেশ স্তরে কোয়েরি করলে সমস্ত ডেটা চলে আসা উচিত নয়, যার ফলে API ব্যর্থ হতে পারে।
রিলিজ_১৬০৩০২-এ একটি বাগ ছিল, যেখানে রিসোর্সগুলোর মোট আকার ১৬ মেগাবাইটের বেশি হলে সংস্থা-স্তর/পরিবেশ-স্তরে রিসোর্সগুলোর তালিকা তৈরি করা যেত না। এই সমাধানটি সেই সমস্যার মোকাবেলা করে।
AXAPP-2429 response_status_code ব্যবহার করার জন্য অ্যানালিটিক্স এপিআই ডেটা অ্যাক্সেস ত্রুটি ফেরত দেয়
AXAPP-2386 অ্যানালিটিক্স দৈনিক ইমেল রিপোর্টে খালি রিপোর্টের বিষয়বস্তু ঠিক করুন
AXAPP-2347 দৈনিক অ্যানালিটিক্স সারাংশ ইমেল পাচ্ছি না
এপিআইআরটি-৩১৪১ new ExecutionResult() কল করার সময় জাভা কলআউটগুলি ব্যর্থ হয়, কারণ কনস্ট্রাক্টরটিকে প্রাইভেট করা হয়েছে।
এপিআইআরটি-৩১৪০ HEAD এপিআই কলে সার্ভিসকলআউট পলিসি কাজ করছে না
এপিআইআরটি-৩১৩১ বাহ্যিক প্রমাণীকরণ প্রদানকারীর সাথে নগদীকরণ ব্যবহার করার সময় একটি এপিআই প্রক্সির জন্য ভুল 'createdBy' দেখানো হচ্ছে।
এপিআইআরটি-৩১২১ অর্গ রিসোর্স ফাইলে করা পরিবর্তনটি ১০০% কার্যকর নয়।
এপিআইআরটি-৩১১৭ এমপি ১০০% সিপিইউ ব্যবহারে পৌঁছে ট্র্যাফিক পরিষেবা দেওয়া বন্ধ করে দিয়েছে।
এপিআইআরটি-৩০১৬ ডিপ্লয়মেন্টে রাউটারের "কল টাইমড আউট" ত্রুটি
এপিআইআরটি-২৯৭৫ সার্টিফিকেট বান্ডেল আপলোড করতে ব্যর্থতা
এপিআইআরটি-২৯৫৫ FHIR-সম্মত Content-Type হেডার 'application/json+fhir'-এর জন্য JSON রেসপন্স ডেটার নির্দিষ্ট কিছু অ্যাট্রিবিউট মাস্ক করা সম্ভব হচ্ছে না।
এপিআইআরটি-২৯৪৬ OAuthV2-RefreshToken পলিসি অ্যাট্রিবিউটগুলো লুকাচ্ছে না, যদিও display false সেট করা আছে।
এপিআইআরটি-২৯০৮ ভার্চুয়ালহোস্টে TLS1.2 আপডেটের পর অভ্যন্তরীণ API কলের জন্য TLS1.2 প্রয়োগ করা আবশ্যক।
এপিআইআরটি-২৯০১ ক্যাশে থেকে ফেরত আসা Gzipped প্রতিক্রিয়াগুলি দ্বিগুণ সংকুচিত হয়
এপিআইআরটি-২৮৭৩ প্রোডাক্ট/ডেভেলপার/প্রক্সি মুছে ফেলার পর MP-রা VerifyAPIKey সম্পর্কিত NullPointerException থ্রো করছে।
এপিআইআরটি-২৮৭১ ট্রেসে দুইবার প্রদর্শিত IOIntensive পলিসিসমূহ
এপিআইআরটি-২৮২৫ অ্যাক্সেসটোকেন ত্রুটির প্রতিক্রিয়ায় ব্যাকরণগত ভুল
এপিআইআরটি-২৭৫০ নির্দিষ্ট সংস্থায় ট্র্যাফিক ব্যর্থতার হার বেশি
এপিআইআরটি-২৬৮৫ একটি অজানা ত্রুটি দেখা দেওয়ায় ট্র্যাফিক চলাচল করতে পারছে না।
এপিআইআরটি-২৬৪৭ ননপ্রোডাকশন/ডেভেলপমেন্ট ক্ষেত্রে "অন্তর্নিহিত ইনপুট স্ট্রিম শূন্য বাইট ফেরত দিয়েছে" ত্রুটি।
এপিআইআরটি-২৬৩০ ক্যাশে থেকে মান পড়ার চেষ্টা করার সময় মাঝে মাঝে সমস্যা দেখা দেয়।
এপিআইআরটি-২৬২০ কিছু ব্লকিং স্টেপের জন্য আলাদা থ্রেড পুল
এপিআইআরটি-২৬১০ রেসপন্স ক্যাশে পলিসির সাথে java.lang.ClassCastException
এপিআইআরটি-২৬০৮ রেসপন্স ক্যাশ পলিসিতে লাস্ট-মডিফায়েড হেডার পার্সিং ত্রুটি
এপিআইআরটি-২৬০৫ পলিসির মাধ্যমে 'organization' এবং 'environment' ভেরিয়েবল ওভাররাইট করার অনুমতি দেওয়া উচিত নয়।
এপিআইআরটি-২৫৬৬ OAuthV2 পলিসি ত্রুটিপূর্ণ WWW-Authenticate হেডার ফেরত দেয়
এপিআইআরটি-২৪৯১ ম্যানেজমেন্ট এবং এমপিএস-এর মধ্যে আরপিসি টাইমআউটের কারণে টার্গেটসার্ভার আপডেট ব্যর্থ হয়েছে।
এপিআইআরটি-২৩৮৬ একটি API প্রোডাক্টে খালি Allowed OAuth scopes সহ একটি খালি স্ট্রিং স্কোপ তৈরি করা হয়।
এপিআইআরটি-২৩৮৩ ত্রুটি ঘটলে XSL Transformation পলিসিগুলো কোনো ডেটা লগ করে বলে মনে হয় না।
এপিআইআরটি-২৩৬৪ ত্রুটির কারণে OAuth ফল্ট ফ্লো ভেরিয়েবলগুলো আপডেট হচ্ছে না
এপিআইআরটি-২২১৬ সার্ভার ইভেন্ট পাঠিয়েছে - প্রোডাকশনে ইভেন্ট স্ট্রিমে সমস্যা হচ্ছে
এপিআইআরটি-২০৭৯ তৈরি করা সেশনের জন্য টাইমআউট শেষ হওয়ার পরেও ডিবাগ cURL কলটি বন্ধ হচ্ছে না।
এপিআইআরটি-১৪৯৫ XML থ্রেট প্রোটেকশন fhir Content-Type ধরতে পারছে না।
এপিআইআরটি-৩৪৭ ইম্পোর্ট করার সময় XSL পলিসিটি সঠিকভাবে যাচাই করা হয় না (ডকুমেন্টেশন অনুযায়ী আউটপুট ভেরিয়েবলে ফলাফল অ্যাসাইন করে না)।