Повторно используемые общие потоки

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

Вы можете объединять политики и ресурсы в общий поток , который можно использовать из нескольких API-прокси и даже из других общих потоков. Хотя это похоже на прокси, у общего потока нет конечной точки. Его можно использовать только из API-прокси или общего потока, находящегося в той же организации, что и сам общий поток.

Благодаря объединению в одном месте функциональности, полезной в разных местах, общий рабочий процесс помогает обеспечить согласованность, сократить время разработки и упростить управление кодом.

В следующем видеоролике показано, как создать и отследить общий поток в пользовательском интерфейсе Edge.

В следующем 5-минутном видеоролике показано, как создать и отследить общий поток в классическом пользовательском интерфейсе Edge (только для Edge for Private Cloud).

Вы можете вызвать общий поток, используя политику FlowCallout. Кроме того, прикрепив общий поток к обработчику потока , вы можете настроить его выполнение до запроса к прокси-серверу или целевому объекту, или после ответа от прокси-сервера или целевого объекта.

Для получения дополнительной информации о политике FlowCallout см. раздел «Политика FlowCallout» . Более подробную информацию о перехватчиках потоков см. в разделе «Присоединение общего потока с помощью перехватчика потока» .

Например, представьте, что у вас есть функциональные возможности, которые используются в нескольких местах или должны быть стандартизированы для всех API в вашей организации. Для каждой категории можно использовать общий алгоритм работы, включающий:

  • Безопасность обеспечивается кодом авторизации с использованием OAuth и проверкой ключа API, а также кодом защиты от угроз.
  • logging , для генерации стандартных сообщений об ошибках.
  • Посредничество , используемое для преобразования сообщений между форматами XML и JSON.

На следующем рисунке показаны два API-прокси, которые обращаются (с политикой FlowCallout) к общему потоку для аутентификации входящих запросов пользователей. AuthSharedFlow был развернут отдельно в организации до прокси, чтобы он был доступен для поддержки запросов от прокси. Общий поток может быть разработан и управляем командой, ответственной за общие политики компании, а затем использоваться прокси командами бизнес-подразделений, разрабатывающими более специализированные приложения.

Разработка общего потока

При разработке общего потока необходимо всегда тестировать его с помощью вызовов, отправленных через API-прокси. Другими словами, нельзя отправлять запросы непосредственно в общий поток, как это делается с API-прокси. Вместо этого запросы отправляются через API-прокси, который, в свою очередь, обращается к общему потоку.

