Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Вы можете объединить правила и ресурсы в общий поток, который можно использовать в нескольких прокси API и даже в других общих потоках. Хотя общий поток похож на прокси, у него нет конечной точки. Его можно использовать только в прокси-сервере API или общем потоке, которые находятся в той же организации, что и сам общий поток.
Общий поток позволяет объединить в одном месте функции, которые используются в разных местах, чтобы обеспечить согласованность, сократить время разработки и упростить управление кодом.
В видео ниже показано, как создать и отследить общий поток в интерфейсе Edge.
В следующем пятиминутном видео показано, как создать и отследить общий поток в новом интерфейсе Edge (только для частного облака).
Вы можете вызвать общий поток, используя правило FlowCallout. Кроме того, прикрепив общий поток к точке подключения потока, вы можете настроить выполнение общего потока до запроса прокси или целевого сервиса или после ответа прокси или целевого сервиса.
Справочную информацию о правиле FlowCallout можно найти в статье о правиле FlowCallout. Подробнее о точках подключения потоков можно узнать в статье Как прикрепить общий поток с помощью точки подключения потока.
Предположим, у вас есть области функциональности, которые используются в нескольких местах или должны быть стандартизированы для всех API в вашей организации. Вы можете создать общий процесс для каждой категории, например:
- безопасность с кодом авторизации, использующим OAuth и проверку ключа API, а также код защиты от угроз.
- logging – для создания стандартных сообщений об ошибках.
- mediation – для преобразования сообщений из формата XML в JSON и наоборот.
На иллюстрации ниже два прокси API вызывают (с помощью правила FlowCallout) общий поток для аутентификации входящих запросов пользователей. AuthSharedFlow был развернут отдельно в организации до прокси-серверов, чтобы он был доступен для поддержки запросов от прокси-серверов. Общий поток может быть разработан и управляться командой, ответственной за общие правила компании, а затем использоваться в прокси-серверах командами, создающими более специализированные приложения.

Разработка общего процесса
При разработке общего потока его всегда нужно тестировать с помощью вызовов, отправленных прокси-серверу API. Другими словами, вы не можете отправлять запросы непосредственно в общий поток, как в прокси-сервер API. Вместо этого вы отправляете запросы к прокси-серверу API, который, в свою очередь, вызывает общий поток.
Вот основные этапы создания общего потока:
- Определите, каким должен быть общий набор функций.
Например, вы можете объединить функции управления трафиком, в том числе подавление пиковых нагрузок. Таким образом вы сможете управлять их конфигурацией вне рабочего процесса тех, кто реализует бизнес-логику.
-
Разработайте общий поток, реализовав правила и вспомогательные ресурсы так же, как при разработке прокси-сервера API.
Общий поток – это последовательность условных шагов. Поэтому разработка такого приложения похожа на создание прокси-сервера API. Вы можете добавить правила и ресурсы, которые могут быть включены в прокси-сервер.
Например, в рамках поддержки управления трафиком вы можете реализовать правило Spike Arrest, чтобы разрешить только 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). Ниже показано, как импортировать общий поток с помощью Management 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 -
Разверните общий поток в среде, прежде чем развертывать прокси или общие потоки, которые будут его использовать. Развертывание общего потока выполняется так же, как и развертывание прокси-сервера API. Подробнее о развертывании…
Общий поток должен находиться в той же организации и быть развернут в той же среде, что и прокси API и другие общие потоки, которые его используют. Развертывание общего потока до прокси-серверов позволяет разрешить зависимость прокси-сервера от общего потока во время развертывания.
Вы можете развернуть общий поток с помощью вызова Management 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 с помощью Management API… Вот форма запроса с использованием Management 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 -
Разработайте прокси-сервер API, который будет использовать общий поток в рамках своего собственного потока.
Из прокси-сервера API вы вызываете общий поток с помощью правила FlowCallout. (Вы также можете прикрепить общий поток к прокси-серверу с помощью перехватчика потока, как описано в разделе Как прикрепить общий поток с помощью перехватчика потока.) Чтобы узнать, как создать прокси-сервер API, ознакомьтесь с руководством для начинающих.
Чтобы использовать общий поток, добавьте правило 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 или общего потока…
- Разверните прокси-сервер API, использующий общий поток, чтобы начать работу с ним. Дополнительную информацию о развертывании можно найти в статье Общие сведения о развертывании.
-
Разрабатывайте итеративно, выполняя трассировку, как при работе с прокси-сервером API.
Как и в случае с прокси-сервером API, вы разрабатываете общий поток, итеративно вызывая и отслеживая его, пока не получите нужную логику. В этом случае, поскольку общий поток не выполняется сам по себе, вы вызываете конечную точку прокси и отслеживаете прокси.
Вот как это сделать:
- Убедитесь, что общий поток и вызывающий его прокси-сервер API с правилом FlowCallout находятся в одной организации и развернуты в одной среде.
- На вкладке Trace (Трассировка) прокси-сервера API начните трассировку прокси-сервера API.
- Отправьте запрос в конечную точку прокси-сервера в прокси-сервере API. Поток из конечной точки должен включать правило FlowCallout, которое вызывает общий поток.
- На вкладке Трассировка изучите поток от прокси-сервера API к общему потоку.
Обратите внимание, что при трассировке общий поток представлен в виде набора шагов или правил, заключенных в серый прямоугольник. Перед общими потоками идут значки, представляющие правила FlowCallout. Подробнее об использовании инструмента "Трассировка"…

