การแก้ปัญหาข้อผิดพลาดเกี่ยวกับรันไทม์ของนโยบาย Flowไฮไลต์

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

SharedFlowNotFound

รหัสข้อผิดพลาด

flow.SharedFlowNotFound

เนื้อหาการตอบกลับข้อผิดพลาด

{
    "fault": {
        "faultstring": "Shared Flow shared_flow_name Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

สาเหตุที่เป็นไปได้

สาเหตุที่เป็นไปได้สำหรับข้อผิดพลาดนี้คือ

สาเหตุ คำอธิบาย
ขั้นตอนที่แชร์ไม่พร้อมใช้งาน ไม่มีโฟลว์ที่แชร์
ไม่ได้ใช้งานขั้นตอนที่แชร์ ขั้นตอนที่แชร์มีอยู่แต่ยังไม่ได้ทำให้ใช้งานได้

สาเหตุ: ขั้นตอนที่แชร์ไม่พร้อมใช้งาน

ในนโยบายการเรียกโฟลว์ หากไม่มีโฟลว์ที่แชร์ซึ่งกำหนดไว้ภายในองค์ประกอบ <SharedFlowBundle> อยู่ในสภาพแวดล้อม ก็เกิดข้อผิดพลาดนี้ขึ้น

ตัวอย่างเช่น หากองค์ประกอบ <SharedFlowBundle> ในนโยบายการเรียกโฟลว์มีโฟลว์ที่แชร์ชื่อ SharedFlow_Sample และหากไม่มีโฟลว์ที่แชร์นี้ในสภาพแวดล้อม ก็จะเกิดข้อผิดพลาดขึ้น

ตัวอย่างข้อความแสดงข้อผิดพลาด

{
    "fault": {
        "faultstring": "Shared Flow SharedFlow_Sample Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

การวินิจฉัย

  1. ระบุกระบวนการที่ใช้ร่วมกันซึ่งไม่มีอยู่ ซึ่งจะอยู่ในองค์ประกอบ faultstring ของการตอบกลับข้อผิดพลาด ตัวอย่างเช่น ใน faultstring ต่อไปนี้ ชื่อโฟลว์ที่แชร์คือ SharedFlow_Sample

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. ตรวจสอบนโยบายการเรียกโฟลว์ทั้งหมดในพร็อกซี API ที่เกิดข้อผิดพลาด ตรวจสอบว่ามีนโยบายการเรียกโฟลว์ที่ระบุองค์ประกอบ <SharedFlowBundle> ด้วยชื่อโฟลว์ที่ระบุไว้ในขั้นตอนที่ 1 ด้านบนหรือไม่

    ตัวอย่างเช่น นโยบายต่อไปนี้ระบุ <SharedFlowBundle> เป็น SharedFlow_Sample ซึ่งตรงกับสิ่งที่อยู่ในสตริงข้อผิดพลาด

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
       <DisplayName>Auth Flow Callout</DisplayName>
       <SharedFlowBundle>SharedFlow_Sample</SharedFlowBundle>
    </FlowCallout>
    
  3. ใน Edge UI ให้ตรวจสอบว่ามีโฟลว์ที่แชร์นี้ใน API > โฟลว์ที่แชร์หรือไม่ หากไม่มี ข้อผิดพลาดนั้นเกิดจากสาเหตุนี้ (โปรดทราบว่าใน UI ใหม่ของ Edge UI คุณจะพบโฟลว์ที่แชร์ในแท็บพัฒนา)

    ตัวอย่างเช่น ในภาพหน้าจอที่แสดงด้านล่าง ไม่มีขั้นตอนที่แชร์ SharedFlow_Sample อยู่

    เนื่องจากไม่มีโฟลว์ที่แชร์นี้ คุณจะได้รับรหัสข้อผิดพลาด:

    flow.SharedFlowNotFound
    

ความละเอียด

ตรวจสอบว่าขั้นตอนที่แชร์ที่ระบุในองค์ประกอบ <SharedFlowBundle> ในนโยบายคำขอราคาเสนอโฟลว์มีอยู่ และทำให้ใช้งานได้ในสภาพแวดล้อมที่เจาะจงซึ่งมีการดำเนินการตามคำขอ API

คุณสามารถเลือกวิธีใดวิธีหนึ่งต่อไปนี้เพื่อแก้ไขปัญหา

  1. สร้างโฟลว์ที่แชร์ชื่อ SharedFlow_Sample ดังที่แสดงด้านล่าง และทำให้กระบวนการดังกล่าวใช้งานได้ดังที่แสดงด้านล่าง

  2. ใช้โฟลว์ที่แชร์อยู่แล้วซึ่งทำให้ใช้งานได้ในสภาพแวดล้อมการทดสอบในนโยบายการเรียกโฟลว์ ตัวอย่างเช่น คุณสามารถระบุ SharedFlow_demo ในนโยบายคำขอราคาเสนอโฟลว์ได้

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
      <DisplayName>Auth Flow Callout</DisplayName>
      <SharedFlowBundle>SharedFlow_demo</SharedFlowBundle>
    </FlowCallout>
    

    หากคุณเรียก API ไปยังสภาพแวดล้อมการทดสอบ คุณจะไม่เห็นข้อผิดพลาดอีกต่อไป เนื่องจากมีการเรียกโฟลว์ใช้งานได้ในสภาพแวดล้อมการทดสอบด้วยเช่นกัน

สาเหตุ: ใช้งานขั้นตอนที่แชร์ไม่ได้

หากไม่มีการติดตั้งใช้งานโฟลว์ที่แชร์ซึ่งระบุไว้ในองค์ประกอบ <SharedFlowBundle> ของนโยบายการเรียกโฟลว์ ข้อผิดพลาดนี้จะเกิดขึ้น

ตัวอย่างเช่น หากองค์ประกอบ <SharedFlowBundle> ในนโยบายการเรียกโฟลว์มีโฟลว์ที่แชร์ซึ่งมีชื่อว่า SharedFlow_example ซึ่งไม่ได้ใช้งานในสภาพแวดล้อมที่เจาะจงซึ่งมีการส่งคำขอ API แล้วจะเกิดข้อผิดพลาดขึ้น

ตัวอย่างข้อความแสดงข้อผิดพลาด

{
    "fault": {
        "faultstring": "Shared Flow Shared-Flow_example Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

การวินิจฉัย

  1. ระบุขั้นตอนที่ใช้งานร่วมกันซึ่งยังไม่ได้นำไปใช้งาน ซึ่งจะอยู่ในองค์ประกอบ faultstring ของการตอบกลับข้อผิดพลาด ตัวอย่างเช่น ใน faultstring ต่อไปนี้ ชื่อโฟลว์ที่แชร์คือ Shared-Flow_example

    "faultstring": "Shared Flow Shared-Flow_example Not Found"

  2. ใน Edge UI ให้ตรวจสอบว่ามีการติดตั้งใช้งานขั้นตอนที่แชร์นี้หรือไม่

    เช่น คุณจะเห็นในภาพหน้าจอด้านล่างว่ามีขั้นตอนที่แชร์ SharedFlow_example อยู่ แต่ไม่ได้มีการทำให้ใช้งานได้

    เนื่องจากขั้นตอนที่แชร์นี้ไม่พร้อมใช้งาน คุณจะได้รับรหัสข้อผิดพลาด:

    flow.SharedFlowNotFound
    

ความละเอียด

ตรวจสอบว่าขั้นตอนที่แชร์ที่ระบุในองค์ประกอบ <SharedFlowBundle> ในนโยบายคำขอราคาเสนอโฟลว์มีอยู่ และทำให้ใช้งานได้ในสภาพแวดล้อมที่เจาะจงซึ่งมีการดำเนินการตามคำขอ API

หากต้องการแก้ไขตัวอย่างข้างต้น ให้ติดตั้งใช้งานขั้นตอนที่แชร์ที่เรียกว่า SharedFlow_example ในสภาพแวดล้อมการทดสอบดังที่แสดงด้านล่าง

หากคุณเรียก API ไปยังสภาพแวดล้อมการทดสอบ คุณจะไม่เห็นข้อผิดพลาดอีกต่อไป เนื่องจากมีการเรียกโฟลว์ใช้งานได้ในสภาพแวดล้อมการทดสอบด้วยเช่นกัน