Вот основные шаги по разработке общего рабочего процесса:

  1. Определите, какой набор общих функций должен быть у каждого из них.

    Например, вам может потребоваться объединить функции управления трафиком, включая подавление пиковых нагрузок. Таким образом, вы сможете управлять их конфигурацией вне рабочего процесса тех, кто внедряет бизнес-логику.

  2. Разработайте общий рабочий процесс , внедрив политики и вспомогательные ресурсы, точно так же, как вы бы это делали при разработке API-прокси.

    Общий поток — это последовательность условных шагов. Поэтому его разработка похожа на разработку API-прокси. Вы можете включать в него политики и ресурсы, которые обычно включают в прокси.

    Например, в рамках поддержки управления трафиком вы можете внедрить политику блокировки пиковых нагрузок, разрешающую только 30 запросов в секунду, как показано в следующем примере:

    <SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest">
        <DisplayName>Spike Arrest</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>

    Затем, к общему потоку управления трафиком, можно добавить политику Spike Arrest в качестве шага. Эта политика будет выполняться для любого API-прокси, который вызывает этот общий поток.

    <SharedFlow name="default">
        <Step>
            <Name>Spike-Arrest</Name>
        </Step>
    </SharedFlow>

    Информацию о том, как запустить общий поток в консоли управления, см. в разделе «Создание общего потока в пользовательском интерфейсе Edge» .

    Как и в случае с API-прокси, вы можете импортировать ZIP-файл, содержащий артефакты источника общего потока (подробнее об импорте прокси см. в разделе «Импорт нового API-прокси »). Ниже показано, как импортировать общий поток с помощью API управления:

    curl -X POST -F "file=@/path/to/zip/file.zip" \ 'https://api.enterprise.apigee.com/v1/o/{org_name}/sharedflows?action=import&name=shared-flow-name' \
    -u email:password
  3. Перед развертыванием прокси-серверов или общих потоков, которые будут его использовать, необходимо развернуть общий поток в среде. Развертывание общего потока осуществляется так же, как и развертывание прокси-сервера API. (Подробнее см. в разделе «Обзор развертывания» .)

    Общий поток должен находиться в той же организации и быть развернут в той же среде, что и API-прокси и другие общие потоки, которые его используют. Развертывание общего потока до прокси позволяет разрешить зависимость прокси от общего потока во время развертывания.

    Вы можете развернуть общий поток с помощью вызова API управления, например, следующего:

    curl -X POST --header "Content-Type: application/octet-stream" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments \
    -u email:password

    Вы также можете заменить уже развернутый общий поток без простоя. (Это очень похоже на API-прокси. Подробнее см. раздел «Развертывание API-прокси с помощью API управления »). Вот форма запроса с использованием API управления:

    curl -X POST --header "Content-Type:application/x-www-form-urlencoded" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments?"override=true" \
    -u email:password
  4. Разработайте прокси-сервер для API-потребителя таким образом, чтобы он мог вызывать общий поток как часть своего собственного потока.

    С помощью API-прокси вы вызываете общий поток, используя политику FlowCallout . (Вы также можете прикрепить общий поток к прокси с помощью обработчика потока, как описано в разделе «Прикрепление общего потока с помощью обработчика потока ».) Вводное руководство по созданию API-прокси см. в разделе «Создание первого API-прокси» .

    Для использования общего потока необходимо добавить политику FlowCallout к прокси-серверу или общему потоку, который будет его использовать. Подобно политике Service Callout, с помощью которой вы обращаетесь к другому сервису, политика FlowCallout обращается к общему потоку. Использующий API-прокси должен быть развернут после общего потока и в той же среде, что и общий поток. Общий поток должен быть развернут, когда вы захотите протестировать вызов к нему с помощью политики FlowCallout.

    В приведенном ниже коде политика FlowCallout обращается к общему потоку с именем traffic-management-shared .

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Traffic-Management-Flow-Callout">
        <DisplayName>Traffic Management FlowCallout</DisplayName>
        <Properties/>
        <SharedFlowBundle>traffic-management-shared</SharedFlowBundle>
    </FlowCallout>

    Для получения дополнительной информации см. раздел «Вызов общего потока из API-прокси или общего потока».

  5. Для начала использования общего потока разверните прокси-сервер API-потребителя . (Более подробную информацию о развертывании см. в разделе «Понимание развертывания» .)
  6. Разрабатывайте систему итеративно, используя трассировку, как это делается при работе с API-прокси.

    Как и в случае с API-прокси, вы разрабатываете общий поток, итеративно вызывая и отслеживая его до тех пор, пока не получите желаемую логику. В данном случае, поскольку общий поток не выполняется самостоятельно, вы вызываете конечную точку прокси и отслеживаете работу прокси.

    Вот шаги:

    1. Убедитесь, что как общий поток, так и API-прокси, вызывающий его с помощью политики FlowCallout, находятся в одной организации и развернуты в одной среде.
    2. На вкладке «Трассировка» прокси-сервера API начните трассировку прокси-сервера API.
    3. Отправьте запрос на прокси-конечную точку в API-прокси. Поток от конечной точки должен включать политику FlowCallout, которая вызывает общий поток.
    4. На вкладке «Трассировка» изучите поток данных от API-прокси к общему потоку.

      Обратите внимание, что при трассировке общий поток отображается в виде набора шагов или политик, заключенных в серый прямоугольник. Значки, представляющие политики FlowCallout, предшествуют общим потокам. (Более подробную информацию о трассировке см. в разделе «Использование инструмента трассировки» .)

Создание общего потока в пользовательском интерфейсе Edge

