Apigee Edge ไปยัง Antipattern สำหรับการย้ายข้อมูล Apigee X

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

ในฐานะลูกค้าปัจจุบันของ Apigee Edge คุณอาจเลือกที่จะย้ายข้อมูลการติดตั้งไปยัง Apigee X เพื่อใช้ประโยชน์จากความสามารถใหม่หรือความพร้อมใช้งานในภูมิภาคอื่น

หน้านี้อธิบายรูปแบบป้องกันในการกำหนดค่าที่คุณจะต้องจัดการก่อนย้ายข้อมูลไปยัง Apigee X รวมถึงการเปลี่ยนแปลงลักษณะการทำงานอื่นๆ ที่คุณควรทราบก่อนย้ายข้อมูล

รายการรูปแบบแอนทีปสำหรับ Apigee Edge ที่หลากหลายจะอธิบายแนวทางปฏิบัติในการใช้งานที่ควรหลีกเลี่ยงในทุกกรณี หน้านี้จะอธิบายแนวทางปฏิบัติแนะนำในการใช้งานที่ไม่แนะนำซึ่งจะบล็อกการย้ายข้อมูล โปรดแก้ปัญหานี้ทันทีเพื่อป้องกันปัญหาเมื่อย้ายข้อมูลไปยัง Apigee X

แอปที่ไม่มีผลิตภัณฑ์ API

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

มีแอปที่ไม่มีผลิตภัณฑ์ API

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

Apigee Edge Apigee X
คุณกำหนดค่าแอปและข้อมูลรับรองที่ไม่ได้เชื่อมโยงกับผลิตภัณฑ์ API ใดๆ ได้ แอปนี้มีสิทธิ์เข้าถึงผลิตภัณฑ์ API ทั้งหมดได้อย่างมีประสิทธิภาพ แอปแต่ละแอปต้องได้รับการกำหนดค่าให้เข้าถึงผลิตภัณฑ์ API อย่างน้อย 1 รายการ ไม่มีวิธีใดที่จะให้สิทธิ์เข้าถึงผลิตภัณฑ์ API ทั้งหมดโดยปริยาย คุณกำหนดค่าแอปให้มีสิทธิ์เข้าถึงผลิตภัณฑ์ API ทั้งหมดได้ แต่คุณต้องดำเนินการอย่างชัดเจน
ไม่มี

การแก้ไข: แอปที่ไม่มีผลิตภัณฑ์ API

เชื่อมโยงข้อมูลเข้าสู่ระบบแอปทั้งหมดกับผลิตภัณฑ์ API อย่างน้อย 1 รายการ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีดำเนินการนี้ โปรดดูลงทะเบียนแอปและจัดการคีย์ API

วิธีง่ายๆ คือการกำหนดสิทธิ์เข้าถึงผลิตภัณฑ์ API ทั้งหมดให้กับแอปแต่ละแอป ซึ่งเทียบเท่ากับสิ่งที่ทำได้ใน Apigee Edge ความท้าทายคือหากคุณต้องการใช้แนวทาง "สิทธิ์ต่ำสุด" คุณจะต้องกำหนดรายการผลิตภัณฑ์ API ขั้นต่ำที่ข้อมูลเข้าสู่ระบบแต่ละแอปต้องมีสิทธิ์เข้าถึง คุณวิเคราะห์ข้อมูลนี้ได้ด้วยรายงานข้อมูลวิเคราะห์ของ Apigee Edge ตามรหัสไคลเอ็นต์

แคชที่ไม่มีเวลาหมดอายุ

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

แคชไม่มีเวลาหมดอายุ

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

Apigee Edge Apigee X
รองรับการสร้าง การอัปเดต และการลบข้อบ่งชี้ทรัพยากรแคช ไม่รองรับการสร้าง การอัปเดต หรือการลบข้อบ่งชี้ทรัพยากรแคช
ไม่ได้

การแก้ไข: แคชที่ไม่มีเวลาหมดอายุ

กำหนดเวลาหมดอายุสำหรับแคชทั้งหมด

นิพจน์ตัวกรอง JSONPath บนเส้นทางที่ไม่มีกำหนด

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

