19.03.01 - บันทึกประจำรุ่นของ Apigee Edge สำหรับระบบคลาวด์สาธารณะ

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

เมื่อวันอังคารที่ 3 ธันวาคม 2019 เราได้เริ่มเผยแพร่การอัปเดต Apigee Edge เวอร์ชันนี้สำหรับ Public Cloud (เผยแพร่ครั้งแรกเมื่อวันพฤหัสบดีที่ 18 เมษายน 2019)

ฟีเจอร์และการอัปเดตใหม่ๆ

ฟีเจอร์ใหม่และการอัปเดตในรุ่นนี้มีดังนี้

รหัสปัญหา ชื่อคอมโพเนนต์ คำอธิบาย
Apigee เริ่มเผยแพร่การอัปเดตต่อไปนี้เมื่อวันที่ 1 ตุลาคม 2019
110995050 รันไทม์ API

การจัดสรรภาระงาน - ควบคุมการนำเซิร์ฟเวอร์ที่ล้มเหลวออกได้มากขึ้น

เมื่อกำหนดค่า ตัวจัดสรรภาระงานสำหรับพร็อกซี API คุณจะกำหนดจำนวนการตอบกลับที่ล้มเหลว ก่อนที่ระบบจะนำเซิร์ฟเวอร์ออกจากรอบการจัดสรรภาระงานได้ การตอบกลับล้มเหลว หมายความว่า Apigee ไม่ได้รับการตอบกลับจากเซิร์ฟเวอร์เป้าหมาย เมื่อเกิดเหตุการณ์นี้ขึ้น ตัวนับความล้มเหลวจะเพิ่มขึ้น 1 เมื่อ Apigee ได้รับการตอบกลับจากเป้าหมาย แม้ว่าการตอบกลับจะเป็นข้อผิดพลาด HTTP (เช่น 500) ก็จะถือว่าเป็นการตอบกลับจากเซิร์ฟเวอร์เป้าหมาย และระบบจะรีเซ็ตตัวนับความล้มเหลว หากต้องการช่วยให้มั่นใจว่าการตอบกลับ HTTP ที่ไม่ดี (เช่น 500) จะเพิ่มตัวนับความล้มเหลวด้วย เพื่อนำเซิร์ฟเวอร์ที่ไม่สมบูรณ์ออกจากการหมุนเวียนการจัดสรรภาระงานโดยเร็วที่สุด คุณสามารถเพิ่มองค์ประกอบ <ServerUnhealthyResponse> ใหม่ ที่มีองค์ประกอบย่อย <ResponseCode> ลงในการกำหนดค่าตัวจัดสรรภาระงาน Edge จะนับการตอบกลับที่มีรหัสเหล่านั้นเป็นการตอบกลับที่ไม่สำเร็จด้วย

<HTTPTargetConnection>
  <LoadBalancer>
    <Algorithm>RoundRobin</Algorithm>
    <Server name="target1" />
    <Server name="target2" />
    <ServerUnhealthyResponse>
        <ResponseCode>500</ResponseCode>
        <ResponseCode>502</ResponseCode>
        <ResponseCode>503</ResponseCode>
    </ServerUnhealthyResponse>
    <MaxFailures>5</MaxFailures>
  </LoadBalancer>
</HTTPTargetConnection>
  
  
130416715 ความปลอดภัย

การปรับปรุงนโยบาย AccessControl

นโยบาย AccessControl จะกำหนดว่าที่อยู่ IP ใดที่สามารถเรียกพร็อกซี API ได้ องค์ประกอบใหม่ในนโยบายดังกล่าวช่วยให้นักพัฒนา API ควบคุมการระบุที่อยู่ IP ที่จะประเมินได้มากขึ้น

