Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Начало работы
- Как установить Edge Microgateway?
- См. раздел Установка Edge Microgateway.
- Как запустить Edge Microgateway?
- Подробнее о настройке Edge Microgateway…
- Нужна ли база данных для работы Microgateway?
- API, проксированные через Edge Microgateway, могут взаимодействовать с базой данных, которая работает как часть целевого сервиса. Однако Edge Microgateway работает независимо от любой базы данных или хранилища данных на сервере.
Операция
- Какие изменения в Edge требуют перезапуска Edge Microgateway?
- Edge Microgateway автоматически проверяет, были ли внесены изменения в Apigee Edge, например в прокси, продукты или приложения разработчиков, которые поддерживают микрошлюз. По умолчанию интервал опроса составляет 600 секунд, но его можно изменить с помощью параметра конфигурации
config_change_poll_interval. Подробнее об атрибутах edgemicro… - Если вы не хотите ждать интервала опроса, используйте команду
edgemicro reload, чтобы получить последние изменения. Подробнее о перезагрузке кластера микрошлюза… - Как отличить прокси-сервер, развернутый в Edge, от прокси-сервера в Edge Microgateway?
- Когда вы настраиваете Edge Microgateway, список прокси-серверов, поддерживающих микрошлюз и развернутых в Apigee Edge, скачивается в локальную конфигурацию Edge Microgateway. Прокси-серверы, совместимые с микрошлюзом, имеют префикс
edgemicro_. - Какие варианты ведения журналов доступны в Edge Microgateway?
- Edge Microgateway имеет встроенную функцию ведения журналов. Подробнее об управлении файлами журналов…
- Вы также можете написать собственный плагин, чтобы использовать сторонний сервис ведения журналов с Edge Microgateway. Из-за особенностей работы Edge Microgateway вы не можете использовать правило регистрации сообщений Apigee Edge для регистрации сообщений Edge Microgateway. Также ознакомьтесь со статьей сообщества о плагине ведения журналов для микрошлюза.
- Можно ли повторно использовать комбинации ключей и секретов в разных экземплярах Edge Microgateway?
- Если организация и среда для экземпляров Microgateway одинаковы, вы можете повторно использовать пару ключей/секретов, сгенерированную во время настройки.
- Как настроить Edge Microgateway для запуска в рабочей среде?
- Вы можете задать переменные среды для параметров команды запуска, например
EDGEMICRO_KEY,EDGEMICRO_SECRET,EDGEMICRO_ORGиEDGEMICRO_ENV. С помощью этих и других переменных можно запустить Edge Microgateway одной командойedgemicro start. Также ознакомьтесь со статьей Как задать переменные среды. - Можно ли использовать настраиваемые атрибуты продукта или приложения разработчика с Edge Microgateway?
- Нет. По умолчанию Edge Microgateway работает только с атрибутами, связанными с базовой маршрутизацией и безопасностью. Однако вы можете воспользоваться следующими обходными решениями:
-
Добавьте настраиваемые атрибуты в прокси-сервер
edgemicro-auth, который Edge Microgateway развертывает в Apigee Edge. Эти атрибуты будут доступны при использовании ключа API или токена OAuth. - Измените плагин OAuth, чтобы он работал с этими атрибутами.
-
Добавьте настраиваемые атрибуты в прокси-сервер
- Есть ли ограничение на размер заголовка запроса?
- Если вы обновите Node.js до версии v8.14.0 или более поздней, учтите, что максимальный размер заголовка, разрешенный в запросах, будет уменьшен с 80 до 8 КБ. Если размер заголовка превышает 8 КБ, возникает ошибка HTTP 431.
- В версии Node.js 11.6.0 добавлен параметр конфигурации Node.js, позволяющий изменить максимальный размер заголовка по умолчанию. Параметр
--max-http-header-sizeпозволяет указать максимальный размер HTTP-заголовков в байтах. - Чтобы изменить конфигурацию по умолчанию, задайте значение переменной среды
NODE_OPTIONSв командной строке следующим образом:NODE_OPTIONS=--max-http-header-size=NUM_BYTES
Пример:
NODE_OPTIONS=--max-http-header-size=80000
Какие API управления использует Edge Microgateway?
Следующие команды Edge Microgateway вызывают API управления Apigee Edge, как описано в справочнике по интерфейсу командной строки для Edge Microgateway:
edgemicro configureedgemicro upgradeauthedgemicro upgradekvmedgemicro rotatekeyedgemicro cert checkedgemicro cert deleteedgemicro cert install
В следующих разделах перечислены вызовы API управления, которые используются в каждой команде.
Команды edgemicro configure и upgradeauth вызывают следующие API управления:
- (список развертываний)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/deployments - (получить информацию о развертывании)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=java&name=micro-gateway-products-javacallout-2.0.0.jar - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=adjust-quota.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-jwk.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-verify-jwt.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jsrsasign-all-min.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jwt-initialization.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-jwk-response.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-product-list.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-public-key.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-jwt-variables.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-quota-variables.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-response.js - (загрузка ресурсов)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=validate-params.js - (создать прокси API)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis?action=import&validate=false&name=edgemicro-auth - (правила загрузки)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/policies - (загрузка прокси)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/proxies?name=default - (развертывание прокси-сервера)
POST: https://api.enterprise.apigee.com/v1/o/[org]/e/[env]/apis/edgemicro-auth/revisions/1/deployments
Команда upgradekvm вызывает следующий API управления:
PUT: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
Команда rotatekey вызывает следующий API управления:
GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway/entries/private_key
Команда cert check вызывает следующий API управления:
GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
Команда cert delete вызывает следующий API управления:
DELETE: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
Команда cert install вызывает следующий API управления:
POST: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps
Развертывание
- Можно ли развернуть Edge Microgateway на том же сервере, на котором работает целевой сервис?
- Да. Edge Microgateway – это облегченный процесс, который можно запустить рядом с целевым сервисом, в том числе на той же машине.
- Можно ли развернуть существующий пакет прокси-сервера Edge как развертывание Edge Microgateway?
- Нет. Прокси-серверы, поддерживающие Edge Microgateway, имеют определенные требования и не поддерживают все функции обычных прокси-серверов Edge. Подробнее о том, как создать объекты в Apigee Edge…
- Можно ли включить отработку отказа между развертыванием пакета прокси-серверов Edge и развертыванием Edge Microgateway для одного и того же прокси-сервера API?
- Нет. Edge Microgateway не знает о развертываниях прокси-серверов API, отличных от микрошлюза, в Apigee Edge.
- Какова модель развертывания с высокой доступностью для Edge Microgateway?
- Подробную информацию о том, как запустить Edge Microgateway, используя NGINX в качестве балансировщика нагрузки, можно найти в статье Управление API с помощью Apigee Edge Microgateway и NGINX.
- Какие балансировщики нагрузки можно использовать с Edge Microgateway?
- Edge Microgateway можно использовать с любым балансировщиком нагрузки.
- Есть ли ограничение на количество прокси-серверов Edge Microgateway, которые можно развернуть?
- Ознакомьтесь с ограничениями на конфигурацию продуктов, которые действуют для обычных прокси-серверов Edge. Количество прокси-серверов с поддержкой микрошлюза, которые можно развернуть в организации и среде Apigee Edge и вызывать через Edge Microgateway, должно соответствовать тем же ограничениям.
- Можно ли связать развертывание Edge Microgateway с определенной организацией и средой?
- При настройке экземпляра Edge Microgateway его необходимо связать с определенной организацией и средой Edge.
- Можно ли связать развертывание Edge Microgateway с определенным регионом (если у меня несколько регионов)?
- Edge Microgateway автоматически выбирает лучший регион для взаимодействия с Apigee Edge. Вы можете развернуть экземпляры Edge Microgateway в каждом регионе, который хотите обслуживать.
Администрирование
- Нужно ли быть администратором организации, чтобы настроить и развернуть Edge Microgateway?
- Да. Для настройки и развертывания Edge Microgateway требуются учетные данные администратора организации.
- Нужно ли быть администратором организации, чтобы запустить Edge Microgateway?
- Нет. Edge Microgateway – это приложение
Node.js, которое может запустить любой пользователь, у которого есть разрешение на запуск таких приложений на определенном компьютере. - Может ли любой пользователь моей организации использовать Edge Microgateway?
- Для выполнения вызовов API через Edge Microgateway не обязательно быть пользователем организации Apigee Edge. Однако для создания или изменения прокси-серверов, совместимых с Edge Microgateway и развернутых в Edge, необходимы разрешения на уровне организации.
Эффективность
- Какие факторы влияют на производительность Edge Microgateway?
- Если Edge Microgateway работает на том же сервере, что и целевое приложение, убедитесь, что у сервера достаточно ресурсов.
- Как эффективно использовать Edge Microgateway?
- Apigee рекомендует запускать несколько экземпляров Edge Microgateway на разных серверах, которые находятся за балансировщиками нагрузки, например NGINX. Также ознакомьтесь со статьями Управление API с помощью микрошлюза Apigee Edge и NGINX и Вертикальное и горизонтальное масштабирование в сообществе Apigee.
- Какова пропускная способность Edge Microgateway по умолчанию и какие требования к оборудованию предъявляются к экземпляру Microgateway?
- С помощью Edge Microgateway сложно оценить требования к оборудованию и количество транзакций в секунду. Это зависит от вашей конфигурации, которая представляет собой сочетание настроек Edge Microgateway, использования плагинов, специальных плагинов и других параметров, например TLS. Как правило, Apigee рекомендует определить сочетание этих элементов и провести тестирование производительности с вашей конфигурацией.
Развертывание в частном облаке
- Работает ли Edge Microgateway с Edge для частного облака?
- Да. Подробнее о шагах по настройке частного облака Apigee…
Плагины
- Как квота применяется в Edge Microgateway?
- При необходимости вы можете добавить в экземпляр Edge Microgateway плагин квоты. Подробнее о плагине квот…
- Как Edge Microgateway обеспечивает соблюдение правила Spike Arrest?
- При необходимости вы можете добавить в экземпляр Edge Microgateway плагин для защиты от скачков трафика. Подробнее о плагине для защиты от скачков трафика…
- Можно ли писать плагины для Edge Microgateway не только с помощью
Node.js? - Нет. Плагины должны быть написаны на языке
Node.js. - Что происходит, когда Edge Microgateway не может загрузить данные Аналитики в Edge?
- Edge Microgateway имеет буфер в памяти. Если буфер заполняется, более старые полезные нагрузки удаляются, чтобы обеспечить бесперебойную работу API.
- Можно ли добавить правила в микрошлюз Edge?
- Если вы прикрепите обычные правила Apigee Edge к прокси-серверам, совместимым с микрошлюзом, в Apigee Edge, они будут игнорироваться. Вместо этого Edge Microgateway использует плагины, чтобы предоставлять функции, аналогичные правилам в Edge, например квоты, защиту от скачков трафика, защиту ключей API и защиту OAuth2. Вы также можете написать собственные плагины. Подробнее о том, как использовать плагины и как разрабатывать собственные плагины…
В следующих записях в сообществе Apigee и блогах обсуждаются дополнительные варианты использования плагинов:
Безопасность
- Как защитить ресурс
/products? - Обзор
- Когда вы настраиваете Edge Microgateway, в организации:среде Apigee Edge развертывается прокси-сервер API под названием
edgemicro-auth. Этот прокси-сервер предоставляет конечную точку/products, которая возвращает список продуктов API. Если вы установили Edge Microgateway до 5 октября 2018 г., Apigee рекомендует защитить эту конечную точку, поскольку в ответе содержится адрес электронной почты разработчика, который создал и изменил продукты API в вашей организации Apigee. - Вы можете защитить конечную точку, обновив Edge Microgateway или настроив взаимную аутентификацию TLS. Оба варианта описаны ниже.
- Проверьте, защищена ли конечная точка
/products -
Если вы не уверены, защищена ли конечная точка
/products, перейдите к разделу Как проверить, защищен ли ресурс/productsи выполните описанные там действия, прежде чем продолжить.Вариант 1. Обновите Edge Microgateway
Если вы установили Edge Microgateway до 5 октября 2018 г., Apigee рекомендует обновить его до последней версии. Следуйте инструкциям в разделе Как обновить Edge Microgateway при наличии подключения к интернету.
Если вы не можете обновить аккаунт сейчас, перейдите к варианту 2.
Вариант 2. Настройте взаимную аутентификацию TLS
Если вы не можете обновить Edge Microgateway прямо сейчас, Apigee рекомендует защитить связь между Edge Microgateway и прокси-сервером
edgemicro-authс помощью взаимного протокола TLS (также известного как двусторонний TLS).- Откройте файл
$HOME/.edgemicro/org-env-config.yaml. Если вы не можете найти этот файл, ознакомьтесь с разделом Где устанавливается Edge Microgateway. - Добавьте следующий блок
tlsOptionsв файлorg-env-config.yaml, чтобы включить взаимную аутентификацию TLS между Edge Microgateway и Apigee Edge:edge_config: bootstrap: >- https://domain/edgemicro/bootstrap/organization/org/environment/env jwt_public_key: 'https://domain/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' tlsOptions: agentOptions: requestCert: true cert: 'path/to/cert' key: 'path/to/key'Пример:
tlsOptions: agentOptions: requestCert: true cert: '/Users/jdoe/twowayssl/ssl/client.key' key: '/Users/jdoe/twowayssl/ssl/ca.crt'Также можно добавить следующие необязательные параметры
agentOptions:ca: указывает путь к центру сертификации.pfx: добавьте, если хотите использовать файл p12/pfx вместо сертификата и ключа.passphrase: кодовая фраза для файла PFX.ciphers– элемент, определяющий шифры TLS;
- Убедитесь, что для виртуального хоста, в который развернут прокси-сервер
edgemicro-auth, включена взаимная аутентификация TLS. Подробную информацию можно найти в статье Как определить виртуальный хост для двустороннего протокола TLS в документации по Apigee Edge.На скриншоте ниже показано, как включить взаимную проверку подлинности TLS на виртуальном хосте в интерфейсе Apigee Edge:
- Посмотрите на прокси API
edgemicro-authв интерфейсе Edge и убедитесь, что в конфигурации прокси указан правильный виртуальный хост. Например, если вы создали виртуальный хост с поддержкой TLS под названиемmutualtls, разделHTTPProxyConnectionпрокси-сервера должен выглядеть следующим образом:<HTTPProxyConnection> <BasePath>/edgemicro-auth</BasePath> <Properties/> <VirtualHost>mutualtls</VirtualHost> </HTTPProxyConnection>
- Откройте файл
/products/products. Важно выполнить этот тест после того, как вы выполните шаги (вариант 1 или вариант 2) для защиты ресурса. Это можно сделать, например, с помощью cURL:
curl -v https://your_domain/edgemicro-auth/products
/products защищена:
{
"error":"unauthorized",
"error_description": "authentication failed"
}ИЛИ
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Если вы видите ответ, похожий на приведенный ниже, значит ресурс /products не защищен и электронные адреса разработчиков могут быть доступны.
{ "apiProduct":[ { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ ], "createdAt":1537374680948, "createdBy":"jdoe@foo.com", "description":"", "displayName":"mock", "environments":[ "test" ], "lastModifiedAt":1537374680948, "lastModifiedBy":"test@test.com", "name":"mock", "proxies":[ "edgemicro-auth", "edgemicro_mock" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ "" ] } ] }
Apigee также рекомендует протестировать виртуальный хост HTTP:
Пример:
curl -v http://your_domain/edgemicro-auth/products
Если вызов cURL возвращает список продуктов API, возможно, адреса электронной почты разработчиков раскрыты. Если вы не хотите, чтобы конечная точка была доступна через этот виртуальный хост без TLS, удалите его из конфигурации edgemicro-auth HTTPProxyConnection.
Чтобы защитить ресурс, выполните одно из следующих действий:
В настоящее время нельзя обновить токен JWT для определенного экземпляра Edge Microgateway.
Решение
У каждого токена JWT есть атрибут exp, в котором указан срок действия токена. Приложение может рассчитать время истечения срока действия и запросить новый токен, отправив вызов API непосредственно в конечную точку токена edgemicro-auth. Например, вы можете сделать вызов API следующим образом:
POST https: //{your_org}-{your_env}.apigee.net/edgemicro-auth/token
... с телом JSON, как показано ниже:
{ "client_id": {your_id}, "client_secret": {your_secret},
"grant_type": "client_credentials" }
Похожие запросы:
- Защитите API с помощью токена OAuth или ключа API (документация по Edge Microgateway).
- Как обновить токен носителя, когда он истечет? (на форуме сообщества Apigee).
В настоящее время для определения того, одобрен ли API для продуктов API, связанных с определенным токеном OAuth, проверяется только базовый путь.
Пример:
- Вы создаете прокси с префиксом
edgemicro_, базовым путем и целью. - Вы добавляете этот прокси-сервер в продукт. Назовем его
edgemicro-prod1. - Когда вы вызываете API через Edge Microgateway, используя ключ API или токен OAuth, Edge Microgateway проверяет, соответствует ли базовый путь API базовому пути прокси-сервера
edgemicro_*, одобренного для списка продуктов, одобренных для этого ключа или токена.
Также ознакомьтесь с разделом When using the edgemicro gateway in the products which url needs whitelisting in the products used under resources? на форуме Apigee Community.
В настоящее время поддерживается только сертификат SSL Apigee по умолчанию. В настоящее время пользовательские сертификаты SSL не поддерживаются.
Варианты решения
Если вы хотите использовать собственный сертификат SSL (не сертификат Apigee по умолчанию), у вас есть следующие варианты:
-
Используйте конечную точку
jwt_public_keyбез SSL. Измените файл конфигурации Edge Microgateway, чтобы использоватьhttp://{org}-{env}.apigee.net/edgemicro-auth/publicKey-или- -
Перед запуском Edge Microgateway задайте следующую переменную среды: export
NODE_TLS_REJECT_UNAUTHORIZED ="0"
Также ознакомьтесь с ошибками установки Edge Micro в сертификате SSL в сообществе Apigee.
edgemicro-auth в Edge, и для этого развертывания требуются учетные данные администратора организации.Вы можете использовать собственный токен, но сначала необходимо отключить встроенную авторизацию для Edge Microgateway. Вот как это сделать:
- Откройте файл конфигурации Edge Microgateway.
-
Измените два параметра oauth на true, как показано ниже:
oauth: allowNoAuthorization: true allowInvalidAuthorization: true
edgemicro start -o [org] -e [env] -k [key] -s [secret]Тестирование и отладка
- Как предотвратить ошибки "Слишком много открытых файлов" во время нагрузочного тестирования?
-
В некоторых случаях система может столкнуться с ситуацией, когда открыто слишком много подключений к файлам, и это может привести к сбою Edge Micro. Для ведения журнала по умолчанию требуется два HTTP-подключения для входящих и исходящих транзакций через Microgateway.
Для тестирования и сравнения Apigee рекомендует задать для команды ulimit системы значение unlimited:
ulimit -n unlimited. Также ознакомьтесь с ошибкой микрошлюза Edge во время тестирования нагрузки в сообществе Apigee. - Советы по быстрой разработке и отладке
-
Если вы разрабатываете плагины для Edge Microgateway, то можете обнаружить, что поддержка быстрой разработки ограничена.
Вот несколько советов:
- Чтобы запустить Edge Microgateway, можно задать переменные среды EDGEMICRO_KEY и EDGEMICRO_SECRET для пары ключей/секретов, необходимых для команды запуска Microgateway. Это позволяет запустить Edge Microgateway, не вводя ключ или секрет в командной строке. Также ознакомьтесь с разделом Настройка переменных среды в документации по Edge Microgateway.
-
Запустите Edge Microgateway в режиме отладки, чтобы увидеть дополнительный вывод в командном терминале:
DEBUG=* edgemicro start -o [org] -e [env] -k [key] -s [secret]
Бизнес и лицензирование
- Какова связь между моделями поддержки Apigee-127 и Edge Microgateway?
-
Apigee-127 – это проект ПО с открытым исходным кодом, который поддерживается в соответствии с моделью открытого исходного кода. То есть вы можете сообщать о проблемах в проекте GitHub и отправлять pull-запросы, если пытаетесь что-то исправить. Apigee-127 не требует и не включает никаких лицензионных соглашений с Apigee.
Edge Microgateway – это корпоративный продукт, который поддерживается Apigee для клиентов Apigee. Клиенты Apigee могут создавать запросы в службу поддержки, запросы функций и отчеты об ошибках, используя поддержку Apigee Edge в Google Cloud.