Khắc phục sự cố liên quan đến lỗi thời gian chạy của chính sách FlowChú thích

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

SharedFlowNotFound

Mã lỗi

flow.SharedFlowNotFound

Nội dung phản hồi lỗi

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

Nguyên nhân có thể xảy ra

Nguyên nhân có thể dẫn đến lỗi này là:

Nguyên nhân Mô tả
Không có quy trình được chia sẻ Luồng được chia sẻ không tồn tại.
Không triển khai quy trình dùng chung Luồng dùng chung tồn tại nhưng không được triển khai.

Nguyên nhân: Không có luồng dùng chung

Trong chính sách Chú thích luồng, nếu luồng dùng chung được xác định trong phần tử <SharedFlowBundle> không tồn tại trong môi trường, thì lỗi này sẽ xảy ra.

Ví dụ: nếu phần tử <SharedFlowBundle> trong chính sách Chú thích luồng chứa một luồng dùng chung có tên là SharedFlow_Sample và nếu luồng dùng chung này không tồn tại trong môi trường thì lỗi sẽ xảy ra.

Thông báo lỗi mẫu

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

Chẩn đoán

  1. Xác định luồng dùng chung không tồn tại. Bạn có thể tìm thấy thông tin này trong phần tử faultstring của phản hồi lỗi. Ví dụ: trong faultstring sau đây, tên luồng dùng chung là SharedFlow_Sample:

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. Kiểm tra tất cả các chính sách Chú thích luồng trong Proxy API cụ thể nơi xảy ra lỗi. Kiểm tra xem có chính sách Chú thích luồng nào trong đó phần tử <SharedFlowBundle> được chỉ định bằng tên quy trình đã xác định trong bước #1 ở trên hay không.

    Ví dụ: chính sách sau đây chỉ định <SharedFlowBundle>SharedFlow_Sample, khớp với nội dung trong chuỗi lỗi.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
       <DisplayName>Auth Flow Callout</DisplayName>
       <SharedFlowBundle>SharedFlow_Sample</SharedFlowBundle>
    </FlowCallout>
    
  3. Trong giao diện người dùng Edge, hãy kiểm tra xem luồng chia sẻ này có tồn tại trong API > Luồng dùng chung hay không. Nếu mã này không tồn tại thì đó chính là nguyên nhân gây ra lỗi. (Lưu ý rằng trong giao diện người dùng New Edge, bạn có thể tìm thấy Luồng dùng chung trong thẻ Phát triển.)

    Ví dụ: trong ảnh chụp màn hình dưới đây, luồng dùng chung SharedFlow_Sample không tồn tại.

    Vì luồng dùng chung này không tồn tại nên bạn sẽ nhận được mã lỗi:

    flow.SharedFlowNotFound
    

Độ phân giải

Đảm bảo rằng luồng dùng chung được chỉ định trong phần tử <SharedFlowBundle> trong chính sách Chú thích luồng, tồn tại và được triển khai trong môi trường cụ thể nơi yêu cầu API được thực thi.

Bạn có thể chọn một trong các cách sau để giải quyết vấn đề:

  1. Tạo một luồng dùng chung có tên là SharedFlow_Sample như bên dưới rồi triển khai luồng này trong môi trường kiểm thử như hình bên dưới:

  2. Sử dụng một Luồng dùng chung hiện có và được triển khai trong môi trường thử nghiệm theo chính sách Chú thích luồng. Ví dụ: bạn có thể chỉ định SharedFlow_demo trong chính sách Chú thích luồng.

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

    Nếu thực hiện lệnh gọi API đến môi trường kiểm thử, bạn sẽ không thấy lỗi nữa vì Chú thích luồng cũng được triển khai cho môi trường kiểm thử.

Nguyên nhân: Chưa triển khai được quy trình dùng chung

Nếu luồng dùng chung được chỉ định trong phần tử <SharedFlowBundle> của chính sách Chú thích luồng không được triển khai, thì lỗi này sẽ xảy ra.

Ví dụ: nếu phần tử <SharedFlowBundle> trong chính sách Chú thích luồng chứa một luồng dùng chung có tên là SharedFlow_example. Luồng này không được triển khai trong môi trường cụ thể mà yêu cầu API được thực hiện, thì lỗi sẽ xảy ra.

Thông báo lỗi mẫu

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

Chẩn đoán

  1. Xác định luồng dùng chung chưa được triển khai. Bạn có thể tìm thấy thông tin này trong phần tử faultstring của phản hồi lỗi. Ví dụ: trong faultstring sau đây, tên luồng dùng chung là Shared-Flow_example:

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

  2. Trong giao diện người dùng Edge, hãy kiểm tra xem quy trình dùng chung này đã được triển khai hay chưa.

    Ví dụ: bạn sẽ thấy trong ảnh chụp màn hình bên dưới rằng luồng dùng chung SharedFlow_example tồn tại nhưngchưa được triển khai.

    Vì luồng dùng chung này không được triển khai, nên bạn sẽ nhận được mã lỗi:

    flow.SharedFlowNotFound
    

Độ phân giải

Đảm bảo rằng luồng dùng chung được chỉ định trong phần tử <SharedFlowBundle> trong chính sách Chú thích luồng, tồn tại và được triển khai trong môi trường cụ thể nơi yêu cầu API được thực thi.

Để sửa ví dụ trên, hãy triển khai luồng dùng chung có tên là SharedFlow_example trong môi trường kiểm thử như minh hoạ dưới đây:

Nếu thực hiện lệnh gọi API đến môi trường kiểm thử, bạn sẽ không thấy lỗi nữa vì Chú thích luồng cũng được triển khai cho môi trường kiểm thử.