<IgnoreTrueClientIPHeader>: ไม่บังคับ (ค่าเริ่มต้นคือ false) เมื่อตั้งค่าเป็น "จริง" นโยบายจะละเว้นส่วนหัว True-Client-IP และ ประเมินที่อยู่ IP ในส่วนหัว X-Forwarded-For ตาม ลักษณะการประเมิน X-Forwarded-For ที่คุณกำหนดค่าไว้

<AccessControl async="false" continueOnError="false"
    enabled="true" name="Access-Control-1">
    <DisplayName>Access Control-1</DisplayName>
    <IgnoreTrueClientIPHeader>true</IgnoreTrueClientIPHeader>
    ...
</AccessControl>
Apigee ได้เผยแพร่การอัปเดตต่อไปนี้เมื่อวันที่ 18 เมษายน 2019
117558815,
119856499,
110548137,
79526748,
72989449,
70712859,
69049041
รันไทม์ API JWS และ JWT
เราได้เพิ่มนโยบายใหม่สำหรับการรองรับ JWS และปรับปรุงนโยบาย JWT ที่มีอยู่

ดูรายละเอียดได้ที่โพสต์ชุมชนนี้

122610025 รันไทม์ API อนุญาตให้ RaiseFault ตั้งค่าเหตุผลของข้อผิดพลาดและตัวแปรที่กำหนดเองได้เช่นเดียวกับใน AssignMessage

มีองค์ประกอบใหม่ 2 รายการในนโยบาย RaiseFault เพื่อให้การจัดการ FaultRules สะอาดตาและมีประสิทธิภาพมากขึ้น

  • ShortFaultReason เป็นบูลีนที่เมื่อตั้งค่าเป็น "จริง" จะใส่ชื่อนโยบายในตัวแปร fault.reason
  • AssignVariable ซึ่งมีอยู่ใน FaultResponse ช่วยให้คุณกำหนดการตอบกลับข้อผิดพลาดให้กับตัวแปรเพื่อให้นโยบายอื่นๆ ใช้ในโฟลว์พร็อกซี API ได้
121149811 เป้าหมายที่โฮสต์ ขีดจำกัดที่บังคับใช้กับเป้าหมายที่โฮสต์

ตอนนี้เราบังคับใช้ขีดจำกัดสำหรับเป้าหมายที่โฮสต์แล้ว ดูรายละเอียดขีดจำกัดได้ที่ขีดจำกัด

117659213 รันไทม์ API กำหนดพารามิเตอร์ช่วง IP ในนโยบาย AccessControl

ตอนนี้คุณสามารถใช้ตัวแปรเทมเพลตข้อความเพื่อตั้งค่าที่อยู่ IP และมาสก์ CIDR ในนโยบาย AccessControl ได้แล้ว ตัวอย่างเช่น หากต้องการจัดเก็บที่อยู่ IP และมาสก์ในแผนที่คีย์-ค่า (KVM) คุณสามารถดึงค่าเหล่านั้นจากตัวแปรที่ตั้งค่าไว้ในโฟลว์พร็อกซี API ได้ ซึ่งจะช่วยให้คุณเปลี่ยนค่า IP ได้ง่ายขึ้นในขณะรันไทม์โดยไม่ต้องเปลี่ยนการกำหนดค่านโยบาย

เช่น แทนที่จะเป็น

<MatchRule action="DENY">
    <SourceAddress mask="24">198.51.100.1</SourceAddress>
</MatchRule>
     

คุณสามารถกำหนดค่านโยบายได้ดังนี้ โดยสมมติว่าค่าต่างๆ จัดเก็บอยู่ใน KVM และคุณใช้นโยบาย KeyValueMapOperations เพื่อดึงค่าและกำหนดค่าเหล่านั้นให้กับ ตัวแปรที่แสดงที่นี่

<MatchRule action="DENY">
    <SourceAddress mask="{kvm.mask.ref}">{kvm.ip.ref}</SourceAddress>
</MatchRule>
     
113599885 การตรวจสอบ API บทบาทการตรวจสอบ API

