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

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

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

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

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

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

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

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

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

  • безопасность , с кодом авторизации с использованием OAuth и проверкой ключа API, а также кодом защиты от угроз.
  • logging для генерации стандартных сообщений об ошибках.
  • посредничество для преобразования между форматами сообщений 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 управления:

    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 вместе