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ể gây ra lỗi này là:

Nguyên nhân Nội dung mô tả
Không có luồng dùng chung Luồng được chia sẻ không tồn tại.
Luồng dùng chung chưa được triển khai Luồng dùng chung tồn tại nhưng chưa đượ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.

Ví dụ về thông báo lỗi

{
    "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ả 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 nào về Chú thích luồng trong đó phần tử <SharedFlowBundle> được chỉ định bằng tên luồng được xác định ở 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 dùng chung này có tồn tại trong phần API > Luồng dùng chung hay không. Nếu không có, thì đó 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 được chia sẻ trong thẻ Phát triển.)

    Ví dụ: trong ảnh chụp màn hình bên dưới, luồng chia sẻ SharedFlow_Sample không tồn tại.

    Vì luồng chia sẻ này không tồn tại nên bạn 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 thực thi yêu cầu API.

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

  1. Tạo một flow dùng chung có tên SharedFlow_Sample như minh hoạ bên dưới và triển khai flow đó trong môi trường kiểm thử như minh hoạ bên dưới:

  2. Sử dụng một Flow Shared (Luồng dùng chung) hiện có được triển khai trong môi trường thử nghiệm trong chính sách Flow Callout (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 thử nghiệm, bạn sẽ không còn thấy lỗi này nữa vì Chú thích Flow cũng được triển khai đến môi trường thử nghiệm.

Nguyên nhân: Chưa triển khai luồng 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 không được triển khai trong môi trường cụ thể nơi yêu cầu API được thực hiện, thì lỗi sẽ xảy ra.

Ví dụ về thông báo lỗi

{
    "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 không đượ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ó được triển khai hay không.

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

    Vì quy trình dùng chung này chưa được triển khai, nên bạn 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 thực thi yêu cầu API.

Để 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 thử nghiệm, bạn sẽ không còn thấy lỗi này nữa vì Chú thích Flow cũng được triển khai đến môi trường thử nghiệm.