การตรวจสอบ API มี 2 บทบาท ได้แก่ ผู้ดูแลระบบการตรวจสอบ API และผู้ใช้การตรวจสอบ API ซึ่งอธิบายไว้ในการเข้าถึงการตรวจสอบ API ซึ่งพร้อมให้บริการในเดือนธันวาคม 2018

132256772 รันไทม์ API เพิ่มส่วนหัว X-Apigee.Message-Timeout ลงในคำขอ

ตอนนี้ Edge จะเพิ่มส่วนหัว X-Apigee.Message-Timeout ในแต่ละคำขอ ส่วนหัวนี้ มีไว้สำหรับการใช้งานภายในของ Edge อย่าใช้ค่าในส่วนหัว X-Apigee.* ในพร็อกซี API เนื่องจากส่วนหัวเหล่านี้ไม่ได้มีไว้สำหรับลูกค้า และ Apigee สามารถนำออกหรือเปลี่ยนแปลงได้ทุกเมื่อ

78575018 Private Cloud / OPDK ข้ามเซิร์ฟเวอร์การจัดการเพื่อข้ามการลงทะเบียนที่เก็บข้อมูลเกตเวย์เมื่อมีพ็อดเกตเวย์หลายรายการ

แก้ไขข้อบกพร่องแล้ว

เราได้แก้ไขข้อบกพร่องต่อไปนี้ในรุ่นนี้ โดยหลักแล้ว รายการนี้มีไว้สำหรับผู้ใช้ที่ต้องการตรวจสอบว่าตั๋วแจ้งปัญหาได้รับการแก้ไขแล้วหรือไม่ ไม่ได้ออกแบบมาเพื่อให้ข้อมูลโดยละเอียดแก่ผู้ใช้ทุกคน

รหัสปัญหา ชื่อคอมโพเนนต์ คำอธิบาย
Apigee เริ่มเผยแพร่การแก้ไขต่อไปนี้ในวันที่ 3 ธันวาคม 2019
การแก้ไขด้านความปลอดภัย
Apigee เริ่มเผยแพร่การแก้ไขต่อไปนี้เมื่อวันที่ 29 ตุลาคม 2019
139381794 เซิร์ฟเวอร์การจัดการ

จัดการข้อผิดพลาดในการลบที่เก็บคีย์เพื่อไม่ให้การเรียก API ล้มเหลว

Apigee เริ่มเผยแพร่การแก้ไขต่อไปนี้เมื่อวันที่ 1 ตุลาคม 2019
140761319 รันไทม์ API

x-apigee.edge.execution.sense.action จะตั้งค่าเป็น null เสมอ

139091614 รันไทม์ API

ในนโยบาย ResponseCache, NIOTheread จะทํางานโดยไม่มีการปฏิเสธจาก thread pool

131331305 บริการหลัก

เครื่องมือส่งออกบันทึกหลายรายการในเราเตอร์ Apigee ทำให้มีการใช้งาน CPU สูง

136690640 รันไทม์ API

ข้อผิดพลาด 404 เป็นระยะๆ ในบางองค์กร

140948100 รันไทม์ API

โฟลว์ที่แชร์ที่ใช้งานไม่ได้ทำงานในเครื่องมือประมวลผลข้อความบางรายการ