สําหรับเส้นทางที่ไม่ใช่แบบเต็ม การค้นหาผลลัพธ์ของนิพจน์ตัวกรองไม่ได้เป็นส่วนหนึ่งของข้อกําหนด JSONPath โปรดดู https://goessner.net/articles/JsonPath/

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

เมื่อไปยังโครงสร้างตัวอย่างนี้

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

ด้วยนิพจน์ $..books[?(@.name == 'A')][0]

Apigee Edge Apigee X
เอาต์พุต ‘{"name": "A"}’ เอาต์พุต []

ด้วยนิพจน์ $..books[?(@.name == 'A')][0].name

Apigee Edge Apigee X
เอาต์พุต "A" เอาต์พุต []
มี

การแก้ไข: นิพจน์ตัวกรอง JSONPath บนเส้นทางที่ไม่มีกำหนด

ค้นหาและแทนที่การค้นหาที่ได้รับผลกระทบ

นิพจน์ JSONPath สำหรับดัชนีที่ไม่มีอยู่

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

นิพจน์ JSONPath ที่มีดัชนีที่ไม่แสดงจะมีลักษณะการทำงานที่ต่างกันใน Apigee X กับ Apigee Edge Apigee X แสดงผลข้อผิดพลาด PathNotFoundException เมื่อไม่พบเส้นทาง

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

เมื่อไปยังโครงสร้างตัวอย่างนี้

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

ด้วยนิพจน์ $.books[3]

Apigee Edge Apigee X
เอาต์พุต null เอาต์พุต PathNotFoundException ผิดพลาด
มี

การแก้ไข: นิพจน์ JSONPath สำหรับดัชนีที่ไม่มีอยู่

ค้นหาและแทนที่การค้นหาที่ได้รับผลกระทบ

นิพจน์ JSONPath ที่มีดัชนีอาร์เรย์ไม่ส่งคืนออบเจ็กต์อาร์เรย์

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

นิพจน์ JSONPath ที่มีดัชนีอาร์เรย์หรือสไลซ์จะแสดงผลออบเจ็กต์อาร์เรย์ใน Apigee X

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

เมื่อไปยังโครงสร้างตัวอย่างนี้

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

ด้วยนิพจน์ $.books

Apigee Edge Apigee X
เอาต์พุต {“name”:”A”, “name”: “B”} เอาต์พุต [{“name”:”A”, “name”: “B”}]

ด้วยนิพจน์ $.books[-1]

Apigee Edge Apigee X
เอาต์พุต {“name”: “B”} เอาต์พุต [{“name”: “B”}]

ด้วยนิพจน์ $.books[-2:]

Apigee Edge Apigee X
เอาต์พุต {“name”:”A”, “name”: “B”} เอาต์พุต [{“name”:”A”, “name”: “B”}]
มี

การแก้ไข: นิพจน์ JSONPath ที่มีดัชนีอาร์เรย์ไม่ส่งคืนออบเจ็กต์อาร์เรย์

ค้นหาและแทนที่นิพจน์ที่อาจแสดงผลลัพธ์ที่แตกต่างกันหลังจากอัปเกรด

การจำกัดชื่อคีย์สโตร์

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

ชื่อคีย์สโตร์ของ Apigee X มีได้เฉพาะตัวอักษร ตัวเลข และขีดกลางเท่านั้น ชื่อคีย์สโตร์ของ Edge ไม่ได้กำหนดข้อจำกัดเหล่านี้

ไม่ได้

การแก้ไข: การจำกัดชื่อคีย์สโตร์

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

ใช้งานเส้นทางฐานหลายเส้นทางสำหรับพร็อกซี API

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

มีการแก้ไขพร็อกซี API หลายรายการในสภาพแวดล้อมการทำงาน และแต่ละการแก้ไขมีเส้นทางฐานต่างกัน

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

Apigee Edge Apigee X
รองรับการติดตั้งใช้งานการแก้ไขพร็อกซี API หลายรายการ โดยที่การแก้ไขแต่ละรายการมีเส้นทางฐานต่างกันได้ ไม่รองรับการติดตั้งใช้งานการแก้ไขพร็อกซี API หลายรายการ แม้ว่าพร็อกซีจะมีเส้นทางฐานแตกต่างกัน
ไม่ได้

การแก้ไข: ใช้งานเส้นทางฐานหลายเส้นทางสำหรับพร็อกซี API

