প্রাইভেট ক্লাউড 4.53.01-এর জন্য এজ-এ পরিবর্তন

পরিবর্তনের ওভারভিউ

এজ ফর প্রাইভেট ক্লাউড 4.53.01 একাধিক পরিবর্তন প্রবর্তন করে যা প্ল্যাটফর্মের নিরাপত্তা ভঙ্গি বাড়ায় এবং প্রয়োজনীয় সফ্টওয়্যার এবং লাইব্রেরিগুলির আপডেট সংস্করণগুলিকে অন্তর্ভুক্ত করে৷ এই পরিবর্তনগুলি নিম্নলিখিত নীতির প্রকারগুলিকে প্রভাবিত করে:

এই আপগ্রেডের ফলে ব্যাঘাত ঘটাতে পারে এমন আপনার ক্লাস্টারের প্রক্সি, শেয়ার্ড ফ্লো, বা অন্যান্য আর্টিফ্যাক্টের পরিবর্তন শনাক্ত করতে আপনি পরিবর্তন সনাক্তকরণ টুল ব্যবহার করতে পারেন।

পরিবর্তনের বিস্তারিত বিবরণ

এই বিভাগটি 4.53.01 সংস্করণে প্রবর্তিত পরিবর্তনগুলি বর্ণনা করে যা আপগ্রেডের সময় বা পরে আপনার কর্মপ্রবাহকে ব্যাহত করতে পারে। সম্ভাব্য সমস্যা এলাকা চিহ্নিত করার পদ্ধতি এবং প্রশমন বা সমাধানের পদ্ধতিগুলিও কভার করা হয়েছে।

OAS (OpenAPI স্পেসিফিকেশন) বৈধতা নীতি

প্রসঙ্গ

OAS যাচাইকরণ নীতি OpenAPI 3.0 স্পেসিফিকেশনে (JSON বা YAML) সংজ্ঞায়িত নিয়মের বিরুদ্ধে আগত অনুরোধ বা প্রতিক্রিয়া যাচাই করে। এজ ফর প্রাইভেট ক্লাউড 4.53.01 ওএএস (ওপেনএপিআই স্পেসিফিকেশন) নীতিতে বর্ধিতকরণ সরবরাহ করে, এপিআই প্রতিক্রিয়া সংস্থাগুলির কঠোর এবং আরও সঠিক বৈধতার উপর ফোকাস করে।

পরিবর্তন

প্রাইভেট ক্লাউড 4.53.01 এর জন্য এজ দুটি গুরুত্বপূর্ণ পরিবর্তনের সাথে পরিচয় করিয়ে দেয় কিভাবে OAS নীতি API প্রতিক্রিয়াগুলিকে যাচাই করে, আপনার OpenAPI স্পেসিফিকেশনের সাথে ঘনিষ্ঠ সারিবদ্ধতা নিশ্চিত করে:

  • দৃশ্যকল্প 1:
    • পূর্ববর্তী আচরণ: যদি আপনার OpenAPI স্পেসিফিকেশনের জন্য একটি প্রতিক্রিয়া সংস্থার প্রয়োজন হয় কিন্তু লক্ষ্য বা আপস্ট্রিম নীতি থেকে প্রকৃত প্রতিক্রিয়া একটি অন্তর্ভুক্ত না করে, তাহলে নীতিটি এটিকে একটি বৈধতা ত্রুটি হিসাবে চিহ্নিত করবে না।
    • বর্তমান আচরণ: নীতিটি এখন সঠিকভাবে একটি বৈধতা ত্রুটি ফিরিয়ে দেবে (উদাহরণ: defines a response schema but no response body found ) এই পরিস্থিতিতে, প্রত্যাশিত এবং প্রকৃত প্রতিক্রিয়ার মধ্যে একটি অমিল নির্দেশ করে৷
  • দৃশ্যকল্প 2:
    • পূর্ববর্তী আচরণ: যদি আপনার OpenAPI স্পেসিফিকেশন স্পষ্টভাবে বলে যে কোনও প্রতিক্রিয়া বডি প্রত্যাশিত ছিল না, কিন্তু লক্ষ্য বা আপস্ট্রিম নীতি থেকে প্রকৃত প্রতিক্রিয়া একটি বডি অন্তর্ভুক্ত করে, নীতিটি ব্যর্থ হবে না।
    • বর্তমান আচরণ: নীতিটি এখন একটি ব্যর্থতার পরিণতি ঘটাবে (উদাহরণ: No response body is expected but one was found ) এই পরিস্থিতিতে, প্রতিক্রিয়াগুলি নির্দিষ্ট স্কিমার সাথে কঠোরভাবে মেনে চলে তা নিশ্চিত করে৷

প্রশমন

পরিবর্তন সনাক্তকরণ টুল ব্যবহার করে বা ম্যানুয়াল পর্যালোচনার মাধ্যমে আপগ্রেড দ্বারা প্রভাবিত হতে পারে এমন কোনো প্রক্সি বা শেয়ার্ড ফ্লো চিহ্নিত করুন। নিম্নলিখিত শর্তগুলির মধ্যে যে কোনও একটি উপস্থিত রয়েছে এমন কোনও প্রক্সি সন্ধান করুন:

  • OAS যাচাইকরণ নীতিটি response সেট করা একটি Source ট্যাগ দিয়ে কনফিগার করা হয়েছে।
  • OAS যাচাইকরণ নীতি অন্য কোনো নীতি থেকে একটি প্রতিক্রিয়া যাচাই করে যা একটি প্রতিক্রিয়া তৈরি করে।

টুলটি ব্যবহার করলে, এটি নীচের বিন্যাসে আউটপুট তৈরি করবে:

সংগঠন পরিবেশ শিল্পকর্মের নাম আর্টিফ্যাক্ট টাইপ রিভিশন নীতির নাম নীতির ধরন প্রভাবের ধরন প্রভাব নির্দিষ্ট ক্ষেত্র প্রভাব নিশ্চিততা ডকুমেন্টেশন
org2 দেব proxy2 প্রক্সি 4 oas- বৈধতার প্রতিক্রিয়া OAS ভ্যালিডেশন oas_content_type_handling উত্স = কল আউট প্রতিক্রিয়া মাঝারি OAS বৈধকরণ নীতি
org1 পণ্য proxy3 শেয়ার্ডফ্লো 1 oas-বিশেষ-বৈধকরণ OAS ভ্যালিডেশন oas_content_type_handling উত্স = প্রতিক্রিয়া মাঝারি OAS বৈধকরণ নীতি

আউটপুট টেবিলের কলামগুলির বিশদ ব্যাখ্যার জন্য, টুল আউটপুট বিভাগটি দেখুন।

একবার একটি প্রক্সি বা শেয়ার্ড ফ্লো শনাক্ত হয়ে গেলে, নিশ্চিত করুন যে প্রতিক্রিয়া এবং আপনার OAS স্পেসিফিকেশন একটি রেসপন্স বডির উপস্থিতি বা অনুপস্থিতির বিষয়ে সারিবদ্ধভাবে রয়েছে। আপনি আপনার ট্রাফিক নিদর্শন পর্যালোচনা করতে আদর্শ Apigee ট্রেস ব্যবহার করতে পারেন। যদি লক্ষ্য বিরতিহীনভাবে একটি প্রতিক্রিয়া ফেরত দেয়, তাহলে প্রতিক্রিয়াটি OAS বৈধকরণ নীতিতে পাস করার আগে প্রতিক্রিয়া যাচাই করতে অন্যান্য নীতিগুলি ব্যবহার করুন৷

  • যদি আপনার OAS স্পেসিফিকেশন ফাইল একটি রেসপন্স বডি নির্ধারণ করে, তাহলে টার্গেট বা আপস্ট্রিম পলিসি থেকে রেসপন্স সবসময় একটি প্রদান করতে হবে।
  • যদি আপনার OAS স্পেসিফিকেশন ফাইল একটি প্রতিক্রিয়া বডি সংজ্ঞায়িত না করে, তাহলে লক্ষ্য বা আপস্ট্রিম নীতি অবশ্যই একটি পাঠাবে না।