Apigee ได้เผยแพร่การแก้ไขต่อไปนี้เมื่อวันที่ 13 กันยายน 2019
132654321 เซิร์ฟเวอร์การจัดการ บันทึกการตรวจสอบไม่แสดงข้อมูล
131246911 เซิร์ฟเวอร์การจัดการ สำหรับอีเมลนักพัฒนาแอปในพอร์ทัล ให้เปิดใช้การรองรับโดเมนใหม่กว่า เช่น *.games, *.asia
Apigee ได้เผยแพร่การแก้ไขต่อไปนี้เมื่อวันที่ 18 เมษายน 2019
123844598 เซิร์ฟเวอร์การจัดการ หลังจากผ่านไป 24 ชั่วโมงแล้ว คุณจะนำเข้าคีย์แอปที่ลบไปแล้วอีกครั้งไม่ได้
123588156 รันไทม์ API การนำส่วนหัว Content-Length ออกจากการตอบกลับล้มเหลวด้วย 304
122732400 รันไทม์ API การตั้งค่า api.timeout จะลบล้าง io.timeout.millis
122545281 รันไทม์ API การมาสก์ข้อมูล DebugSession สำหรับ JSON ควรพิจารณากรณีที่ jsonPayload เป็นอาร์เรย์
122355807 เซิร์ฟเวอร์การจัดการ ลักษณะการทำงานของสิทธิ์ที่ไม่ถูกต้องสำหรับผู้ใช้ที่มีหลายบทบาท
121393556 รันไทม์ API x_apigee_fault_code ตั้งค่าเป็น "org/codehaus/jackson/map/ObjectMapper"
120998548 UI ของ Edge ข้อความแสดงข้อผิดพลาดที่พิมพ์ผิด: ใบรับรองไม่ถูกต้องหรือไม่น่าเชื่อถือ
120990929 รันไทม์ API การตอบกลับ HTTP-413 จาก Nginx/Apigee-Router จะแสดงประเภทเซิร์ฟเวอร์
120799489 รันไทม์ API เมื่อใช้ httpClient กับ JavaScript Callback แบบไม่พร้อมกัน httpComplete() เอาต์พุต debugsession (trace) จะปิดเสียง
120794339 รันไทม์ API MP ที่เปลี่ยนแปลงสำหรับองค์กร
120277011 เซิร์ฟเวอร์การจัดการ ต้องมีการตรวจสอบอินพุต: ไม่สามารถติดตั้งใช้งานพร็อกซีได้หากชื่อโฮสต์ของเซิร์ฟเวอร์เป้าหมายมี **
119976417 การตรวจสอบ API การตรวจสอบ API แสดงเวลาในการตอบสนองของพร็อกซีสูง ในขณะที่ข้อมูลวิเคราะห์แสดงเวลาในการตอบสนองเป้าหมายสูง
119947481 รันไทม์ API ในสถานการณ์ข้อยกเว้น ระบบจะบันทึกเพย์โหลดที่จะมาสก์เป็นข้อความธรรมดา
119877164 Private Cloud / OPDK เราเตอร์สร้างข้อผิดพลาด โปรแกรมประมวลผลข้อความออฟไลน์เมื่อเปิดใช้ TLS

การแก้ไขนี้จะรวมอยู่ในการเผยแพร่ Edge for Private Cloud ครั้งถัดไป

119816218 รันไทม์ API แคชการตอบกลับจะละเว้นส่วนหัว Expires หากมีการเปลี่ยนเป็น 0 หรือตัวเลขติดลบ
119770242 รันไทม์ API การสื่อสารจากเราเตอร์ไปยัง MP ไม่สำเร็จทำให้เกิดการหยุดทำงานโดยสมบูรณ์: ข้อผิดพลาดใน PostClientFlow ทำให้เกิดลูปที่ไม่มีที่สิ้นสุด
119443145 เซิร์ฟเวอร์การจัดการ พร็อกซี API แสดงผล 404 เมื่อเปลี่ยนชื่อและติดตั้งใช้งาน ProxyEndpoint อีกครั้ง
119260281 รันไทม์ API ข้อผิดพลาดในบันทึก "แยกวิเคราะห์เป็นสตริง3000.0 ไม่ได้"
118743407 เซิร์ฟเวอร์การจัดการ ระยะเวลาการติดตั้งใช้งานพร็อกซี Apigee
118447966 รันไทม์ API ข้อผิดพลาดในข้อความ JavaScript ที่ไฮไลต์ภายใต้ MP รุ่น 180608_07
117549719 รันไทม์ API URI ของคำขอและเส้นทางฐานของพร็อกซีไม่ตรงกัน
117219520 รันไทม์ API MessageLogging: Syslog logger ใช้รูปแบบวันที่ที่ไม่ถูกต้องเป็นค่าเริ่มต้น แสดงมิลลิวินาทีไม่ถูกต้อง
117116435 รันไทม์ API ข้อผิดพลาดเป็นระยะๆ จากไฟล์ JavaScript
117091520 รันไทม์ API JavaCallout ทำงานไม่สำเร็จหลังจากเปิดตัว Message Processor เวอร์ชัน 18.06.08
116165318 รันไทม์ API การติดตั้งใช้งานชุดเดียวกันพร้อมกันทำให้เกิด RepositoryException
116055025 บริการ Configstore ตัวประมวลผลข้อความไม่มีโฮสต์เสมือนและแอปพลิเคชันหลังจากบูต
115614498 รันไทม์ API ต้องการการสนับสนุนสำหรับ ILB ใน OPDK

