ภาพรวมของการเปลี่ยนแปลง
Edge สำหรับ Private Cloud 4.53.01 มีการเปลี่ยนแปลงหลายอย่างที่ช่วยเพิ่มท่าทีด้านความปลอดภัยของแพลตฟอร์ม และรวมซอฟต์แวร์และไลบรารีที่จำเป็นเวอร์ชันที่อัปเดตแล้ว การเปลี่ยนแปลงเหล่านี้ส่งผลต่อประเภทนโยบายต่อไปนี้
- นโยบายการตรวจสอบ OAS (ข้อกำหนด OpenAPI)
- นโยบายที่รองรับการค้นหา JSONPath
- นโยบายการเรียกใช้ Java ที่ใช้ไลบรารีที่เลิกใช้งานแล้ว
- OpenLDAP
- การเปลี่ยนแปลงผู้ให้บริการด้านการเข้ารหัส
นอกจากนี้ คุณยังใช้เครื่องมือตรวจหาการเปลี่ยนแปลงเพื่อระบุการเปลี่ยนแปลงพร็อกซี โฟลว์ที่แชร์ หรืออาร์ติแฟกต์อื่นๆ ในคลัสเตอร์ที่อาจทำให้เกิดการหยุดชะงักอันเป็นผลมาจากการอัปเกรดนี้ได้ด้วย
คำอธิบายโดยละเอียดของการเปลี่ยนแปลง
ส่วนนี้อธิบายการเปลี่ยนแปลงที่เปิดตัวในเวอร์ชัน 4.53.01 ซึ่งอาจขัดขวางขั้นตอนการทำงานของคุณระหว่างหรือหลังการอัปเกรด นอกจากนี้ ยังครอบคลุมวิธีการระบุพื้นที่ที่อาจเกิดปัญหาและวิธีการลดหรือวิธีแก้ปัญหาชั่วคราวด้วย
นโยบายการตรวจสอบ OAS (ข้อกำหนด OpenAPI)
บริบท
นโยบายการตรวจสอบ OAS จะตรวจสอบคำขอหรือการตอบกลับขาเข้ากับกฎที่กำหนดไว้ในข้อกำหนด OpenAPI 3.0 (JSON หรือ YAML) Edge for Private Cloud 4.53.01 มีการปรับปรุงนโยบาย OAS (ข้อกำหนด OpenAPI) โดยมุ่งเน้นที่การตรวจสอบเนื้อหาการตอบกลับของ API ที่เข้มงวดและแม่นยำยิ่งขึ้น
การเปลี่ยนแปลง
Edge for Private Cloud 4.53.01 มีการเปลี่ยนแปลงที่สำคัญ 2 อย่างในวิธีที่นโยบาย 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 ได้รับการกำหนดค่าด้วยแท็ก Source ที่ตั้งค่าเป็น
response
- นโยบายการตรวจสอบ OAS จะตรวจสอบการตอบกลับจากนโยบายอื่นๆ ที่สร้างการตอบกลับ
หากใช้เครื่องมือนี้ เครื่องมือจะสร้างเอาต์พุตในรูปแบบต่อไปนี้
องค์กร | สภาพแวดล้อม | ชื่ออาร์ติแฟกต์ | ประเภทอาร์ติแฟกต์ | การแก้ไข | ชื่อนโยบาย | ประเภทนโยบาย | ประเภทผลกระทบ | ฟิลด์ผลกระทบที่เฉพาะเจาะจง | ความแน่นอนของผลกระทบ | เอกสารประกอบ |
---|---|---|---|---|---|---|---|---|---|---|
org2 | Dev | proxy2 | พร็อกซี | 4 | oas-validateresponse | OASValidation | oas_content_type_handling | Source=calloutresponse | ปานกลาง | นโยบายการตรวจสอบ OAS |
org1 | Prod | proxy3 | Sharedflow | 1 | oas-spec-validation | OASValidation | oas_content_type_handling | แหล่งที่มา=การตอบกลับ | ปานกลาง | นโยบายการตรวจสอบ OAS |
ดูคำอธิบายโดยละเอียดเกี่ยวกับคอลัมน์ในตารางเอาต์พุตได้ที่ส่วนทำความเข้าใจเอาต์พุตของเครื่องมือ
เมื่อระบุพร็อกซีหรือโฟลว์ที่แชร์แล้ว ให้ตรวจสอบว่าการตอบกลับและข้อกำหนด OAS สอดคล้องกันในเรื่องการมีหรือไม่มีเนื้อหาการตอบกลับ คุณสามารถใช้การติดตาม Apigee มาตรฐานเพื่อตรวจสอบรูปแบบการเข้าชมได้ หากเป้าหมายส่งคืนการตอบกลับเป็นระยะๆ ให้ใช้นโยบายอื่นๆ เพื่อตรวจสอบการตอบกลับก่อนที่จะส่งการตอบกลับไปยังนโยบายการตรวจสอบ OAS
- หากไฟล์ข้อกำหนด OAS กำหนดเนื้อหาการตอบกลับ การตอบกลับจากนโยบายเป้าหมายหรือนโยบายต้นทางจะต้องระบุเนื้อหาการตอบกลับเสมอ
- หากไฟล์ข้อกำหนด OAS ไม่ได้กำหนดเนื้อหาการตอบกลับ นโยบายเป้าหมายหรือนโยบายต้นทางต้องไม่ส่งเนื้อหาการตอบกลับ
อัปเดตนโยบายการตรวจสอบ OAS หรือลักษณะการทำงานเป้าหมายตามที่จำเป็นก่อนที่จะพยายามอัปเกรดเป็น Private Cloud 4.53.01 คุณควรตรวจสอบเวิร์กโฟลว์ที่ระบุไว้ดังกล่าวในสภาพแวดล้อมที่ไม่ใช่เวอร์ชันที่ใช้งานจริงก่อนเพื่อลดความเสี่ยงที่จะเกิดการหยุดชะงักระหว่างการอัปเกรดคลัสเตอร์เวอร์ชันที่ใช้งานจริง
เส้นทาง JSON
บริบท
Edge สำหรับ Private Cloud 4.53.01 ได้ทำการเปลี่ยนแปลงวิธีใช้การแสดงเส้นทาง JSON ในนโยบายต่างๆ คุณสามารถใช้นิพจน์ JSONPath ในนโยบายต่างๆ เช่น นโยบาย ExtractVariable, นโยบาย RegularExpressionProtection, การมาสก์ข้อมูล เพื่อแยกวิเคราะห์เนื้อหา JSON หรือจัดเก็บค่าในตัวแปร นอกจากนี้ คุณยังใช้นิพจน์ JSONPath ในการสร้างเทมเพลตข้อความทั่วไปเพื่อแทนที่ตัวแปรด้วยค่าแบบไดนามิกระหว่างการดำเนินการพร็อกซีได้ด้วย นิพจน์และรูปแบบ JSONPath ใหม่เป็นไปตามมาตรฐานนิพจน์ JSON ล่าสุด
การเปลี่ยนแปลง
คุณควรตรวจสอบพร็อกซี API/โฟลว์ที่แชร์ที่มีอยู่สำหรับนโยบายที่ใช้การแสดงผล JSONPath ซึ่งรวมถึงแต่ไม่จำกัดเพียงนโยบายการแยกตัวแปร นโยบายการป้องกันนิพจน์ทั่วไป หรือนโยบายใดๆ ที่มีเทมเพลตข้อความซึ่งใช้ 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"} ] } } }
- การเปลี่ยนแปลงลักษณะการทำงานของไวลด์การ์ด 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"}] } ]
เปลี่ยนนิพจน์ JSONPath เพื่อกำหนดเป้าหมายไปยังออบเจ็กต์หลัก (เช่น
$.store
) เพื่อกำหนดเป้าหมายไปยังรายการที่ดึงข้อมูลมาก่อนหน้านี้โดยตรง - จุดต่อท้าย 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
- การเปลี่ยนแปลงโครงสร้างเอาต์พุตของ
(..)
การลงแบบเรียกซ้ำของ 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 ด้านในแต่ละรายการเพื่อเข้าถึงองค์ประกอบแต่ละรายการ
- การจัดทำดัชนี JSONPath หลังจากเลือกหลายรายการหรือตัวกรองแสดงผลอาร์เรย์ว่าง
ลักษณะการทำงานจะเปลี่ยนไปเมื่อใช้ดัชนี (เช่น
[0]
) ทันทีหลังจากตัวเลือกหลายรายการ (เช่น[*]
) หรือตัวกรอง ([?(condition)]
) ก่อนหน้านี้ นิพจน์ดังกล่าวจะพยายามเลือกรายการที่ดัชนีที่ระบุจากผลลัพธ์ที่รวมกัน ในเวอร์ชันใหม่ นิพจน์เหล่านี้จะแสดงผลอาร์เรย์ว่าง ([]
)ตัวอย่างเช่น
ลักษณะการทำงานก่อนหน้า$.store.book[*][0]
ลักษณะการทำงานปัจจุบัน:{"category": "reference", "price": 8.95, "author": "Nigel Rees"}
การดำเนินการ:[]
หากจำเป็นต้องกรองแล้วรับรายการที่เฉพาะเจาะจงจากชุดที่กรอง ให้ประมวลผลอาร์เรย์ที่กรองซึ่ง JSONPath ส่งคืน เช่น
$..book[?(@.category == 'fiction')]
แล้วใช้[0]
จากผลลัพธ์ก่อนหน้า - การเปลี่ยนแปลงเอาต์พุตการแบ่งอาร์เรย์เชิงลบของ 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 ที่แสดงผลเพื่อรับเอาต์พุตที่ต้องการ
- จุดนำหน้า 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
) วิธีนี้จะกำหนดเป้าหมายและดึงค่าได้อย่างถูกต้อง - นิพจน์ JSONPath แบบไดนามิก
โปรดอ่านนโยบายอย่างละเอียดในกรณีที่ตัวแปรเป็นตัวระบุนิพจน์ JSONPath (เช่น
หรือ{myJsonPathVariable}
) คุณต้องตรวจสอบค่าของตัวแปรเหล่านี้เทียบกับการเปลี่ยนแปลงด้านพฤติกรรมที่อาจเกิดขึ้นตามที่ระบุไว้ข้างต้นด้วย{dynamicPath}
การลดปัญหา
ระบุพร็อกซีหรือโฟลว์ที่แชร์ที่อาจได้รับผลกระทบจากการอัปเกรดโดยใช้เครื่องมือตรวจหาการเปลี่ยนแปลง หรือตรวจสอบพร็อกซี API ด้วยตนเองเพื่อหารูปแบบที่อธิบายไว้ หากคุณใช้เครื่องมือนี้ เอาต์พุตจะระบุพร็อกซีหรือโฟลว์ที่แชร์ที่ได้รับผลกระทบ นโยบายที่เกี่ยวข้อง และเส้นทาง JSON ที่มีปัญหา ดังที่แสดงในเอาต์พุตตัวอย่างด้านล่าง
องค์กร | สภาพแวดล้อม | ชื่ออาร์ติแฟกต์ | ประเภทอาร์ติแฟกต์ | การแก้ไข | ชื่อนโยบาย | ประเภทนโยบาย | ประเภทผลกระทบ | ฟิลด์ผลกระทบที่เฉพาะเจาะจง | ความแน่นอนของผลกระทบ | เอกสารประกอบ |
---|---|---|---|---|---|---|---|---|---|---|
org1 | Dev | proxy1 | พร็อกซี | 4 | EV-ExtractRequestParams | ExtractVariables | การเปลี่ยนแปลงลักษณะการทำงานของไวลด์การ์ด JSONPath [*] สำหรับค่าออบเจ็กต์ | $.store[*] | สูง | การเปลี่ยนแปลงลักษณะการทำงานของไวลด์การ์ด JSONPath [*] สำหรับค่าออบเจ็กต์ |
org2 | Prod | proxy2 | Sharedflow | 1 | EV-ExtractResponseParams | ExtractVariables | ตอนนี้จุดต่อท้าย (.) ในเส้นทาง JSONPath ทำให้เกิดข้อผิดพลาด | $.store.book. | สูง | จุด (.) ต่อท้าย JSONPath ในเส้นทางทำให้เกิดข้อผิดพลาด |
org3 | Dev | proxy3 | พร็อกซี | 3 | SC-FetchUserProfile | ServiceCallout | การเปลี่ยนแปลงโครงสร้างเอาต์พุตของ JSONPath Recursive Descent (..) | $..book | สูง | การเปลี่ยนแปลงโครงสร้างเอาต์พุตของการสืบค้นแบบเรียกซ้ำของ JSONPath (..) |
org4 | Prod | proxy4 | Sharedflow | 2 | RF-InvalidAuthToken | RaiseFault | การจัดทำดัชนี JSONPath หลังจากเลือกหรือกรองหลายรายการจะแสดงผลเป็นอาร์เรย์ว่าง | $.store.book[*][0] | สูง | การจัดทำดัชนี JSONPath หลังจากเลือกหลายรายการหรือตัวกรองแสดงผลอาร์เรย์ว่าง |
org5 | ทดสอบ | proxy5 | พร็อกซี | 6 | SC-FetchProfileDetails | ServiceCallout | การเปลี่ยนแปลงเอาต์พุตการแบ่งอาร์เรย์เชิงลบของ JSONPath | $.store.book[-2:] | สูง | การเปลี่ยนแปลงเอาต์พุตการแบ่งอาร์เรย์เชิงลบของ JSONPath |
org6 | Prod | proxy6 | พร็อกซี | 2 | ML-LogRequestDetails | MessageLogging | จุดนำหน้า JSONPath ที่เข้มงวดกว่า | $store | สูง | จุดนำหน้า JSONPath ที่เข้มงวดขึ้น |
org7 | ทดสอบ | proxy7 | พร็อกซี | 5 | RF-InvalidTokenDetails | RaiseFault | นิพจน์ JSONPath แบบไดนามิก | myJsonPathVariable | ปานกลาง | นิพจน์ JSONPath แบบไดนามิก |
ดูคำอธิบายโดยละเอียดเกี่ยวกับคอลัมน์ในตารางเอาต์พุตด้านบนได้ที่ส่วนทำความเข้าใจเอาต์พุตของเครื่องมือ
การบรรเทาผลกระทบจำเป็นต้องมีกลยุทธ์ที่ครอบคลุม กระบวนการนี้เกี่ยวข้องกับการตัดสินใจเลือกเส้นทางการอัปเดตที่เหมาะสมและการใช้การแก้ไขที่จำเป็นสำหรับนิพจน์ JSONPath ที่ตรวจพบ
เลือกวิธีการอัปเกรดที่เหมาะกับคุณที่สุด
- การย้ายข้อมูลโดยไม่มีช่วงพักการใช้งาน
กลยุทธ์นี้เกี่ยวข้องกับการจัดหาสภาพแวดล้อมใหม่อย่างน้อย 1 รายการเพื่อให้คุณเชื่อมต่อโหนดโปรเซสเซอร์ข้อความแยกต่างหากกับสภาพแวดล้อมดังกล่าวได้ คุณสามารถตั้งค่าโหนดตัวประมวลผลข้อความดังกล่าวให้ติดตั้ง 4.53.01 และมีพร็อกซีที่มีนิพจน์ JSONPath ที่ทันสมัยได้ คุณใช้ค่าเหล่านี้ได้ในระหว่างการอัปเกรด และสามารถเลิกใช้งานได้หลังจากที่การอัปเกรดเสร็จสมบูรณ์ กลยุทธ์นี้ราบรื่น แต่ต้องจัดหาโหนดตัวประมวลผลข้อความเพิ่มเติมชั่วคราวเพื่อรองรับการอัปเกรดที่ราบรื่น รายละเอียดมีดังนี้
- สร้างสภาพแวดล้อมใหม่และเพิ่มโหนดตัวประมวลผลข้อความใหม่เวอร์ชัน 4.53.01 ลงในสภาพแวดล้อมใหม่นี้
- อัปโหลดแพ็กเกจพร็อกซีสำหรับพร็อกซีที่ได้รับผลกระทบไปยังสภาพแวดล้อมใหม่ และใช้การแก้ไขที่จำเป็นตามที่อธิบายไว้ในส่วนการแก้ไข แล้วจึงนำแพ็กเกจพร็อกซีที่อัปเดตแล้วไปใช้งานในสภาพแวดล้อมใหม่
- เปลี่ยนเส้นทางการเข้าชมไปยังสภาพแวดล้อมใหม่และยกเลิกการติดตั้งใช้งานพร็อกซีที่ได้รับผลกระทบจากสภาพแวดล้อมเดิม
- อัปเกรดโหนดตัวประมวลผลข้อความเดิมเป็น 4.53.01 ติดตั้งใช้งานพร็อกซีที่มีการแก้ไข JSONPath ในสภาพแวดล้อมเดิม
- เปลี่ยนการรับส่งข้อมูลกลับไปที่สภาพแวดล้อมเดิม ซึ่งตอนนี้มีตัวประมวลผลข้อความใน 4.53.01 และพร็อกซีที่ได้รับการปรับปรุงให้ทันสมัยสำหรับนิพจน์ jsonpath ใหม่
- ลบและเลิกใช้งานสภาพแวดล้อมใหม่และโหนดที่เกี่ยวข้อง
- ช่วงพักการใช้งานและการอัปเกรด
กลยุทธ์นี้เกี่ยวข้องกับการจัดหาช่วงหยุดทำงานสำหรับพร็อกซี API โดยใช้นิพจน์เส้นทาง JSON ที่ไม่ถูกต้อง การดำเนินการนี้ไม่จำเป็นต้องจัดหาโหนดตัวประมวลผลข้อความเพิ่มเติม แต่จะทำให้การรับส่งข้อมูล API สำหรับพร็อกซีที่ได้รับผลกระทบหยุดชะงัก
- ระบุพร็อกซีที่ได้รับผลกระทบพร้อมนโยบายที่ได้รับผลกระทบ และสร้างการแก้ไขใหม่สำหรับพร็อกซีที่ได้รับผลกระทบทั้งหมด
- ใช้การแก้ไขที่จำเป็นโดยใช้การแก้ไขที่อธิบายไว้ในส่วนการแก้ไขในการแก้ไขพร็อกซีครั้งใหม่ อย่าเพิ่งติดตั้งใช้งาน
- จัดหาช่วงหยุดทำงานสำหรับพร็อกซีที่มีผลกระทบ
- อัปเกรดตัวประมวลผลข้อความทั้งหมดเป็น Edge สำหรับ Private Cloud เวอร์ชัน 4.53.01 โปรดทราบว่าพร็อกซีที่มีอยู่อาจทำงานไม่สำเร็จในเครื่องประมวลผลข้อความที่อัปเกรดใหม่
- เมื่ออัปเกรดตัวประมวลผลข้อความทั้งหมดเป็น Edge สำหรับ Private Cloud เวอร์ชัน 4.53.01 แล้ว ให้ติดตั้งใช้งานการแก้ไขพร็อกซีที่สร้างขึ้นใหม่ด้วยนิพจน์ JSONPath ที่แก้ไขแล้ว
- เรียกใช้การรับส่งข้อมูลบนพร็อกซีดังกล่าวต่อ
- ออกแบบพร็อกซีใหม่ก่อนอัปเกรด
คุณสามารถออกแบบพร็อกซีใหม่ก่อนอัปเกรดเป็น Edge for Private Cloud 4.53.01 คุณสามารถรับผลลัพธ์เดียวกันได้โดยใช้วิธีอื่นแทนการใช้การแสดงเส้นทาง JSON ที่เฉพาะเจาะจง
เช่น หากคุณใช้นโยบาย Extract Variable กับเส้นทาง JSON คุณสามารถแทนที่นโยบายด้วยนโยบาย JavaScript ที่ดึงข้อมูลที่คล้ายกันก่อนที่จะอัปเกรดเป็นเวอร์ชันใหม่กว่า หลังจากอัปเกรดเสร็จสมบูรณ์แล้ว คุณสามารถเปลี่ยนพร็อกซีกลับไปใช้เส้นทาง JSON กับรูปแบบใหม่กว่าได้
การเปลี่ยนแปลง JavaCallout
บริบท
Edge สำหรับ Private Cloud 4.53.00 และเวอร์ชันก่อนหน้าเคยมีไดเรกทอรีชื่อ deprecated ($APIGEE_ROOT/edge-message-processor/lib/deprecated
) ซึ่งมีไลบรารี JAR จำนวนมาก ไลบรารีเหล่านี้พร้อมให้ใช้งานในโค้ด Java ในนโยบาย JavaCallout และโค้ด Java ที่กำหนดเองอาจใช้ไลบรารีเหล่านี้โดยตรงหรือโดยอ้อม
การเปลี่ยนแปลง
ตอนนี้เราได้นำไดเรกทอรีที่เลิกใช้งานแล้วออกใน Edge สำหรับ Private Cloud เวอร์ชัน 4.53.01 ในกรณีที่โค้ด Java ของคุณต้องใช้ไลบรารีดังกล่าว พร็อกซีที่ใช้การเรียก Java ดังกล่าวจะล้มเหลวเมื่ออัปเกรด Message Processor เป็นเวอร์ชัน 4.53.01 หากต้องการหลีกเลี่ยงความล้มเหลวดังกล่าว ให้ทำตามขั้นตอนการลดความเสี่ยงด้านล่างก่อนอัปเกรดโปรแกรมประมวลผลข้อความเป็นเวอร์ชัน 4.53.01
การลดปัญหา
ตรวจสอบนโยบาย Java Callout และไฟล์ JAR ที่เกี่ยวข้องโดยใช้เครื่องมือตรวจหาการเปลี่ยนแปลงหรือด้วยตนเอง ตรวจสอบว่ามีนโยบายใดที่อ้างอิงไลบรารีที่อยู่ในไดเรกทอรี "เลิกใช้งานแล้ว" ของเครื่องมือประมวลผลข้อความปัจจุบันหรือไม่
หากคุณใช้เครื่องมือที่ Apigee จัดเตรียมไว้สำหรับการตรวจหาข้างต้น เครื่องมือจะสร้างรายงานดังที่แสดงในตารางต่อไปนี้ โดยเฉพาะอย่างยิ่ง นโยบายนี้มุ่งเป้าไปที่นโยบายที่อ้างอิง JAR ที่พบในไดเรกทอรี
$APIGEE_ROOT/edge-message-processor/lib/deprecated
ของ Edge for Private Cloud เวอร์ชันเก่าเครื่องมือจะสร้างรายงานในรูปแบบต่อไปนี้
องค์กร สภาพแวดล้อม ชื่ออาร์ติแฟกต์ ประเภทอาร์ติแฟกต์ การแก้ไข ชื่อนโยบาย ประเภทนโยบาย ประเภทผลกระทบ ฟิลด์ผลกระทบที่เฉพาะเจาะจง ความแน่นอนของผลกระทบ เอกสารประกอบ org1 ไม่มี ไม่มี org-level-jar ไม่มี ไม่มี java-callout ตรวจพบไลบรารีที่เลิกใช้งานแล้วสำหรับ simple-javacallout-o1-jar-1.jar
['ตรวจพบการใช้คลาส org.apache.commons.io.FileUtils
จากcommons-io-2.5.jar
, 'ตรวจพบการใช้คลาสorg.apache.commons.io.input.XmlStreamReaderException
จากcommons-io-2.5.jar
']สูง การเปลี่ยนแปลง JavaCallout org3 env3 ไม่มี env-level-jar ไม่มี ไม่มี java-callout ตรวจพบไลบรารีที่เลิกใช้งานแล้วสำหรับ fat-javacallout-e3-jar-1.jar
['ตรวจพบการใช้คลาส org.apache.http.impl.auth.NTLMSchemeFactory
จากhttpclient-4.5.2.jar
']สูง การเปลี่ยนแปลง JavaCallout org1 env1 p1 proxy-level-jar 1 ไม่มี java-callout ตรวจพบไลบรารีที่เลิกใช้งานแล้วสำหรับ simple-javacallout-p1-jar-1.jar
["ตรวจพบการใช้คลาส org.apache.commons.lang3.builder.ToStringBuilder
จากcommons-lang3-3.4.jar
", "ตรวจพบการใช้คลาสorg.apache.commons.lang3.Validate
จากcommons-lang3-3.4.jar
"]สูง การเปลี่ยนแปลง JavaCallout ดูคำอธิบายโดยละเอียดเกี่ยวกับคอลัมน์ในตารางเอาต์พุตด้านบนได้ที่ส่วนทำความเข้าใจเอาต์พุตของเครื่องมือ
- เมื่อระบุไลบรารีที่เลิกใช้งานแล้วดังกล่าวได้ คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อลดปัญหา
- การวางทรัพยากร (แนะนำหากคุณมีไฟล์ JAR / ไลบรารีจำนวนเล็กน้อยจากไดเรกทอรีที่เลิกใช้งานแล้วซึ่งไฟล์ JAR ของ Java-Callout อ้างอิงอยู่)
- อัปโหลดไฟล์ JAR ที่เลิกใช้งานแล้วซึ่งระบุว่าเป็นทรัพยากรในระดับที่ต้องการ ได้แก่ การแก้ไขพร็อกซี API, สภาพแวดล้อม หรือองค์กร
- ดำเนินการอัปเกรดซอฟต์แวร์ Apigee ตามปกติ
- การวางด้วยตนเอง (แนะนำหากคุณมีไฟล์ JAR / ไลบรารีจำนวนมากที่ไฟล์ JAR ของ Java-Callout อ้างอิง)
- สร้างไดเรกทอรีใหม่ชื่อ external-lib ในเส้นทาง
$APIGEE_ROOT/data/edge-message-processor/
ในโหนดตัวประมวลผลข้อความแต่ละรายการ - คัดลอกไฟล์ JAR ที่ระบุไปยังไดเรกทอรี external-lib นี้จากไดเรกทอรีที่เลิกใช้งานแล้ว
cp $APIGEE_ROOT/edge-message-processor/lib/deprecated/some.jar
$APIGEE_ROOT/data/edge-message-processor/external-lib/some.jar
- ตรวจสอบว่าผู้ใช้ Apigee อ่านไดเรกทอรีและไฟล์ JAR ที่เกี่ยวข้องได้:
chown -R apigee:apigee
$APIGEE_ROOT/data/edge-message-processor/external-lib
- ดำเนินการอัปเกรดซอฟต์แวร์ Apigee ตามปกติ
- สร้างไดเรกทอรีใหม่ชื่อ external-lib ในเส้นทาง
- การวางทรัพยากร (แนะนำหากคุณมีไฟล์ JAR / ไลบรารีจำนวนเล็กน้อยจากไดเรกทอรีที่เลิกใช้งานแล้วซึ่งไฟล์ JAR ของ Java-Callout อ้างอิงอยู่)
การเปลี่ยนแปลง OpenLDAP
บริบท
คุณใช้ OpenLDAP ใน Edge Private Cloud ได้ทั้งสำหรับการตรวจสอบสิทธิ์และการให้สิทธิ์ ใน Edge สำหรับ Private Cloud 4.53.01 ซอฟต์แวร์ OpenLDAP ที่จัดส่งโดย Apigee ได้รับการอัปเกรดจากเวอร์ชัน 2.4 เป็น 2.6
การเปลี่ยนแปลง
ใน OpenLDAP 2.6 ชื่อเฉพาะแบบสัมพัทธ์ (RDN) จะจำกัดไว้ที่ประมาณ 241 ไบต์/อักขระ ข้อจำกัดนี้เป็นขีดจำกัดสูงสุดที่บังคับใช้และแก้ไขไม่ได้
ผลกระทบ- การจำลองหรือการนำเข้าล้มเหลวสำหรับรายการที่มี RDN ขนาดใหญ่เกินไป
- การพยายามสร้างเอนทิตี เช่น องค์กร สภาพแวดล้อม บทบาทที่กำหนดเอง สิทธิ์ ฯลฯ อาจทำให้เกิดข้อความแสดงข้อผิดพลาด:
"message": "[LDAP: error code 80 - Other]"
- DN ที่ยาวกว่า 241 ไบต์ใน LDAP ของ Apigee จะได้รับผลกระทบ DN ดังกล่าวจะทําให้อัปเกรดซอฟต์แวร์ Apigee OpenLDAP ไม่สําเร็จ และคุณจะต้องทํากลยุทธ์การลดความเสี่ยงสําหรับรายการดังกล่าวก่อนจึงจะดําเนินการอัปเกรดต่อได้
โดยทั่วไปใน LDAP ของ Apigee นั้น DN ที่ยาวจะเกี่ยวข้องกับสิทธิ์เนื่องจากสร้างขึ้นโดยการต่อเอนทิตีหลายรายการ รายการสิทธิ์ดังกล่าวมีแนวโน้มที่จะเกิดปัญหาในการอัปเกรดเป็นพิเศษ
ตัวอย่างเช่น
dn: cn=@@@environments@@@*@@@applications@@@*@@@revisions@@@*@@@debugsessions,ou=resources,cn=businessuser,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
โดยปกติแล้ว คุณจะมีชื่อองค์กร สภาพแวดล้อม และบทบาทที่มีความยาวซึ่งทำให้ RDN ใน LDAP มีขนาดเล็กกว่า 241 ไบต์
การลดปัญหา
ก่อนอัปเกรดเป็น 4.53.01:
ขั้นตอนต่อไปนี้จะช่วยยืนยันการมีอยู่ของ RDN แบบยาวในคลัสเตอร์ LDAP 2.4 ที่มีอยู่
#1 - ดึงข้อมูล LDAP
ใช้คำสั่ง ldapsearch เพื่อค้นหาชื่อเฉพาะ (dn) และเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์
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 ที่ยาว
เครื่องมือตรวจหาการเปลี่ยนแปลงใช้ไฟล์ LDIF ที่สร้างขึ้นเพื่อระบุ RDN ของ LDAP ที่เกิน 241 ไบต์/อักขระ
เครื่องมือจะสร้างรายงานในรูปแบบต่อไปนี้
องค์กร | สภาพแวดล้อม | ชื่ออาร์ติแฟกต์ | ประเภทอาร์ติแฟกต์ | การแก้ไข | ชื่อนโยบาย | ประเภทนโยบาย | ประเภทผลกระทบ | ฟิลด์ผลกระทบที่เฉพาะเจาะจง | ความแน่นอนของผลกระทบ | เอกสารประกอบ |
---|---|---|---|---|---|---|---|---|---|---|
ไม่มี | ไม่มี | cn=really-long-name,ou=userroles,o=edge-platform,ou=organizations,dc=apigee,dc=com | ไฟล์ LDIF | ไม่มี | ไม่มี | ไม่มี | RDN ของ LDAP เกิน 241 อักขระ | cn=really-long-name | สูง | การเปลี่ยนแปลง OpenLDAP |
ดูคำอธิบายโดยละเอียดเกี่ยวกับคอลัมน์ในตารางเอาต์พุตด้านบนได้ที่ส่วนทำความเข้าใจเอาต์พุตของเครื่องมือ
หากคำสั่งข้างต้นไม่แสดงเอาต์พุต แสดงว่าไม่มี RDN ในการตั้งค่า LDAP ที่มีอยู่ซึ่งเกิน 241 ไบต์/อักขระ คุณสามารถดำเนินการอัปเกรดต่อได้ตามปกติ
หากคำสั่งข้างต้นสร้างเอาต์พุต แสดงว่ามี RDN ที่เกิน 241 ไบต์/อักขระ สำหรับรายการดังกล่าว ให้ทำตามขั้นตอนการลดความเสี่ยงตามที่อธิบายไว้ในขั้นตอนที่ 3 ก่อนดำเนินการอัปเกรด Edge for Private Cloud เป็นเวอร์ชัน 4.53.01
#3 - จัดการ RDN ที่มีความยาว
หากได้รับเอาต์พุตจากขั้นตอนที่ 2 แสดงว่ามี RDN ที่ยาวเกิน 241 ไบต์/อักขระ ให้ทำตามขั้นตอนการลดความเสี่ยงด้านล่าง
ตรวจสอบรายการ LDAP ที่มีขนาดเกิน 241 ไบต์
- หากเป็นชื่อบทบาทที่กำหนดเอง แอป ผลิตภัณฑ์ API หรือเอนทิตีอื่นๆ ซึ่งเป็นปัจจัยหลักที่ทำให้ RDN ยาว ให้ย้ายข้อมูลไปใช้เอนทิตีอื่นที่มีชื่อสั้นกว่า
- หากชื่อองค์กรหรือชื่อสภาพแวดล้อมเป็นปัจจัยหลักที่ทำให้ RDN ยาว คุณจะต้องย้ายข้อมูลไปยังองค์กรหรือสภาพแวดล้อมอื่นที่มีชื่อสั้นกว่า
ทำขั้นตอนข้างต้นซ้ำจนกว่า LDAP จะไม่มี RDN ที่ยาวเกิน 241 ไบต์ เมื่อถึงสถานะนี้แล้ว ให้อัปเกรดเวอร์ชันของ Private Cloud ตามปกติ
การเปลี่ยนแปลงผู้ให้บริการด้านการเข้ารหัส
บริบท
การเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลงต่อเนื่องจาก Edge สำหรับ Private Cloud 4.53.00 ใน Edge for Private Cloud 4.53.00 มีการอัปเดตผู้ให้บริการการเข้ารหัสภายในจาก Bouncy Castle (BC) เป็น Bouncy Castle FIPS (BCFIPS) เพื่อเปิดใช้การรองรับ FIPS
การเปลี่ยนแปลง
หากนโยบาย JavaCallout อาศัยการใช้ผู้ให้บริการ BC เดิม โดยเฉพาะเมื่อใช้ฟังก์ชันความปลอดภัยที่ได้รับการเสริมความแข็งแกร่งในผู้ให้บริการ BCFIPS (เช่น การใช้คู่คีย์ทั่วไปสำหรับการเข้ารหัสและการลงนาม) คุณจะต้องปรับปรุงนโยบาย JavaCallout ดังกล่าว นโยบาย JavaCallout ที่พยายามโหลดผู้ให้บริการการเข้ารหัส Bouncy Castle โดยใช้ชื่อ BC อาจล้มเหลวเนื่องจากผู้ให้บริการเริ่มต้นมีการเปลี่ยนแปลง นโยบายดังกล่าวที่ใช้ผู้ให้บริการ BC อาจหยุดทำงานในภายหลัง การติดตั้งใช้งานที่กำหนดเองซึ่งอิงตามผู้ให้บริการ BC แบบเดิมจะเข้าถึงไม่ได้อีกต่อไป และจะต้องได้รับการตรวจสอบและติดตั้งใช้งานใหม่
การลดปัญหา
วิธีแก้ปัญหาที่แนะนำคือการใช้ผู้ให้บริการ BCFIPS การติดตั้งใช้งาน JavaCallout ที่กำหนดเองซึ่งอิงตามผู้ให้บริการรายเก่าจะต้องได้รับการตรวจสอบและติดตั้งใช้งานอีกครั้งโดยใช้ผู้ให้บริการ FIPS ของ Bouncy Castle ซึ่งเข้าถึงได้โดยใช้สตริง "BCFIPS"
เครื่องมือตรวจหาการเปลี่ยนแปลง
เราได้สร้างเครื่องมือตรวจหาการเปลี่ยนแปลงเพื่อระบุพร็อกซี Apigee, นโยบาย, โฟลว์ที่ใช้ร่วมกันซึ่งอาจได้รับผลกระทบระหว่างและหลังการเปลี่ยนไปใช้ Edge for Private Cloud 4.53.01 เครื่องมือนี้จะสร้างรายงานที่แสดงรายละเอียดของพร็อกซีที่ใช้งาน โฟลว์ที่แชร์ และ OpenLDAP ที่ได้รับผลกระทบจากการเปลี่ยนแปลง รวมถึงให้คำแนะนำไปยังคำแนะนำและกลยุทธ์ที่เฉพาะเจาะจงซึ่งเกี่ยวข้องกับพร็อกซีหรือโฟลว์ที่แชร์ที่ระบุ
ข้อกำหนดเบื้องต้น
- ต้องใช้เครื่องที่ใช้ RHEL เพื่อเรียกใช้เครื่องมือนี้
- ต้องติดตั้งและกำหนดค่า JRE 8 อย่างถูกต้องในเครื่องเสมือนโฮสต์เพื่ออนุญาตให้สคริปต์ของเครื่องมือทำงาน
- เครื่องมือนี้ต้องใช้ปลายทาง (URL) ที่ถูกต้องของเซิร์ฟเวอร์การจัดการและข้อมูลเข้าสู่ระบบของผู้ดูแลระบบที่ถูกต้องสำหรับการตรวจสอบสิทธิ์และการดึงข้อมูล
- เครื่องมือนี้ต้องมีสิทธิ์เข้าถึงไดเรกทอรีการทำงานที่กำหนด (เช่น
/tmp
) เพื่อแยกบันเดิล สร้างบันทึก และจัดเก็บเอาต์พุต ตรวจสอบว่าไดเรกทอรีนี้มีพื้นที่ว่างในดิสก์เพียงพอและมีสิทธิ์อ่าน/เขียนที่เหมาะสม - เครื่องมือนี้ต้องใช้ไฟล์ LDIF โดยใช้คำสั่ง
ldapsearch
ในส่วน OpenLDAP change - Extract LDAP data เพื่อตรวจหา RDN ที่มีความยาวมากกว่า 241 อักขระ / ไบต์
การเรียกใช้เครื่องมือ
หลังจากทำตามข้อกำหนดเบื้องต้นทั้งหมดที่ระบุไว้ข้างต้นแล้ว ให้ดาวน์โหลดเครื่องมือพร้อมระบุชื่อผู้ใช้และรหัสผ่านจาก 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]
หากต้องการตรวจหารายการ LDAP ของ RDN ขนาดใหญ่ ให้เรียกใช้คำสั่งต่อไปนี้
./change-detector --username [your_username] --mgmt-url [MGMT url] --ldif-file [LDIF_file]
เครื่องมือจะสร้างเอาต์พุตในรูปแบบ JSON หรือ CSV ซึ่งสามารถใช้ได้โดยตรงหรือนำเข้าไปยังเครื่องมือที่มนุษย์อ่านได้ เช่น Google ชีต
ทำความเข้าใจเอาต์พุตของเครื่องมือ
องค์กร
ซึ่งจะชี้ไปยังชื่อขององค์กรที่มีอาร์ติแฟกต์ สำหรับการเปลี่ยนแปลง OpenLDAP ค่านี้จะเป็น None
สภาพแวดล้อม
สภาพแวดล้อมที่เฉพาะเจาะจง (เช่น dev, test, prod) ภายในองค์กร สำหรับการเปลี่ยนแปลง OpenLDAP ค่านี้จะเป็น None
สำหรับการเปลี่ยนแปลง Java Callout หาก Artifact Type=env-level-jar
ฟิลด์นี้จะเป็น None
ชื่ออาร์ติแฟกต์
ฟิลด์นี้จะบอกชื่อของพร็อกซี/โฟลว์ที่แชร์ สำหรับการเปลี่ยนแปลง OpenLDAP ฟิลด์นี้จะแสดงเอนทิตี LDAP ของ RDN
สำหรับการเปลี่ยนแปลง Java Callout หาก Artifact Type=env-level-jar
หรือ org-level-jar
ฟิลด์นี้จะเป็น None
ประเภทอาร์ติแฟกต์
- สําหรับการเปลี่ยนแปลง OAS และ JSON คอลัมน์นี้จะระบุประเภทของอาร์ติแฟกต์ พร็อกซี หรือโฟลว์ที่แชร์
- สำหรับการเปลี่ยนแปลง Java Callout คอลัมน์นี้จะให้รายละเอียดเกี่ยวกับสถานที่หรือระดับที่อัปโหลด JAR ที่ได้รับผลกระทบ จัดเก็บทรัพยากร (ไฟล์ JAR) ได้ที่ระดับใดระดับหนึ่งใน 3 ระดับ ได้แก่
org-level
,env-level
,proxy-level
- สำหรับการเปลี่ยนแปลง OpenLDAP ช่องนี้จะระบุไฟล์ LDIF ที่ใช้ในเครื่องมือ
การแก้ไข
ซึ่งจะชี้ไปยังการแก้ไขที่ใช้งานจริงของพร็อกซี/โฟลว์ที่แชร์ที่ได้รับผลกระทบ สำหรับการเปลี่ยนแปลง OpenLDAP จะเป็น None
ชื่อนโยบาย
ชื่อของนโยบายที่เฉพาะเจาะจงซึ่งระบบระบุว่าเป็นปัญหาที่อาจเกิดขึ้น สำหรับการเปลี่ยนแปลง OpenLDAP จะเป็น None
ประเภทนโยบาย
โดยจะชี้ไปยังประเภทของนโยบาย สำหรับการเปลี่ยนแปลง OpenLDAP จะเป็น None
ประเภทของผลกระทบ
- ฟิลด์นี้อธิบายประเภทการเปลี่ยนแปลงที่เฉพาะเจาะจงซึ่งตรวจพบในพร็อกซี/โฟลว์ที่ใช้ร่วมกัน
- สำหรับการเปลี่ยนแปลง Java Callout การตรวจหาการเปลี่ยนแปลงที่เกี่ยวข้องกับ Java Callout เครื่องมือจะชี้ไปยัง Java Callout ที่ได้รับผลกระทบซึ่งมีการอ้างอิงไปยัง JAR ที่อยู่ในไดเรกทอรี
$APIGEE_ROOT/edge-message-processor/lib/deprecated
ของ Edge สำหรับ Private Cloud เวอร์ชันเก่าในลักษณะต่อไปนี้ในคอลัมน์นี้ - สำหรับการเปลี่ยนแปลง OpenLDAP ฟิลด์นี้จะแสดงหาก RDN ของเอนทิตี LDAP ใดๆ เกินกว่า 241 ไบต์หรืออักขระ
deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR
ฟิลด์ที่ได้รับผลกระทบ
- สำหรับการเปลี่ยนแปลง OAS ช่องนี้คือชื่อของตัวแปรที่ใช้ในแท็กแหล่งที่มาของนโยบาย
- สำหรับการเปลี่ยนแปลง JSON ฟิลด์นี้จะแสดงนิพจน์หรือองค์ประกอบ JSONPath ที่แน่นอนซึ่งได้รับการแจ้งว่าอาจเป็นปัญหา
- สำหรับการเปลี่ยนแปลง Java Callout ฟิลด์นี้จะมีรายละเอียดของคลาสที่แน่นอนและชื่อของ JAR ที่เกี่ยวข้อง (อยู่ในไดเรกทอรี
$APIGEE_ROOT/edge-message-processor/lib/deprecated
ของ Private Cloud เวอร์ชันเก่ากว่า) ที่ใช้/อ้างอิงโดย JAR ของ JavaCallout ที่ได้รับผลกระทบ ซึ่งจะทำให้เกิดข้อผิดพลาดเมื่ออัปเกรดเป็นเวอร์ชัน 4.53.01 หากไม่ได้ลดผลกระทบ - สำหรับการเปลี่ยนแปลง OpenLDAP ฟิลด์นี้จะแสดง RDN ของเอนทิตี LDAP ซึ่งมีขนาดเกินกว่า 241 ไบต์หรืออักขระ
['Detected use of class CLASS_NAME_1 from JAR_NAME_1', Detected use of class CLASS_NAME_2 from JAR_NAME_2', .. , .. , ]
ความแน่นอนของผลกระทบ
ฟิลด์นี้จะบอกเกี่ยวกับระดับความแน่นอนที่เครื่องมือตรวจพบรายการหนึ่งๆ ค่าสำหรับคอลัมน์นี้อาจเป็นสูงหรือปานกลาง (อาจมีการเพิ่มค่าอื่นๆ ในภายหลัง)
ค่า สูง หมายความว่าเครื่องมือได้พิจารณาแล้วว่ามีโอกาสสูงมากที่รายการจะทำให้แอปพลิเคชันหยุดทำงานหลังจากอัปเกรดเป็นเวอร์ชัน 4.53.01 ค่าปานกลางบ่งบอกว่าเครื่องมือไม่แน่ใจเกี่ยวกับการตรวจหา และจะต้องใช้กลยุทธ์เพิ่มเติมเพื่อทำการตัดสิน (เช่น บันทึกการติดตามเพื่อสังเกตตัวแปรที่แก้ไขแล้วในระหว่างการดำเนินการพร็อกซี)
- การตรวจหาที่เกี่ยวข้องกับการเปลี่ยนแปลง JavaCallout และ OpenLDAP จะมีค่า High สำหรับคอลัมน์ความแน่นอนของผลกระทบเสมอ
เอกสารประกอบ
คอลัมน์นี้มีไฮเปอร์ลิงก์ไปยังเอกสารประกอบของ Apigee (ส่วนที่เกี่ยวข้องของบทความนี้) ซึ่งอธิบายปัญหาและขั้นตอนการลดผลกระทบ