আপনি প্রাইভেট ক্লাউড 4.53.01-এ আপগ্রেড করার চেষ্টা করার আগে প্রয়োজনীয় হিসাবে OAS যাচাইকরণ নীতি বা আপনার লক্ষ্য আচরণ আপডেট করুন। প্রোডাকশন ক্লাস্টার আপগ্রেডের সময় ব্যাঘাতের ঝুঁকি কমাতে প্রথমে আপনার অ-উৎপাদন পরিবেশে এই ধরনের চিহ্নিত ওয়ার্কফ্লোগুলিকে যাচাই করা উচিত।

JSON পাথ

প্রসঙ্গ

দ্য এজ ফর প্রাইভেট ক্লাউড 4.53.01 বিভিন্ন নীতিতে কীভাবে JSON পাথ এক্সপ্রেশন ব্যবহার করা হয় তাতে পরিবর্তন এনেছে। JSONPath এক্সপ্রেশনগুলি ExtractVariable পলিসি , RegularExpressionProtection পলিসি , JSON কন্টেন্ট পার্স করতে বা ভেরিয়েবলে মান সঞ্চয় করতে ডেটা মাস্কিং এর মত নীতিগুলিতে ব্যবহার করা যেতে পারে৷ JSONPath এক্সপ্রেশনগুলি প্রক্সি এক্সিকিউশনের সময় গতিশীলভাবে মানগুলির সাথে ভেরিয়েবলগুলি প্রতিস্থাপন করতে সাধারণ বার্তা টেমপ্লেটিং- এও ব্যবহার করা যেতে পারে। নতুন JSONPath এক্সপ্রেশন এবং ফর্ম্যাটগুলি সর্বশেষ JSON এক্সপ্রেশন মান অনুসরণ করে।

পরিবর্তন

JSONPath এক্সপ্রেশন ব্যবহার করে এমন নীতিগুলির জন্য বিদ্যমান API প্রক্সি/শেয়ার করা ফ্লো পর্যালোচনা করা গুরুত্বপূর্ণ। এর মধ্যে রয়েছে, তবে এক্সট্র্যাক্ট ভেরিয়েবল নীতি, রেগুলার এক্সপ্রেশন সুরক্ষা নীতি বা JSONPath ব্যবহার করে মেসেজ টেমপ্লেট সহ যেকোনো নীতির মধ্যেই সীমাবদ্ধ নয়।

নীচের json ইনপুট পরিবর্তনগুলি ব্যাখ্যা করার জন্য ব্যবহার করা হয়:

{
  "store": {
    "book": [
      {"category": "reference", "author": "Nigel Rees", "price": 8.95},
      {"category": "fiction", "author": "Evelyn Waugh", "price": 12.99},
      {"category": "fiction", "author": "Herman Melville", "price": 8.99}
    ],
    "bicycle": {
      "color": "red",
      "book": [
        {"author": "Abc"}
      ]
    }
  }
}
  1. JSONPath ওয়াইল্ডকার্ড [*] অবজেক্ট মানের জন্য আচরণ পরিবর্তন

    JSON অবজেক্টের সমস্ত তাৎক্ষণিক মান অ্যাক্সেস করতে ব্যবহার করার সময় [*] ওয়াইল্ডকার্ডের আচরণ পরিবর্তন করা হয়েছে। পূর্বে, $.object[*] একটি একক JSON অবজেক্টের মধ্যে মোড়ানো তাৎক্ষণিক মানগুলি ফিরিয়ে দেবে। আপডেট করা লাইব্রেরিগুলির সাথে, আউটপুট এখন এই মান ধারণকারী একটি অ্যারে।

    উদাহরণস্বরূপ, $.store[*] :

    পূর্ববর্তী আচরণ:
    {
      "bicycle": {
        "color": "red",
        "book": [{"author": "Abc"}]
      },
      "book": [
        {"price": 8.95, "category": "reference", "author": "Nigel Rees"},
        {"price": 12.99, "category": "fiction", "author": "Evelyn Waugh"},
        {"price": 8.99, "category": "fiction", "author": "Herman Melville"}
      ]
    }
    
    বর্তমান আচরণ:
    [
      [
        {"category": "reference", "author": "Nigel Rees", "price": 8.95},
        {"category": "fiction", "author": "Evelyn Waugh", "price": 12.99},
        {"category": "fiction", "author": "Herman Melville", "price": 8.99}
      ],
      {
        "color": "red",
        "book": [{"author": "Abc"}]
      }
    ]
    
    কর্ম:

    পূর্বে পুনরুদ্ধার করা আইটেমগুলিকে সরাসরি লক্ষ্য করতে শুধুমাত্র মূল বস্তু (উদাহরণ: $.store ) লক্ষ্য করতে JSONPath এক্সপ্রেশন পরিবর্তন করুন।

  2. পাথের মধ্যে JSONPath ট্রেলিং ডট (.) ত্রুটি ঘটায়

    JSONPath এক্সপ্রেশনগুলির জন্য কঠোর বৈধতা রয়েছে। পূর্বে, একটি অবৈধ ট্রেলিং ডট (উদাহরণ: $.path.to.element. ) দিয়ে শেষ হওয়া পাথগুলি নীরবে উপেক্ষা করা হবে, এবং যদি পূর্ববর্তী বৈধ পাথ সেগমেন্ট মিলে যায় তাহলে ক্যোয়ারীটি এখনও ফলাফল প্রদান করে। নতুন সংস্করণের সাথে, এই ধরনের বিকৃত পথগুলি এখন সঠিকভাবে অবৈধ হিসাবে চিহ্নিত করা হয়েছে এবং এর ফলে একটি ত্রুটি দেখা দেবে৷

    উদাহরণস্বরূপ, $.store.book.

    পূর্ববর্তী আচরণ:
    [
      {"price":8.95,"category":"reference","author":"Nigel Rees"},
      {"price":12.99,"category":"fiction","author":"Evelyn Waugh"},
      {"price":8.99,"category":"fiction","author":"Herman Melville"}
    ]
    
    বর্তমান আচরণ:
    ERROR: com.jayway.jsonpath.InvalidPathException - Path must not end with a '.' or '..'
    

    যেকোন বিদ্যমান নীতি যা একটি অনিচ্ছাকৃত ট্রেলিং ডট সহ JSONPath এক্সপ্রেশন ব্যবহার করে এখন একটি InvalidPathException এর সাথে ব্যর্থ হবে।

    কর্ম:

    যেকোন JSONPath এক্সপ্রেশন থেকে ট্রেলিং ডটটি সরান যা একটি দিয়ে শেষ হয়। উদাহরণস্বরূপ, $.store.book. $.store.book থেকে

  3. JSONPath রিকার্সিভ ডিসেন্ট (..) আউটপুট গঠন পরিবর্তন

    (..) (পুনরাবৃত্ত ডিসেন্ট) অপারেটর ব্যবহার করে একটি নামযুক্ত উপাদানের সমস্ত ঘটনা সনাক্ত করার জন্য ফলাফলগুলি কীভাবে ফেরত দেওয়া হয় তার পরিবর্তন রয়েছে৷ পূর্বে, সমস্ত পাওয়া উপাদান একটি একক তালিকায় সমতল করা হয়েছিল। আপডেট করা লাইব্রেরিগুলি এখন তালিকার একটি তালিকা ফেরত দেয়, মূল গ্রুপিং কাঠামো সংরক্ষণ করে যেখানে উপাদানগুলি পাওয়া গিয়েছিল, একটি একক সমতল তালিকার পরিবর্তে।

    উদাহরণস্বরূপ, $..book

    পূর্ববর্তী আচরণ:
    [
      {"price":8.95,"category":"reference","author":"Nigel Rees"},
      {"price":12.99,"category":"fiction","author":"Evelyn Waugh"},
      {"price":8.99,"category":"fiction","author":"Herman Melville"},
      {"author":"Abc"}
    ]
    
    বর্তমান আচরণ:
    [
      [
        {"category":"reference","author":"Nigel Rees","price":8.95},
        {"category":"fiction","author":"Evelyn Waugh","price":12.99},
        {"category":"fiction","author":"Herman Melville","price":8.99}
      ],
      [
        {"author":"Abc"}
      ]
    ]
    
    কর্ম:

    নতুন নেস্টেড অ্যারে কাঠামোর জন্য অ্যাকাউন্টে আপনার ডাউনস্ট্রিম প্রসেসিং লজিক আপডেট করুন। আপনাকে সম্ভবত বাইরের JSONArray এর মাধ্যমে পুনরাবৃত্তি করতে হবে এবং তারপর পৃথক উপাদানগুলি অ্যাক্সেস করতে প্রতিটি ভিতরের JSONArray এর মাধ্যমে পুনরাবৃত্তি করতে হবে।

  4. মাল্টি-আইটেম নির্বাচন বা ফিল্টারের পরে JSONPath ইন্ডেক্সিং খালি অ্যারে প্রদান করে

    আচরণে একটি পরিবর্তন হয় যখন একটি সূচক (উদাহরণ: [0] ) একটি মাল্টি-আইটেম নির্বাচক (যেমন [*] ) বা একটি ফিল্টার ( [?(condition)] ) এর পরপরই প্রয়োগ করা হয়। পূর্বে, এই ধরনের অভিব্যক্তিগুলি সম্মিলিত ফলাফল থেকে নির্দিষ্ট সূচকে আইটেমটি নির্বাচন করার চেষ্টা করবে। নতুন সংস্করণের সাথে, এই অভিব্যক্তিগুলি এখন একটি খালি অ্যারে ( [] ) ফিরিয়ে দেবে।

    উদাহরণস্বরূপ, $.store.book[*][0]

    পূর্ববর্তী আচরণ:
    {"category": "reference", "price": 8.95, "author": "Nigel Rees"}
    
    বর্তমান আচরণ:
    []
    
    কর্ম:

    যদি ফিল্টার করার প্রয়োজন হয় এবং তারপর ফিল্টার করা সেট থেকে একটি নির্দিষ্ট আইটেম পেতে, JSONPath দ্বারা প্রত্যাবর্তিত ফিল্টার করা অ্যারেটি প্রক্রিয়া করুন উদাহরণস্বরূপ, $..book[?(@.category == 'fiction')] এবং তারপর পূর্ববর্তী ফলাফল থেকে [0] নিন।

  5. JSONPath নেতিবাচক অ্যারে স্লাইসিং আউটপুট পরিবর্তন

    নতুন সংস্করণটি নেতিবাচক অ্যারে স্লাইসিংয়ের আচরণ পরিবর্তন করেছে (উদাহরণ: [-2:], [-1:] )। পূর্বে, একটি অ্যারেতে একটি নেতিবাচক স্লাইস প্রয়োগ করার সময় (অ্যারের শেষ থেকে উপাদানগুলি নির্দেশ করে), পুরানো সংস্করণটি সেই স্লাইস থেকে শুধুমাত্র একটি আইটেম ভুলভাবে ফিরিয়ে দেবে। নতুন সংস্করণটি এখন সঠিকভাবে একটি তালিকা (অ্যারে) প্রদান করে যাতে নির্দিষ্ট নেতিবাচক পরিসরের মধ্যে পড়ে এমন সমস্ত উপাদান রয়েছে।

    যেমন $.store.book[-2:]

    পূর্ববর্তী আচরণ:
    {"price":12.99,"category":"fiction","author":"Evelyn Waugh"}
    
    বর্তমান আচরণ:
    [
      {"category":"fiction","author":"Evelyn Waugh","price":12.99},
      {"category":"fiction","author":"Herman Melville","price":8.99}
    ]
    
    কর্ম:

    ডাউনস্ট্রিম প্রসেসিং লজিকটি এখন কাঙ্ক্ষিত আউটপুট পেতে রিটার্ন করা JSON অ্যারের মাধ্যমে পুনরাবৃত্তি করতে আপডেট করা আবশ্যক।

  6. JSONPath আরও কঠোর পূর্ববর্তী বিন্দু

    রুট থেকে সরাসরি অ্যাক্সেস করা উপাদানগুলির জন্য বাক্য গঠনের কঠোর প্রয়োগ রয়েছে। যখন কোনো পূর্ববর্তী বিন্দু (উদাহরণ: $propertyelement ) ছাড়াই মূল থেকে সরাসরি উপাদানগুলি অ্যাক্সেস করা হয়, তখন এই ধরনের সিনট্যাক্সকে এখন একটি ত্রুটি হিসাবে বিবেচনা করা হয় এবং প্রক্সি স্থাপনা প্রতিরোধ করবে।

    উদাহরণস্বরূপ $store ,

    {
      "bicycle": {
        "color": "red",
        "book": [{"author": "Abc"}]
      },
      "book": [
        {"price": 8.95, "category": "reference", "author": "Nigel Rees"},
        {"price": 12.99, "category": "fiction", "author": "Evelyn Waugh"},
        {"price": 8.99, "category": "fiction", "author": "Herman Melville"}
      ]
    }
    

    বর্তমান আচরণ:

    Proxy will fail to deploy.

    কর্ম:

    ডট অন্তর্ভুক্ত করতে আপনার JSONPath পরিবর্তন করুন: $.propertyName (উদাহরণ: $.store )। এটি সঠিকভাবে লক্ষ্যবস্তু করবে এবং মানটি পুনরুদ্ধার করবে।

  7. ডায়নামিক JSONPath এক্সপ্রেশন

    নীতিগুলিতে গভীর মনোযোগ দিন যেখানে JSONPath এক্সপ্রেশন নিজেই একটি ভেরিয়েবল দ্বারা সরবরাহ করা হয় (উদাহরণ: {myJsonPathVariable} বা {dynamicPath} ) এই ভেরিয়েবলগুলির মান উপরে বর্ণিত সম্ভাব্য আচরণগত পরিবর্তনগুলির বিরুদ্ধেও পরীক্ষা করা আবশ্যক।

প্রশমন

পরিবর্তন শনাক্তকরণ টুল ব্যবহার করে আপগ্রেড দ্বারা প্রভাবিত হতে পারে এমন কোনো প্রক্সি বা শেয়ার্ড ফ্লো শনাক্ত করুন অথবা বর্ণিত প্যাটার্নগুলি দেখতে আপনার API প্রক্সিগুলি ম্যানুয়ালি পর্যালোচনা করুন৷ আপনি যদি টুলটি ব্যবহার করেন, তাহলে আউটপুট প্রভাবিত প্রক্সি বা শেয়ার্ড ফ্লো, প্রাসঙ্গিক নীতি এবং যেকোনো সমস্যাযুক্ত JSON পাথ চিহ্নিত করবে, যেমনটি নিচের উদাহরণে আউটপুটে দেখানো হয়েছে:

সংগঠন পরিবেশ শিল্পকর্মের নাম আর্টিফ্যাক্ট টাইপ রিভিশন নীতির নাম নীতির ধরন প্রভাবের ধরন প্রভাব নির্দিষ্ট ক্ষেত্র প্রভাব নিশ্চিততা ডকুমেন্টেশন
org1 দেব proxy1 প্রক্সি 4 EV-ExtractRequestParams এক্সট্রাক্ট ভেরিয়েবল JSONPath ওয়াইল্ডকার্ড [*] অবজেক্ট মানের জন্য আচরণ পরিবর্তন $.store[*] উচ্চ JSONPath ওয়াইল্ডকার্ড [*] অবজেক্ট মানের জন্য আচরণ পরিবর্তন
org2 পণ্য proxy2 শেয়ার্ডফ্লো 1 ইভি-এক্সট্র্যাক্ট রেসপন্স প্যারামস এক্সট্রাক্ট ভেরিয়েবল JSONPath Trailing Dot (.) পাথের মধ্যে এখন ত্রুটি সৃষ্টি করে $.store.book. উচ্চ পাথের মধ্যে JSONPath ট্রেলিং ডট (.) ত্রুটি ঘটায়
org3 দেব proxy3 প্রক্সি 3 SC-FetchUserProfile সার্ভিস কলআউট JSONPath রিকার্সিভ ডিসেন্ট (..) আউটপুট স্ট্রাকচার পরিবর্তন $..বই উচ্চ JSONPath রিকার্সিভ ডিসেন্ট (..) আউটপুট গঠন পরিবর্তন
org4 পণ্য proxy4 শেয়ার্ডফ্লো 2 RF-InvalidAuthToken রাইসফল্ট মাল্টি-আইটেম নির্বাচন বা ফিল্টার করার পরে JSONPath ইনডেক্সিং খালি অ্যারে ফেরত দেয় $.store.book[*][0] উচ্চ মাল্টি-আইটেম নির্বাচন বা ফিল্টারের পরে JSONPath ইন্ডেক্সিং খালি অ্যারে প্রদান করে
org5 পরীক্ষা proxy5 প্রক্সি 6 SC-প্রোফাইল বিবরণ সার্ভিস কলআউট JSONPath নেগেটিভ অ্যারে স্লাইসিং আউটপুট পরিবর্তন $.store.book[-2:] উচ্চ JSONPath নেতিবাচক অ্যারে স্লাইসিং আউটপুট পরিবর্তন
org6 পণ্য proxy6 প্রক্সি 2 ML-LogRequest Details মেসেজলগিং JSONPath আরও কঠোর পূর্ববর্তী ডট $স্টোর উচ্চ JSONPath আরও কঠোর পূর্ববর্তী বিন্দু
org7 পরীক্ষা proxy7 প্রক্সি 5 RF-InvalidToken Details রাইসফল্ট ডায়নামিক JSONPath এক্সপ্রেশন myJsonPathVariable মাঝারি ডায়নামিক JSONPath এক্সপ্রেশন

উপরের আউটপুট টেবিলের কলামগুলির বিস্তারিত ব্যাখ্যার জন্য, টুল আউটপুট বিভাগটি বুঝতে দেখুন।

প্রশমিত করার জন্য, একটি ব্যাপক কৌশল প্রয়োজন। এই প্রক্রিয়ার মধ্যে উপযুক্ত আপডেট পাথের বিষয়ে সিদ্ধান্ত নেওয়া এবং সনাক্ত করা JSONPath এক্সপ্রেশনগুলির জন্য প্রয়োজনীয় ফিক্স প্রয়োগ করা জড়িত।

আপগ্রেড পাথ পদ্ধতি বেছে নিন যা আপনার জন্য সবচেয়ে ভালো কাজ করে:

  • জিরো ডাউনটাইম মাইগ্রেশন

    এই কৌশলটিতে এক বা একাধিক নতুন পরিবেশ সংগ্রহ করা জড়িত যাতে আপনি এটিতে পৃথক বার্তা প্রসেসর নোড সংযুক্ত করতে পারেন। এই ধরনের বার্তা প্রসেসর নোড 4.53.01 ইনস্টল করতে সেট করা যেতে পারে এবং আধুনিক JSONPath এক্সপ্রেশন সহ প্রক্সি থাকতে পারে। এগুলি আপগ্রেডের সময় ব্যবহার করা যেতে পারে এবং আপগ্রেড সম্পূর্ণ হওয়ার পরে ডিকমিশন করা যেতে পারে। এই কৌশলটি নিরবচ্ছিন্ন কিন্তু একটি মসৃণ আপগ্রেড সমর্থন করার জন্য অস্থায়ীভাবে অতিরিক্ত বার্তা-প্রসেসর নোড সংগ্রহ করা জড়িত। নিচে বিস্তারিত:

    • একটি নতুন পরিবেশ তৈরি করুন এবং এই নতুন পরিবেশে সংস্করণ 4.53.01-এর নতুন বার্তা-প্রসেসর নোড যোগ করুন
    • নতুন পরিবেশে প্রভাবিত প্রক্সিগুলির জন্য প্রক্সি বান্ডেল আপলোড করুন এবং প্রতিকার বিভাগে ব্যাখ্যা করা প্রয়োজনীয় সংশোধনগুলি প্রয়োগ করুন এবং আপডেট করা প্রক্সি বান্ডেলটিকে নতুন পরিবেশে স্থাপন করুন৷
    • ট্র্যাফিককে নতুন পরিবেশে পুনঃনির্দেশিত করুন এবং পুরানো পরিবেশ থেকে প্রভাবিত প্রক্সিগুলিকে আন-ডিপ্লয় করুন।
    • মূল বার্তা প্রসেসর নোডগুলি 4.53.01 এ আপগ্রেড করুন। মূল পরিবেশে JSONPath-এর জন্য সংশোধন করা আছে এমন প্রক্সি স্থাপন করুন।
    • পুরানো পরিবেশে ট্র্যাফিক ফিরে যান, যেখানে এখন 4.53.01-এ মেসেজ প্রসেসর রয়েছে এবং নতুন jsonpath এক্সপ্রেশনের জন্য আধুনিকীকৃত প্রক্সি রয়েছে।
    • নতুন পরিবেশ এবং সংশ্লিষ্ট নোডগুলি মুছুন এবং ডিকমিশন করুন।
  • ডাউনটাইম এবং আপগ্রেড

    এই কৌশলটিতে ত্রুটিপূর্ণ JSON পাথ এক্সপ্রেশন ব্যবহার করে API প্রক্সিগুলির জন্য ডাউনটাইম সংগ্রহ করা জড়িত। এটি অতিরিক্ত বার্তা প্রসেসর নোডগুলি সংগ্রহ করার প্রয়োজন করে না তবে প্রভাবিত প্রক্সিগুলির জন্য API ট্র্যাফিকের বিঘ্ন ঘটায়।

    • প্রভাবিত নীতিগুলির সাথে প্রভাবিত প্রক্সিগুলি সনাক্ত করুন এবং সমস্ত প্রভাবিত প্রক্সিগুলির জন্য একটি নতুন সংশোধন তৈরি করুন৷
    • প্রক্সির একটি নতুন সংশোধনে প্রতিকার বিভাগে ব্যাখ্যা করা সংশোধনগুলি বাস্তবায়ন করে প্রয়োজনীয় সংশোধনগুলি প্রয়োগ করুন৷ এটি এখনও স্থাপন করবেন না।
    • প্রভাব সহ প্রক্সি/প্রক্সিগুলির জন্য ডাউনটাইম সংগ্রহ করুন।
    • ব্যক্তিগত ক্লাউড সংস্করণ 4.53.01-এর জন্য সমস্ত বার্তা প্রসেসর এজ-এ আপগ্রেড করুন। মনে রাখবেন যে বিদ্যমান প্রক্সিগুলি নতুন আপগ্রেড করা বার্তা প্রসেসরগুলিতে ব্যর্থ হতে পারে৷
    • সমস্ত বার্তা প্রসেসর প্রাইভেট ক্লাউড সংস্করণ 4.53.01-এর জন্য এজ-এ আপগ্রেড হয়ে গেলে, স্থির JSONPath এক্সপ্রেশন সহ নতুন তৈরি প্রক্সি রিভিশন স্থাপন করুন।
    • এই ধরনের প্রক্সিগুলিতে ট্রাফিক পুনরায় শুরু করুন।
  • আপগ্রেড করার আগে প্রক্সি পুনরায় ডিজাইন করুন

    প্রাইভেট ক্লাউড 4.53.01-এর জন্য এজ-এ আপগ্রেড করার আগে আপনি নিজেই প্রক্সিটিকে পুনরায় ডিজাইন করতে পারেন। নির্দিষ্ট JSON পাথ এক্সপ্রেশনের উপর নির্ভর করার পরিবর্তে, আপনি একটি ভিন্ন পদ্ধতি ব্যবহার করে একই ফলাফল পেতে পারেন।

    উদাহরণ স্বরূপ, আপনি যদি JSON পাথের সাথে এক্সট্র্যাক্ট ভেরিয়েবল পলিসি ব্যবহার করেন, তাহলে আপনি জাভাস্ক্রিপ্ট পলিসি দিয়ে পলিসিটি প্রতিস্থাপন করতে পারেন যা নতুন সংস্করণে আপগ্রেড করার আগে একই ধরনের ডেটা বের করে। আপগ্রেড সম্পূর্ণ হওয়ার পরে, আপনি নতুন ফর্ম্যাটগুলির সাথে JSON পাথগুলি ব্যবহার করতে আপনার প্রক্সিটি আবার পরিবর্তন করতে পারেন৷

