流程呼叫政策執行階段錯誤疑難排解

您目前查看的是 ApigeeApigee Hybrid 說明文件。
查看 Apigee Edge 說明文件。

SharedFlowNotFound

錯誤代碼

flow.SharedFlowNotFound

錯誤回應主體

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

可能原因

這項錯誤的可能原因包括:

原因 說明
無法使用共用流程 共用流程不存在。
共用流程未部署 共用流程存在,但未部署。

原因:共用流程無法使用

在流程標註政策中,如果 <SharedFlowBundle> 元素中定義的共用流程不存在於環境中,就會發生這項錯誤。

舉例來說,如果 Flow Callout 政策中的 <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 Proxy 中的所有 Flow Callout 政策。檢查是否有任何 Flow Callout 政策,其中 <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. 在使用者介面中,檢查「Develop」>「Shared Flows」下方是否顯示這個共用流程。如果不存在,就是造成錯誤的原因。(請注意,在全新使用者介面中,「共用流程」位於「開發」分頁下方)。

    舉例來說,在下方的螢幕截圖中,共用流程 SharedFlow_Sample 不存在。

    「SharedFlow_Sample」共用流程未列在「共用流程」欄中。

    由於這個共用流程不存在,您會收到以下錯誤代碼:

    flow.SharedFlowNotFound
    

解析度

確認 Flow Callout 政策的 <SharedFlowBundle> 元素中指定的共用流程存在,且已部署至執行 API 要求的特定環境。

您可以選擇下列其中一種方式來解決問題:

  1. 建立名為 SharedFlow_Sample 的共用流程,並將其部署至測試環境,如下所示:

    「共用流程」欄會列出共用流程 SharedFlow_Sample。

  2. 在流程註解政策中,使用已部署在測試環境中的現有共用流程。舉例來說,您可以在 Flow Callout 政策中指定 SharedFlow_demo

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

    如果您對測試環境發出 API 呼叫,就不會再看到錯誤,因為流程標註也會部署到測試環境。

原因:共用流程未部署

如果 Flow Callout 政策的 <SharedFlowBundle> 元素中指定的共用流程未部署,就會發生這個錯誤。

舉例來說,如果 Flow Callout 政策中的 <SharedFlowBundle> 元素包含名為 Shared-Flow_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. 在 UI 中,檢查這個共用流程是否已部署。

    舉例來說,您會發現下方的螢幕截圖中,共用流程 Shared-Flow_example 存在但未部署。

    共用流程 Shared-Flow_example 存在,但沒有任何部署作業。

    由於這個共用流程尚未部署,您會收到下列錯誤代碼:

    flow.SharedFlowNotFound
    

解析度

確認 Flow Callout 政策的 <SharedFlowBundle> 元素中指定的共用流程存在,且已部署至執行 API 要求的特定環境。

如要修正上述範例,請在測試環境中部署名為 Shared-Flow_example 的共用流程。以下螢幕截圖顯示已部署共用流程 SharedFlow_Sample

共用流程 SharedFlow_Sample 已部署在測試環境中。

如果您對測試環境發出 API 呼叫,就不會再看到錯誤,因為流程呼叫也會部署到測試環境。