การแก้ไขนี้จะรวมอยู่ในการเผยแพร่ Edge for Private Cloud ครั้งถัดไป

113972537 รันไทม์ API P1 หลายรายการ - NullPointerException เกิดขึ้นจากโค้ด Node.js ในพร็อกซี Trireme - 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์
113904969 การสนับสนุนของ Apigee ปัญหาเกี่ยวกับการลบพร็อกซี API ในองค์กรเดโม
113554802 รันไทม์ API การตรวจสอบการยืนยัน SAML ล้มเหลวด้วย NullPointerException
113315737 เซิร์ฟเวอร์การจัดการ การติดตั้งใช้งานพร็อกซีไม่สำเร็จเนื่องจากไม่มีบันทึกการติดตั้งใช้งานใน Zookeeper
112767195 รันไทม์ API ข้อผิดพลาดของ DataStore เป็นระยะๆ ขณะเข้าถึงนโยบาย KVM
112162179 รันไทม์ API การแคชออบเจ็กต์ JavaScript โดยไม่แปลงเป็นสตริงอาจทำให้เกิดภาวะหยุดชะงัก
111860576 รันไทม์ API ข้อผิดพลาดที่ขาดหายไปในนโยบายโควต้า
111671525 เป้าหมายที่โฮสต์ โค้ดตอบกลับที่ไม่สำเร็จจากเป้าหมายที่โฮสต์จะทริกเกอร์โฟลว์ข้อผิดพลาดในพร็อกซี
111523933 ส่วนขยาย(ตัวเชื่อมต่อ) ปัญหาการแคชนโยบาย ExtensionCallout
111420263 รันไทม์ API ข้อยกเว้น ConcurrentModification ใน MessageLogging
110843526 เซิร์ฟเวอร์การจัดการ Management API สำหรับการสร้าง/อัปเดต Hook ของโฟลว์ควรตรวจสอบโฟลว์ที่แชร์
110805739 รันไทม์ API ไม่ได้ตั้งค่า TTL เป็น -1 ในขั้นตอน CPS เมื่อ Reuserefreshtoken เป็นจริงและไม่ได้ตั้งค่าการหมดอายุของโทเค็นการรีเฟรชอย่างชัดเจน
110429629 รันไทม์ API นโยบาย BasicAuthentication จะส่งตัวแปร request.headers.Authorization ไปยัง DebugSession
110425503 รันไทม์ API การโหลด Nginx ซ้ำทำให้เกิดปัญหาความพร้อมใช้งานของ MP
110311540 รันไทม์ API NPE เมื่อ MP ปิดตัวลง
110161455 รันไทม์ API AccessEntity ควรใช้วิธีการดึงข้อมูลตามชื่อแอปแทนการดึงข้อมูลแอปทั้งหมดสำหรับองค์กร CPS
90695522 รันไทม์ API context.proxyRequest.asForm generates java.lang.ArrayIndexOutOfBoundsException: 1
79734096 เซิร์ฟเวอร์การจัดการ บันทึกการตรวจสอบสำหรับพร็อกซีจะไม่กรองพร็อกซีอีกต่อไป
78105568 เซิร์ฟเวอร์การจัดการ การทำให้โฟลว์ที่แชร์ใช้งานได้จะไม่แสดงในการเรียก API การจัดการ /org/{org}/sharedflows/{sharedflow}/deployments หลังจากอัปเดตโฟลว์ที่แชร์ที่ทำให้ใช้งานได้
77528868 Trireme การถดถอยของ Trireme: สคริปต์ server.js ออกจากระบบโดยมีรหัสสถานะ -1: ไม่พบพร็อพเพอร์ตี้ 0
73766568 รันไทม์ API การอัปเกรด 170213_02 เป็น 171117_01 ทำให้เวลาในการตอบสนองของพร็อกซีที่มีเป้าหมาย Trireme/Node เพิ่มขึ้นอย่างมาก
72710481 รันไทม์ API CacheServiceImpl/CacheMemoryLimiter NullPointerException
68861063 รันไทม์ API จัดการ NPE ระหว่างการปิดเราเตอร์
68833699 รันไทม์ API ข้อมูลเกี่ยวกับพร็อกซี API บางครั้งไม่ได้นำออกจากแผนผังการจัดประเภท API
67377575 เป้าหมายที่โฮสต์ ข้อมูลที่บันทึกใน Analytics ไม่ตรงกับข้อมูลที่ส่งให้ลูกค้าในพร็อกซี Node.js
112481174 เป้าหมายที่โฮสต์ อย่าทำให้การเลิกใช้งานพร็อกซีล้มเหลวเนื่องจากข้อผิดพลาดของ Turbo
117171470 เป้าหมายที่โฮสต์ แก้ไขข้อความแสดงข้อผิดพลาด app.yaml ไม่ถูกต้อง
67169139 รันไทม์ API รูปแบบการประทับเวลาของ Syslog ในนโยบาย MessageLogging ไม่ถูกต้อง
67165418 รันไทม์ API ข้อผิดพลาดด้านการอนุญาตให้ใช้สิทธิเกี่ยวกับการใช้ตัวประมวลผลข้อความมากขึ้นแม้ว่าจะใช้จำนวนน้อยกว่าที่ได้รับอนุญาต