JavaCallout পরিবর্তন

প্রসঙ্গ

প্রাইভেট ক্লাউড 4.53.00 এর জন্য এজ এবং এর আগে ডিপ্রেকেটেড ( $APIGEE_ROOT/edge-message-processor/lib/deprecated ) নামে একটি ডিরেক্টরি ধারণ করত যেটিতে একগুচ্ছ JAR লাইব্রেরি রয়েছে। এই লাইব্রেরিগুলি JavaCallout নীতিতে জাভা কোডে ব্যবহারের জন্য উপলব্ধ ছিল এবং আপনার কাস্টম জাভা কোড প্রত্যক্ষ বা পরোক্ষভাবে ব্যবহার করতে পারত।

পরিবর্তন

প্রাইভেট ক্লাউড সংস্করণ 4.53.01-এর জন্য এজ-এ অপসারিত ডিরেক্টরিটি এখন সরানো হয়েছে। যদি আপনার জাভা কোড এই ধরনের লাইব্রেরির উপর নির্ভর করে, বার্তা প্রসেসরগুলি 4.53.01 সংস্করণে আপগ্রেড করা হলে এই ধরনের জাভা কলআউট ব্যবহার করে প্রক্সিগুলি ব্যর্থ হবে৷ এই ধরনের ব্যর্থতা এড়াতে, বার্তা-প্রসেসরগুলিকে সংস্করণ 4.53.01-এ আপগ্রেড করার আগে নীচের প্রশমনের পদক্ষেপগুলি অনুসরণ করুন।

