Устранение ошибок выполнения политики FlowCallout

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

SharedFlowNotFound

Код ошибки

flow.SharedFlowNotFound

Тело ответа с ошибкой

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

Возможные причины

Возможные причины ошибки:

Cause Описание
Общий поток недоступен Общего процесса не существует.
Общий поток не развернут Общий процесс существует, но не развернут.

Причина: общий поток недоступен

Если в правиле Flow Callout общий поток, определенный в элементе <SharedFlowBundle>, не существует в среде, возникает эта ошибка.

Например, если элемент <SharedFlowBundle> в правиле Flow Callout содержит общий поток с названием 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. Проверьте все правила Flow Callout в определенном прокси API, где произошел сбой. Проверьте, есть ли политика 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. В интерфейсе Edge проверьте, существует ли этот общий поток в разделе APIs > Shared Flows (API > Общие потоки). Если его нет, то это и есть причина ошибки. (В новом интерфейсе Edge Shared Flows можно найти на вкладке Develop (Разработка).)

    Например, на скриншоте ниже нет общего потока SharedFlow_Sample.

    Поскольку такого общего процесса не существует, вы получите код ошибки:

    flow.SharedFlowNotFound
    

Разрешение

Убедитесь, что общий поток, указанный в элементе <SharedFlowBundle> в правиле Flow Callout, существует и развернут в той среде, в которой выполняется запрос к 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 в тестовой среде, то больше не увидите ошибку, поскольку выноска Flow Callout также развернута в тестовой среде.

Причина: общий процесс не развернут

Эта ошибка возникает, если общий поток, указанный в элементе <SharedFlowBundle> правила "Выноска потока", не развернут.

Например, если элемент <SharedFlowBundle> в правиле Flow Callout содержит общий поток 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 проверьте, развернут ли этот общий процесс.

    Например, на скриншоте ниже видно, что общий поток SharedFlow_example существует, ноне развернут.

    Поскольку этот общий поток не развернут, вы получите код ошибки:

    flow.SharedFlowNotFound
    

Разрешение

Убедитесь, что общий поток, указанный в элементе <SharedFlowBundle> в правиле Flow Callout, существует и развернут в той среде, в которой выполняется запрос к API.

Чтобы исправить приведенный выше пример, разверните общий поток SharedFlow_example в тестовой среде, как показано ниже:

Если вы сделаете вызов API в тестовой среде, то больше не увидите ошибку, поскольку выноска Flow Callout также развернута в тестовой среде.