อัปเดต Bundle ทั้งหมดเพื่อให้มีการติดตั้งใช้งานการแก้ไขเพียง 1 รายการกับสภาพแวดล้อม โดยไม่คำนึงถึงเส้นทางฐาน

ข้อความ HTTP ที่ไม่เป็นไปตามนโยบาย

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

ไคลเอ็นต์หรือพร็อกซี API ส่งข้อความ (คำขอหรือการตอบกลับ) ที่ไม่เป็นไปตามมาตรฐาน HTTP เช่น ชื่อส่วนหัวที่ไม่ถูกต้อง มีส่วนหัวที่ซ้ำในส่วนหัวที่ถูกจำกัด และอื่นๆ

คุณย้ายข้อมูลไปยัง Apigee X ไม่ได้หากการดำเนินการ API มีข้อผิดพลาดต่อไปนี้อย่างน้อย 1 ข้อ

  • INVALID_CHARACTERS_IN_HEADER
  • MISSING_COLON
  • MULTIPLE_CONTENT_LENGTH
  • CONTENT_LENGTH_NOT_INTEGER
  • INVALID_UPGRADE
  • URL_HEADER_SIZE_TOO_LONG
  • BODY_NOT_ALLOWED
  • UNSUPPORTED_HTTP_VERSION
  • ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT
  • UNSUPPORTED_RESPONSE_PREFIX
อาจจะได้

การแก้ไข: ข้อความ HTTP ที่ไม่เป็นไปตามนโยบาย

คุณต้องแก้ไขข้อผิดพลาดในโปรโตคอล HTTP ก่อนย้ายข้อมูลไปยัง Apigee X หากข้อผิดพลาดเกิดจากแอปพลิเคชันไคลเอ็นต์ คุณต้องขอให้นักพัฒนาแอปไคลเอ็นต์แก้ไขปัญหา

เวลาหมดอายุของโทเค็น OAuth 2.0 ไม่ถูกต้อง

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

ขีดจำกัดการหมดอายุของโทเค็น OAuth 2.0 อยู่นอกช่วงที่กำหนดไว้

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

Apigee Edge Apigee X
ขณะนี้ไม่มีข้อจำกัดเกี่ยวกับเวลาหมดอายุของโทเค็น OAuth 2.0 แต่มีการวางแผนการบังคับใช้ ดูหลักเกณฑ์ในหน้าส่วน OAuth ของขีดจำกัด คุณต้องตั้งค่าโทเค็นเพื่อการเข้าถึงและเวลาหมดอายุของโทเค็นสำหรับ OAuth 2.0 ช่วงที่รองรับมีดังนี้
  • 180 วินาที <= เวลาหมดอายุของโทเค็นเพื่อการเข้าถึง OAuth 2.0 <= 30 วัน
  • 1 วัน <= เวลาหมดอายุของโทเค็นการรีเฟรช OAuth 2.0 <= 2 ปี
ไม่ได้

การแก้ไข: เวลาหมดอายุของโทเค็น OAuth 2.0 ไม่ถูกต้อง

ใช้นโยบาย OAuthV2 และระบุเวลาหมดอายุใน <ExpiresIn> และ <RefreshTokenExpiresIn>

เกินขีดจำกัดผลิตภัณฑ์แล้ว

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

การกำหนดค่าของ Apigee Edge ไม่เป็นไปตามขีดจำกัดผลิตภัณฑ์ที่กำหนดไว้ มีการบังคับใช้ขีดจำกัดผลิตภัณฑ์บางอย่างที่บันทึกไว้แต่ไม่ได้บังคับใช้ใน Apigee Edge ใน Apigee X

ไม่ได้

การแก้ไข: ผลิตภัณฑ์เกินขีดจำกัดแล้ว

แก้ไขการใช้งานที่เกินขีดจํากัดผลิตภัณฑ์ก่อนย้ายข้อมูลไปยัง Apigee X

นโยบาย ServiceAPI ที่มีทั้งตัวระบุการเชื่อมต่อปลายทางและเส้นทางเป้าหมาย

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