При создании общего потока с помощью пользовательского интерфейса Apigee Edge вы можете либо создать его с нуля, либо импортировать существующие источники потоков в виде ZIP-архива с пакетом потоков.

  1. Перейдите на страницу «Общие потоки», как описано ниже. На странице «Общие потоки» вы можете просмотреть список общих потоков в организации, а также редактировать или удалять потоки из этого списка.

    Край

    Чтобы получить доступ к странице «Общие потоки» с помощью пользовательского интерфейса Edge:

    1. Войдите на сайт apigee.com/edge .
    2. Выберите организацию, в которой находится ваш общий поток. См. раздел «Переключение между организациями» .

      Общий поток данных будет доступен для любых API-прокси и общих потоков данных, развернутых в среде этой организации. Он не будет доступен извне этой организации.

    3. В левой панели навигации выберите «Разработка» > «Общие потоки» .

    Классический Edge (частное облако)

    Чтобы получить доступ к странице «Общие потоки» с помощью классического пользовательского интерфейса Edge:

    1. Войдите в систему по http:// ms-ip :9000 , где ms-ip — это IP-адрес или DNS-имя узла сервера управления.
    2. Выберите организацию, в которой находится ваш общий поток. См. раздел «Переключение между организациями» .

      Общий поток данных будет доступен для любых API-прокси и общих потоков данных, развернутых в среде этой организации. Он не будет доступен извне этой организации.

    3. В верхней панели навигации выберите API > Общие потоки .
  2. Нажмите кнопку «+ Общий поток» , чтобы начать добавление нового общего потока.
  3. На странице «Создание общего потока» выберите способ создания нового потока:
    • Создайте новый поток с нуля. Вы сможете настраивать политики и ресурсы в качестве шагов этого потока.
      1. Выберите «Пустой общий поток» .
      2. Введите имя. Это имя будет использоваться прокси-серверами API и другими общими потоками для ссылки на данный общий поток. Имя должно быть понятным для разработчиков, использующих этот поток.
      3. Введите описание, чтобы предоставить более подробную информацию о том, что делает этот процесс.
      4. Нажмите «Далее» .
      5. При желании выберите среды, в которых вы хотите развернуть новый поток.

        Например, если вы будете тестировать общий поток данных из API-прокси, развернутых в тестовой среде, то разверните этот общий поток в тестовой среде .

      6. Нажмите «Создать и развернуть» , чтобы создать и развернуть новый общий поток в выбранной(ых) среде(ах). Если вы не выбрали ни одной среды, общий поток будет создан, но не развернут.

    • Создайте общий поток на основе существующих источников, загрузив пакет потоков.
      1. Выберите «Общий пакет потоков» , чтобы указать ZIP-файл, содержащий артефакты, которые вы хотите включить в новый поток.

        Общий пакет потоков содержит исходные артефакты общего потока. Например, если вы загрузите общий поток из пользовательского интерфейса Edge, вы получите ZIP-файл с пакетом потоков.

      2. Нажмите «Далее» .
      3. Нажмите «Выбрать файл» , чтобы найти ZIP-архив, содержащий общие источники потоков, которые вы хотите импортировать.
      4. В поле «Имя общего потока» введите имя для импортированного потока. Это имя будет использоваться API-прокси и другими общими потоками для ссылки на этот поток. Имя должно быть понятным для разработчиков, использующих этот поток.
      5. Нажмите «Далее» .
      6. Нажмите «Создать» , чтобы создать новый поток из импортируемых источников.

Вызов общего потока из API-прокси или общего потока.

Вы можете вызвать общий поток из прокси-сервера или из другого общего потока, используя политику FlowCallout .

  1. В пользовательском интерфейсе Edge найдите прокси-сервер или общий поток, из которого вы хотите вызвать другой общий поток.
  2. В панели навигации рядом с пунктом «Политики» нажмите кнопку «+» .
  3. В списке политик, в разделе «Расширение» , нажмите FlowCallout .
  4. Введите отображаемое имя и имя (уникальный идентификатор), затем выберите общий поток, который будет вызываться этой политикой.
  5. Нажмите «Добавить» .
  6. Добавьте новую политику FlowCallout к прокси-серверу, куда вы хотите отправить вызов.

См. также

Объединение API-прокси в цепочку