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

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

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

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

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

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

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

Справочную информацию о правиле FlowCallout можно найти в статье о правиле FlowCallout. Подробнее о точках подключения потоков можно узнать в статье Как прикрепить общий поток с помощью точки подключения потока.

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

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

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

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

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

Вот основные этапы создания общего потока:

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

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

  2. Разработайте общий поток, реализовав правила и вспомогательные ресурсы так же, как при разработке прокси-сервера 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
  3. Разверните общий поток в среде, прежде чем развертывать прокси или общие потоки, которые будут его использовать. Развертывание общего потока выполняется так же, как и развертывание прокси-сервера 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
  4. Разработайте прокси-сервер 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 или общего потока…

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

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

    Вот как это сделать:

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

      Обратите внимание, что при трассировке общий поток представлен в виде набора шагов или правил, заключенных в серый прямоугольник. Перед общими потоками идут значки, представляющие правила FlowCallout. Подробнее об использовании инструмента "Трассировка"…

Как создать общий поток в интерфейсе Edge

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

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

    Edge

    Чтобы перейти на страницу общих потоков в интерфейсе Edge:

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

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

    3. На панели навигации слева выберите Разработка > Общие потоки.

    Новый интерфейс Edge (частное облако)

    Чтобы перейти на страницу "Общие потоки" в новом интерфейсе Edge, выполните следующие действия:

    1. Войдите в интерфейс New Edge по адресу http://host:3001/edge, где host – это IP-адрес или DNS-имя хоста, на котором запущен интерфейс New Edge.
    2. Выберите организацию, в которой находится ваш общий поток. Подробнее о том, как переключаться между организациями…

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

    3. На панели навигации слева выберите Разработка > Общие потоки.
  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. В списке правил в разделе Расширение нажмите Уточнение.
  4. Введите отображаемое имя и название (уникальный идентификатор), а затем выберите общий поток, который будет вызываться этой политикой.
  5. Нажмите Добавить.
  6. Добавьте новое правило FlowCallout в прокси-сервер, через который вы хотите совершать звонки.

Статьи по теме

Как объединять прокси API