Как создать общий поток в интерфейсе Edge
При создании общего потока в интерфейсе Apigee Edge вы можете создать его с нуля или импортировать существующие источники потока в виде ZIP-файла пакета потока.
- Перейдите на страницу "Общие потоки", как описано ниже. На странице "Общие потоки" можно посмотреть список общих потоков в организации, а также изменить или удалить потоки из списка.
Edge
Чтобы перейти на страницу общих потоков в интерфейсе Edge:
- Войдите в аккаунт на сайте apigee.com/edge.
- Выберите организацию, в которой находится ваш общий поток. Подробнее о том, как переключаться между организациями…
Общий поток будет доступен для любых прокси API и общих потоков, развернутых в среде из этой организации. Он будет недоступен пользователям за пределами организации.
- На панели навигации слева выберите Разработка > Общие потоки.
Новый интерфейс Edge (частное облако)
Чтобы перейти на страницу "Общие потоки" в новом интерфейсе Edge, выполните следующие действия:
- Войдите в интерфейс New Edge по адресу
http://host:3001/edge, где host – это IP-адрес или DNS-имя хоста, на котором запущен интерфейс New Edge. - Выберите организацию, в которой находится ваш общий поток. Подробнее о том, как переключаться между организациями…
Общий поток будет доступен для любых прокси API и общих потоков, развернутых в среде из этой организации. Он будет недоступен пользователям за пределами организации.
- На панели навигации слева выберите Разработка > Общие потоки.
- Нажмите кнопку + Общий поток, чтобы добавить новый общий поток.
- На странице Создание общего потока выберите способ создания нового потока:
- Создайте новый поток с нуля. Вы сможете настраивать правила и ресурсы в виде шагов в потоке.
- Выберите Пустой общий поток.
- Введите значение имени. Это название будет использоваться прокси API и другими общими потоками для ссылки на этот общий поток. Название должно быть понятным для разработчиков, которые будут использовать этот поток.
- Введите описание, чтобы предоставить дополнительную информацию о том, что делает поток.
- Нажмите Далее.
- При необходимости выберите среды, в которых нужно развернуть новый поток.
Например, если вы будете тестировать общий поток из прокси API, развернутых в тестовой среде, разверните общий поток в тестовой среде.
-
Нажмите Создать и развернуть, чтобы создать новый общий поток и развернуть его в выбранных средах. Если вы не выбрали среду, общий поток будет создан, но не развернут.
- Создайте общий поток на основе существующих источников, загрузив пакет потока.
- Выберите Пакет общего потока, чтобы указать ZIP-файл с артефактами, которые вы хотите добавить в новый поток.
Пакет общего потока содержит исходные артефакты общего потока. Например, если вы скачаете общий поток из интерфейса Edge, вы получите ZIP-файл с пакетом потока.
- Нажмите Далее.
- Нажмите Выбрать файл, чтобы найти ZIP-файл с источниками общего потока, которые вы хотите импортировать.
- В поле Название общего потока введите название импортированного потока. Это название будет использоваться прокси API и другими общими потоками для ссылки на этот общий поток. Название должно быть понятным для разработчиков, которые будут использовать этот поток.
- Нажмите Далее.
- Нажмите Создать, чтобы создать новый поток на основе импортированных источников.
- Выберите Пакет общего потока, чтобы указать ZIP-файл с артефактами, которые вы хотите добавить в новый поток.
- Создайте новый поток с нуля. Вы сможете настраивать правила и ресурсы в виде шагов в потоке.
Как вызвать общий поток из прокси-сервера API или общего потока
Вы можете вызвать общий поток из прокси-сервиса или другого общего потока, используя правило FlowCallout.
- В интерфейсе Edge найдите прокси-сервер или общий поток, из которого вы хотите вызвать другой общий поток.
- В разделе Навигатор рядом с пунктом Правила нажмите кнопку +.
- В списке правил в разделе Расширение нажмите Уточнение.
- Введите отображаемое имя и название (уникальный идентификатор), а затем выберите общий поток, который будет вызываться этой политикой.
- Нажмите Добавить.
- Добавьте новое правило FlowCallout в прокси-сервер, через который вы хотите совершать звонки.