ในนโยบาย Serviceส่วนขยายไฮไลต์ องค์ประกอบ <LocalTargetConnection> ควรมีองค์ประกอบ <APIProxy> และ <ProxyEndpoint> หรือองค์ประกอบ <Path> แต่ต้องไม่มีทั้ง 2 องค์ประกอบ ดูข้อมูลเพิ่มเติมได้ที่องค์ประกอบ <LocalTargetConnection>

Apigee Edge ได้บันทึกข้อกำหนดนี้ แต่ไม่ได้บังคับใช้ข้อกำหนดดังกล่าว Apigee X จะหยุดการประมวลผลหากพบ <LocalTargetConnection> ที่มีการกำหนดค่าทั้ง 2 รายการ

ไม่ได้

การแก้ไข: นโยบาย ServiceAPI ที่มีทั้งตัวระบุการเชื่อมต่อปลายทางและเส้นทางเป้าหมาย

ตรวจสอบการกำหนดค่านโยบาย Serviceส่วนขยายไฮไลต์ และนำการกำหนดค่า <LocalTargetConnection> ที่ไม่เป็นไปตามข้อกำหนดออก

การจำกัดชื่อเซิร์ฟเวอร์เป้าหมาย

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

ชื่อเซิร์ฟเวอร์เป้าหมายของ Apigee X มีได้เฉพาะตัวอักษร ตัวเลข ขีดกลาง และจุด ชื่อเซิร์ฟเวอร์เป้าหมาย Edge ไม่ได้กำหนดข้อจำกัดเหล่านี้

ไม่ได้

การแก้ไข: การจำกัดชื่อเซิร์ฟเวอร์เป้าหมาย

ตรวจสอบชื่อเซิร์ฟเวอร์เป้าหมายและอัปเดตชื่อเพื่อนำอักขระที่ไม่รองรับออก หากจำเป็น

ใบรับรองการทดลองใช้ในโฮสต์เสมือน

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

โฮสต์เสมือนอย่างน้อย 1 รายการใช้ใบรับรอง "ช่วงทดลองใช้ฟรี" ที่ Apigee มีให้ ซึ่งจะทำให้โฮสต์เสมือนตอบกลับคำขอในโดเมนต่างๆ เช่น ORG-ENV.apigee.net

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

Apigee Edge Apigee X
กำหนดค่า vhost "เริ่มต้น" โดยอัตโนมัติให้รองรับชื่อโดเมนของรูปแบบ ORG-ENV.apigee.net มีใบรับรองไวลด์การ์ดหรือที่เรียกว่า "ใบรับรองช่วงทดลองใช้ฟรี" ที่อนุญาตให้ใช้ TLS ในโดเมนเหล่านี้ โดเมน Apigee เดิมของรูปแบบ ORG-ENV.apigee.net จะไม่พร้อมใช้งานใน Apigee X คุณต้องกำหนดค่าชื่อโดเมนของคุณเองและจัดสรรใบรับรองอย่างเหมาะสม
มี

การแก้ปัญหา: ใบรับรองการทดลองใช้ในโฮสต์เสมือน

คุณต้องกำหนดค่าโดเมนของคุณเองและจัดสรรใบรับรองอย่างเหมาะสม

ต้องแก้ไขแอปพลิเคชันไคลเอ็นต์ที่ใช้ชื่อโดเมนเดิมของแบบฟอร์ม ORG-ENV.apigee.net เพื่อเรียกใช้โดเมนใหม่

DNS ไม่ได้รับการแก้ไข

สรุป ต้องเปลี่ยนแปลงฝั่งไคลเอ็นต์ไหม ความละเอียด

ปลายทางเป้าหมายมีชื่อโดเมนที่ยังไม่ได้แก้ไข

ความแตกต่างระหว่าง Apigee Edge และ Apigee X มีดังนี้

Apigee Edge Apigee X
หากการแปลง DNS ไม่สำเร็จ Apigee จะใส่ .apigee.com ต่อท้ายชื่อโดเมนและแปลง DNS ให้สำเร็จด้วยโค้ดตอบกลับ 4xx หากแปลง DNS ไม่สำเร็จ Apigee จะไม่ดำเนินการตามคำขอและแสดงผลโค้ดตอบกลับ 5xx
ไม่ได้

การแก้ไข: DNS ไม่ได้รับการแก้ไข

อัปเดตปลายทางเป้าหมายด้วยชื่อโดเมนที่ถูกต้อง