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

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

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 проверьте, существует ли этот общий поток в разделе API > Общие потоки . Если его нет, то это и является причиной ошибки. (Обратите внимание, что в новом пользовательском интерфейсе Edge общие потоки можно найти на вкладке «Разработка».)

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

Причина: Общий поток не развернут.

Если общий поток, указанный в элементе <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 проверьте, развернут ли этот общий поток.

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

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

    flow.SharedFlowNotFound
    

Разрешение

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

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

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