การแก้ไขนี้จะรวมอยู่ในการเผยแพร่ Edge for Private Cloud ครั้งถัดไป

67165195 รันไทม์ API ValidateSAMLAssertion ไม่ได้ยืนยันลายเซ็นในการยืนยันที่ฝังอยู่ในการตอบกลับที่ลงชื่อ
66214414 รันไทม์ API ตัวแปร currentstep.flowstate จะแสดงผล "SHARED_FLOW" เสมอเมื่ออ้างอิงจากโฟลว์ที่แชร์
65731656 รันไทม์ API API การป้องกันภัยคุกคามล้มเหลวเป็นระยะๆ สำหรับคำขอเดียวกัน
133197060 รันไทม์ API ได้รับข้อความ "57 Gateway timeout" จาก MP ไปยังเป้าหมาย
110535186 รันไทม์ API ServiceCallout ที่ไม่มีองค์ประกอบ Response และ HTTPTargetConnection ที่ชี้ไปยัง พร็อกซี: บางครั้งไม่มีการเรียก
132443137 รันไทม์ API เปลี่ยนลักษณะการทำงานของ Message Processor เพื่อไม่สนใจส่วนหัวที่ขึ้นต้นด้วย X-Apigee-* ดังนั้นคุณต้องปรับโครงสร้างโค้ดที่ใช้ส่วนหัว X-Apigee-* และแทนที่ส่วนหัวเหล่านั้นด้วยส่วนหัวที่รองรับ
125709964 รันไทม์ API ล้างแคชด้วย purgeChildEntries ไม่ทำงานตามที่คาดไว้