প্রশমন

  1. পরিবর্তন সনাক্তকরণ টুল ব্যবহার করে বা ম্যানুয়ালি আপনার জাভা কলআউট নীতি এবং সংশ্লিষ্ট জার পর্যালোচনা করুন। আপনার বর্তমান মেসেজ প্রসেসরের "অবঞ্চিত" ডিরেক্টরিতে পলিসির রেফারেন্স লাইব্রেরিগুলির কোনওটি উপস্থিত আছে কিনা তা পরীক্ষা করে দেখুন৷

    আপনি যদি উপরের সনাক্তকরণের জন্য Apigee দ্বারা প্রদত্ত টুল ব্যবহার করেন, তাহলে টুলটি নিম্নলিখিত টেবিলে দেখানো হিসাবে একটি প্রতিবেদন তৈরি করবে। বিশেষত, এটি এমন নীতিগুলিকে লক্ষ্য করে যেগুলি $APIGEE_ROOT/edge-message-processor/lib/deprecated ডিরেক্টরিতে পাওয়া JARগুলিকে প্রাইভেট ক্লাউড সংস্করণগুলির জন্য পুরানো এজের জন্য উল্লেখ করে৷

    টুলটি নিচের ফরম্যাটে রিপোর্ট তৈরি করবে:

    সংগঠন পরিবেশ শিল্পকর্মের নাম আর্টিফ্যাক্ট টাইপ রিভিশন নীতির নাম নীতির ধরন প্রভাবের ধরন প্রভাব নির্দিষ্ট ক্ষেত্র প্রভাব নিশ্চিততা ডকুমেন্টেশন
    org1 কোনোটিই নয় কোনোটিই নয় org-লেভেল-জার কোনোটিই নয় কোনোটিই নয় java-কলআউট simple-javacallout-o1-jar-1.jar জন্য অবচিত লাইব্রেরি সনাক্ত করা হয়েছে [' commons-io-2.5.jar থেকে org.apache.commons.io.FileUtils ক্লাসের ব্যবহার সনাক্ত করা হয়েছে, ' commons-io-2.5.jar থেকে org.apache.commons.io.input.XmlStreamReaderException ক্লাসের ব্যবহার সনাক্ত করা হয়েছে'] উচ্চ JavaCallout পরিবর্তন
    org3 env3 কোনোটিই নয় env-স্তরের-জার কোনোটিই নয় কোনোটিই নয় java-কলআউট fat-javacallout-e3-jar-1.jar জন্য অবচিত লাইব্রেরি সনাক্ত করা হয়েছে [' httpclient-4.5.2.jar থেকে org.apache.http.impl.auth.NTLMSchemeFactory ক্লাসের ব্যবহার সনাক্ত করা হয়েছে'] উচ্চ JavaCallout পরিবর্তন
    org1 env1 p1 প্রক্সি-লেভেল-জার 1 কোনোটিই নয় java-কলআউট simple-javacallout-p1-jar-1.jar জন্য অবচিত লাইব্রেরি সনাক্ত করা হয়েছে [' commons-lang3-3.4.jar থেকে org.apache.commons.lang3.builder.ToStringBuilder ক্লাসের ব্যবহার সনাক্ত করা হয়েছে', ' commons-lang3-3.4.jar থেকে org.apache.commons.lang3.Validate ক্লাসের ব্যবহার সনাক্ত করা হয়েছে'] উচ্চ JavaCallout পরিবর্তন

    উপরের আউটপুট টেবিলের কলামগুলির বিশদ ব্যাখ্যার জন্য, টুল আউটপুট বিভাগটি দেখুন।

  2. একবার আপনি এই ধরনের অবহেলিত লাইব্রেরিগুলি চিহ্নিত করার পরে, আপনি সমস্যাটি কমানোর জন্য নীচের পদ্ধতিগুলির মধ্যে একটি অনুসরণ করতে পারেন৷
    • রিসোর্স প্লেসমেন্ট (জাভা-কলআউট জার দ্বারা রেফারেন্স করা অবহেলিত ডিরেক্টরি থেকে আপনার কাছে অল্প সংখ্যক জার/লাইব্রেরি থাকলে প্রস্তাবিত)
      • পছন্দসই স্তরে একটি সংস্থান হিসাবে চিহ্নিত অপ্রচলিত জারগুলি আপলোড করুন: API প্রক্সি সংশোধন, পরিবেশ বা সংস্থা৷
      • যথারীতি Apigee সফ্টওয়্যার আপগ্রেডের সাথে এগিয়ে যান।
    • ম্যানুয়াল প্লেসমেন্ট (জাভা-কলআউট জার দ্বারা রেফারেন্স করা হয় এমন প্রচুর জার/লাইব্রেরি আপনার কাছে থাকলে প্রস্তাবিত)
      • প্রতিটি বার্তা প্রসেসর নোডে, $APIGEE_ROOT/data/edge-message-processor/ পথে external-lib নামে একটি নতুন ডিরেক্টরি তৈরি করুন।
      • এই বহিরাগত-লিব ডিরেক্টরিতে চিহ্নিত JAR গুলি অনুলিপি করুন অবহেলিত ডিরেক্টরি থেকে: cp $APIGEE_ROOT/edge-message-processor/lib/deprecated/some.jar $APIGEE_ROOT/data/edge-message-processor/external-lib/some.jar
      • নিশ্চিত করুন যে ডিরেক্টরি এবং অন্তর্নিহিত জারগুলি Apigee ব্যবহারকারী দ্বারা পাঠযোগ্য: chown -R apigee:apigee $APIGEE_ROOT/data/edge-message-processor/external-lib
      • যথারীতি Apigee সফ্টওয়্যার আপগ্রেডের সাথে এগিয়ে যান।

OpenLDAP পরিবর্তন

প্রসঙ্গ

ওপেনএলডিএপি প্রমাণীকরণ এবং অনুমোদন উভয়ের জন্য এজ প্রাইভেট ক্লাউডে ব্যবহার করা যেতে পারে। এজ ফর প্রাইভেট ক্লাউড 4.53.01-এ, Apigee দ্বারা পাঠানো OpenLDAP সফ্টওয়্যারটি সংস্করণ 2.4 থেকে 2.6 তে আপগ্রেড করা হয়েছে।

পরিবর্তন

OpenLDAP 2.6-এ, আপেক্ষিক বিশিষ্ট নাম (RDN) প্রায় 241 বাইট/অক্ষরের মধ্যে সীমাবদ্ধ। এই সীমাবদ্ধতা একটি হার্ড ক্যাপ বলবৎ এবং সংশোধন করা যাবে না.

প্রভাব
  • অত্যধিক বড় RDN সহ এন্ট্রিগুলির জন্য প্রতিলিপি বা আমদানি ব্যর্থতা ঘটে।
  • সংস্থা, পরিবেশ, কাস্টম ভূমিকা, অনুমতি ইত্যাদির মতো একটি সত্তা তৈরি করার চেষ্টা করলে ত্রুটির বার্তা আসতে পারে: "message": "[LDAP: error code 80 - Other]"
  • Apigee-এর LDAP-এ 241 বাইটের বেশি যেকোন DN প্রভাবিত হয়। এই ধরনের DNগুলি Apigee OpenLDAP সফ্টওয়্যারের সফল আপগ্রেড প্রতিরোধ করবে এবং আপগ্রেডের সাথে এগিয়ে যাওয়ার আগে আপনাকে এই ধরনের আইটেমগুলির জন্য প্রশমন কৌশলগুলি অনুসরণ করতে হবে।

সাধারণত, Apigee-এর LDAP-এ, দীর্ঘ DNগুলি অনুমতির সাথে সম্পর্কিত কারণ সেগুলি একাধিক সত্তাকে একত্রিত করে তৈরি করা হয়। এই ধরনের অনুমতি এন্ট্রি বিশেষ করে আপগ্রেড সমস্যা প্রবণ হয়.

যেমন,

dn: cn=@@@environments@@@*@@@applications@@@*@@@revisions@@@*@@@debugsessions,ou=resources,cn=businessuser,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com

সাধারণত, আপনার দৈর্ঘ্যের সংগঠন, পরিবেশ এবং ভূমিকার নাম থাকবে যাতে LDAP-এ RDN 241 বাইটের থেকে ছোট হয়।

প্রশমন

4.53.01 এ আপগ্রেড করার আগে:

নিম্নলিখিত পদক্ষেপগুলি আপনার বিদ্যমান LDAP 2.4 ক্লাস্টারে দীর্ঘ RDN-এর উপস্থিতি যাচাই করতে সাহায্য করবে।

#1 - LDAP ডেটা বের করুন

বিশিষ্ট নাম (dn) খুঁজে পেতে ldapsearch কমান্ড ব্যবহার করুন এবং একটি ফাইলে আউটপুট পুনঃনির্দেশ করুন:

ldapsearch -o ldif-wrap=no -b "dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w LDAP_PASSWORD dn > /tmp/DN.ldif

উপরের DN.ldif ফাইলটিতে LDAP এন্ট্রি রয়েছে তা নিশ্চিত করুন৷

#2 - দীর্ঘ RDN চিহ্নিত করুন

পরিবর্তন সনাক্তকরণ টুলটি 241 বাইট/অক্ষরের বেশি LDAP RDN সনাক্ত করতে একটি জেনারেট করা LDIF ফাইল ব্যবহার করে।

টুলটি নিম্নলিখিত বিন্যাসে রিপোর্ট তৈরি করবে:

সংগঠন পরিবেশ শিল্পকর্মের নাম আর্টিফ্যাক্ট টাইপ রিভিশন নীতির নাম নীতির ধরন প্রভাবের ধরন প্রভাব নির্দিষ্ট ক্ষেত্র প্রভাব নিশ্চিততা ডকুমেন্টেশন
কোনোটিই নয় কোনোটিই নয় cn= really-long-name ,ou=userroles,o=edge-platform,ou=organizations,dc=apigee,dc=com ldif ফাইল কোনোটিই নয় কোনোটিই নয় কোনোটিই নয় Ldap RDN 241 অক্ষর অতিক্রম করেছে৷ cn = really-long-name উচ্চ OpenLDAP পরিবর্তন

উপরের আউটপুট টেবিলের কলামগুলির একটি বিশদ ব্যাখ্যার জন্য, টুল আউটপুট বিভাগটি দেখুন।

যদি উপরের কমান্ডটি কোন আউটপুট তৈরি না করে, তাহলে বিদ্যমান LDAP সেটআপে কোন RDN 241 বাইট/অক্ষরের বেশি হবে না। আপনি যথারীতি আপগ্রেডের সাথে এগিয়ে যেতে নিরাপদ।

যদি উপরের কমান্ডটি একটি আউটপুট তৈরি করে, এটি 241 বাইট/অক্ষরের বেশি RDN-এর উপস্থিতি নির্দেশ করে। এই ধরনের আইটেমগুলির জন্য, প্রাইভেট ক্লাউড 4.53.01 আপগ্রেডের জন্য এজ নিয়ে এগিয়ে যাওয়ার আগে ধাপ #3 এ বর্ণিত প্রশমনের পদক্ষেপগুলি অনুসরণ করুন।

#3 - দীর্ঘ RDN গুলি পরিচালনা করুন

যদি ধাপ #2 থেকে আউটপুট পাওয়া যায়, তাহলে এটি 241 বাইট/অক্ষরের বেশি RDN-এর উপস্থিতি নির্দেশ করে এবং নিচের প্রশমনের পদক্ষেপগুলি অনুসরণ করুন:

241 বাইটের বেশি LDAP এন্ট্রি পর্যালোচনা করুন।

  • যদি এটি কাস্টম ভূমিকার নাম, অ্যাপ, এপিআই পণ্য বা অন্যান্য সত্তা যা প্রাথমিক ফ্যাক্টর যার RDN দীর্ঘ হয়, তাহলে একটি সংক্ষিপ্ত নাম সহ একটি বিকল্প সত্তা ব্যবহার করতে স্থানান্তর করুন৷
  • যদি এটি প্রতিষ্ঠানের নাম বা পরিবেশের নাম হয় যা দীর্ঘ RDN-এর প্রাথমিক অবদানকারী হয়, তাহলে আপনাকে একটি ছোট নাম দিয়ে একটি ভিন্ন সংস্থা বা পরিবেশে স্থানান্তর করতে হবে।

উপরের ধাপগুলো পুনরাবৃত্তি করতে থাকুন যতক্ষণ না আপনার LDAP-এর 241 বাইটের বেশি আরডিএন না থাকে। একবার আপনি এই অবস্থায় পৌঁছে গেলে, প্রাইভেট ক্লাউড সংস্করণ আপগ্রেডের সাথে যথারীতি এগিয়ে যান।

ক্রিপ্টোগ্রাফি প্রদানকারী পরিবর্তন

প্রসঙ্গ

এই পরিবর্তনটি প্রাইভেট ক্লাউড 4.53.00-এর জন্য এজ থেকে একটি ক্যারি-ওভার। প্রাইভেট ক্লাউড 4.53.00-এর জন্য এজ-এ, FIPS সমর্থন সক্রিয় করতে অভ্যন্তরীণ ক্রিপ্টোগ্রাফি প্রদানকারীকে Bouncy Castle (BC) থেকে Bouncy Castle FIPS (BC FIPS) এ আপডেট করা হয়েছে।

পরিবর্তন

যদি JavaCallout নীতিগুলি মূল BC প্রদানকারী ব্যবহার করার উপর নির্ভর করে, বিশেষ করে যখন নিরাপত্তা কার্যকারিতা ব্যবহার করে যা BC FIPS প্রদানকারীতে কঠোর করা হয়েছে (উদাহরণস্বরূপ, এনক্রিপশন এবং সাইনিং উভয়ের জন্য একটি সাধারণ কী জোড়া ব্যবহার করে), এই ধরনের JavaCallout নীতিগুলিকে আধুনিকীকরণ করতে হবে। BC নামটি ব্যবহার করে বাউন্সি ক্যাসল ক্রিপ্টোগ্রাফি প্রদানকারীকে লোড করার চেষ্টা করা JavaCallout নীতিগুলি ব্যর্থ হতে পারে কারণ ডিফল্ট প্রদানকারী পরিবর্তিত হয়েছে৷ BC প্রদানকারী ব্যবহার করে এই ধরনের নীতিগুলি পরবর্তীতে ভেঙ্গে যেতে পারে। পুরানো BC প্রদানকারীর উপর নির্ভর করে কোনো কাস্টম বাস্তবায়ন আর অ্যাক্সেসযোগ্য হবে না এবং পর্যালোচনা এবং পুনরায় প্রয়োগ করতে হবে।

প্রশমন

প্রস্তাবিত সমাধান হল BCFIPS প্রদানকারী ব্যবহার করা। কাস্টম জাভাকলআউট বাস্তবায়ন যা পুরানো প্রদানকারীর উপর নির্ভর করে সেগুলিকে বাউন্সি ক্যাসল FIPS প্রদানকারী ব্যবহার করে পর্যালোচনা এবং পুনরায় প্রয়োগ করতে হবে, যা "BCFIPS" স্ট্রিং ব্যবহার করে অ্যাক্সেস করা যেতে পারে।

সনাক্তকরণ টুল পরিবর্তন করুন

Apigee প্রক্সি, নীতি, শেয়ার্ড ফ্লো সনাক্ত করার জন্য একটি পরিবর্তন সনাক্তকরণ টুল তৈরি করা হয়েছে যা প্রাইভেট ক্লাউড 4.53.01-এর জন্য এজ-এ রূপান্তরের সময় এবং পরে প্রভাবিত হতে পারে। এই টুলটি পরিবর্তনের দ্বারা প্রভাবিত স্থাপন করা প্রক্সি, শেয়ার্ড ফ্লো এবং OpenLDAP সম্পর্কে বিশদ বিবরণ দিয়ে একটি রিপোর্ট তৈরি করে এবং চিহ্নিত প্রক্সি বা শেয়ার্ড ফ্লোগুলির সাথে প্রাসঙ্গিক নির্দিষ্ট গাইড এবং কৌশলগুলির নির্দেশনা প্রদান করে।

পূর্বশর্ত

  1. এই টুলটি চালানোর জন্য একটি RHEL-ভিত্তিক মেশিন প্রয়োজন।
  2. টুলের স্ক্রিপ্টগুলি চালানোর জন্য হোস্ট ভার্চুয়াল মেশিনে JRE 8 ইনস্টল করা এবং সঠিকভাবে কনফিগার করা আবশ্যক।
  3. টুলটির জন্য ম্যানেজমেন্ট সার্ভারের সঠিক এন্ডপয়েন্ট (URL) এবং প্রমাণীকরণ এবং ডেটা পুনরুদ্ধারের জন্য বৈধ প্রশাসনিক শংসাপত্র প্রয়োজন।
  4. বান্ডিল বের করা, লগ তৈরি করা এবং আউটপুট সংরক্ষণ করার জন্য টুলটির জন্য একটি নির্ধারিত ওয়ার্কিং ডিরেক্টরিতে (যেমন /tmp ) অ্যাক্সেস প্রয়োজন। এই ডিরেক্টরিতে পর্যাপ্ত ডিস্ক স্পেস এবং উপযুক্ত পঠন/লেখার অনুমতি রয়েছে তা নিশ্চিত করুন।
  5. 241 অক্ষর/বাইটের বেশি দীর্ঘ RDN সনাক্ত করতে OpenLDAP পরিবর্তন - Extract LDAP ডেটা বিভাগে ldapsearch কমান্ড ব্যবহার করে টুলটির জন্য LDIF ফাইল প্রয়োজন।

টুল চালাচ্ছে

উপরে তালিকাভুক্ত সমস্ত পূর্বশর্ত পূরণ হওয়ার পরে, Apigee থেকে ব্যবহারকারীর নাম এবং পাসওয়ার্ড সরবরাহ করার সময় টুলটি ডাউনলোড করুন যা আপনি Apigee সংগ্রহস্থল অ্যাক্সেস করতে ব্যবহার করেন। একবার ডাউনলোড হয়ে গেলে, ডাউনলোড করা আর্কাইভটি বের করুন।

curl -u uName:pWord https://software.apigee.com/apigee/change-detector/change-detector-for-4.53.01_1.0.0.zip -o /tmp/change-detector-for-4.53.01_1.0.0.zip
unzip /tmp/change-detector-for-4.53.01_1.0.0.zip

একবার ডাউনলোড সম্পূর্ণ হলে, টুলটির জন্য উপলব্ধ সমস্ত বিকল্প দেখতে আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:

./change-detector --help

টুল চালানোর জন্য, নিম্নলিখিত কমান্ড ব্যবহার করুন এবং আপনার তথ্য দিয়ে স্থানধারক প্রতিস্থাপন করুন:

export APIGEE_PASSWORD=[your_password]
./change-detector --username [your_username] --mgmt-url [MGMT url]

বড় RDN LDAP এন্ট্রি সনাক্ত করতে, নিম্নলিখিত কমান্ডটি চালান:

./change-detector --username [your_username] --mgmt-url [MGMT url] --ldif-file [LDIF_file]

টুলটি json বা csv ফর্ম্যাটে আউটপুট তৈরি করে যা সরাসরি ব্যবহার করা যেতে পারে বা মানব-পাঠযোগ্য টুলে আমদানি করা যেতে পারে, যেমন Google পত্রক।

টুল আউটপুট বুঝুন

সংগঠন

এটি সেই প্রতিষ্ঠানের নামের দিকে নির্দেশ করে যেখানে আর্টিফ্যাক্টটি অবস্থিত। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।

পরিবেশ

প্রতিষ্ঠানের মধ্যে নির্দিষ্ট পরিবেশ (যেমন, dev, test, prod)। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।

জাভা কলআউট পরিবর্তনের জন্য, যদি Artifact Type= env-level-jar হয়, এই ক্ষেত্রটি None হবে।

শিল্পকর্মের নাম

এই ক্ষেত্রটি প্রক্সি/ভাগ করা প্রবাহের নাম সম্পর্কে বলে। OpenLDAP পরিবর্তনের জন্য, এই ক্ষেত্রটি RDN-এর LDAP সত্তা দেখায়।

জাভা কলআউট পরিবর্তনের জন্য, যদি Artifact Type= env-level-jar বা org-level-jar হয়, এই ক্ষেত্রটি None হবে।

আর্টিফ্যাক্ট টাইপ

  • OAS এবং JSON পরিবর্তনের জন্য, এই কলামটি আর্টিফ্যাক্ট, প্রক্সি বা শেয়ার্ড প্রবাহের ধরন নির্দিষ্ট করে।
  • জাভা কলআউট পরিবর্তনের জন্য, এই কলামটি প্রভাবিত জার আপলোড করা স্থান বা স্তর সম্পর্কে বিশদ প্রদান করে। সম্পদ (JARs) তিনটি স্তরের একটিতে সংরক্ষণ করা যেতে পারে: org-level , env-level , proxy-level .
  • OpenLDAP পরিবর্তনের জন্য, এই ক্ষেত্রটি টুলে ব্যবহৃত LDIF ফাইলটিকে নির্দেশ করে।

রিভিশন

এটি প্রভাবিত প্রক্সি/ভাগ করা প্রবাহের নিয়োজিত সংশোধনের দিকে নির্দেশ করে। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।

নীতির নাম

একটি সম্ভাব্য সমস্যা হিসেবে চিহ্নিত করা নির্দিষ্ট নীতির নাম। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।

নীতির ধরন

এটি নীতির ধরন নির্দেশ করে। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।

প্রভাবের ধরন

  • এই ক্ষেত্রটি একটি প্রক্সি/ভাগ করা প্রবাহে সনাক্ত করা নির্দিষ্ট ধরনের পরিবর্তন বর্ণনা করে।
  • জাভা কলআউট পরিবর্তনের জন্য, জাভা-ক্যালআউটের সাথে সম্পর্কিত পরিবর্তনের সনাক্তকরণ, টুলটি প্রভাবিত জাভা-ক্যালআউটের দিকে নির্দেশ করে যেটিতে $APIGEE_ROOT/edge-message-processor/lib/deprecated Edge-এর পুরানো সংস্করণের এজ-এর পুরানো সংস্করণগুলির উল্লেখ রয়েছে এই বিশেষ কলামে নিম্নলিখিত উপায়ে।
  • deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR
  • OpenLDAP পরিবর্তনের জন্য, এই ক্ষেত্রটি দেখায় যে কোনো LDAP সত্তার RDN 241 বাইট বা অক্ষরের বেশি হলে।

প্রভাব নির্দিষ্ট ক্ষেত্রের

  • OAS পরিবর্তনের জন্য, এই ক্ষেত্রটি নীতির উৎস ট্যাগে ব্যবহৃত ভেরিয়েবলের নাম।
  • JSON পরিবর্তনের জন্য, এই ক্ষেত্রটি সঠিক JSONPath এক্সপ্রেশন বা উপাদান দেখায় যা একটি সম্ভাব্য সমস্যা হিসাবে ফ্ল্যাগ করা হয়েছে।
  • জাভা কলআউট পরিবর্তনের জন্য, এই ক্ষেত্রটিতে সঠিক ক্লাসের বিশদ বিবরণ রয়েছে এবং সংশ্লিষ্ট JAR এর নাম ( $APIGEE_ROOT/edge-message-processor/lib/deprecated পুরনো প্রাইভেট ক্লাউড সংস্করণের ডিরেক্টরীতে উপস্থিত) প্রভাবিত JavaCallout জার দ্বারা ব্যবহৃত/রেফারেন্স করা হয়েছে যা আপগ্রেড 045 সংস্করণ না হলে ব্যর্থতার দিকে নিয়ে যাবে।
  •  ['Detected use of class CLASS_NAME_1 from JAR_NAME_1',
        Detected use of class CLASS_NAME_2 from JAR_NAME_2', 
      .. , .. , ]
  • OpenLDAP পরিবর্তনের জন্য, এই ক্ষেত্রটি LDAP সত্তার RDN দেখায় যা 241 বাইট বা অক্ষরের বেশি।

প্রভাব নিশ্চিততা

  • এই ক্ষেত্রটি নিশ্চিততার পরিমাণ সম্পর্কে বলে যে কোন সরঞ্জামটি একটি নির্দিষ্ট আইটেম সনাক্ত করেছে। এই কলামের মান উচ্চ বা মাঝারি হতে পারে (আরও মান পরে যোগ করা যেতে পারে)।

    একটি উচ্চ মান মানে টুলটি নির্ধারণ করেছে যে 4.53.01 সংস্করণে আপগ্রেড করার পরে আইটেমটি অ্যাপ্লিকেশনটিকে ভেঙে ফেলবে এমন একটি খুব উচ্চ সম্ভাবনা রয়েছে৷ একটি মাঝারি মান নির্দেশ করে যে টুলটি সনাক্তকরণ সম্পর্কে অস্পষ্ট এবং একটি সংকল্প করার জন্য আরও কৌশলের প্রয়োজন হবে (উদাহরণস্বরূপ, প্রক্সি কার্যকর করার সময় সমাধান করা ভেরিয়েবলগুলি পর্যবেক্ষণ করতে ট্রেস ক্যাপচার করুন)।

  • JavaCallout এবং OpenLDAP পরিবর্তনের সাথে সম্পর্কিত সনাক্তকরণের প্রভাব নিশ্চিত কলামগুলির জন্য সর্বদা উচ্চ মান থাকবে।

ডকুমেন্টেশন

এই কলামটি Apigee-এর ডকুমেন্টেশন (এই নিবন্ধের প্রাসঙ্গিক বিভাগ) একটি হাইপারলিঙ্ক প্রদান করে যা সমস্যা এবং এর প্রশমনের পদক্ষেপগুলি ব্যাখ্যা করে।