Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Начиная
- Как установить Edge Microgateway?
- См. раздел «Установка Edge Microgateway» .
- Как запустить Edge Microgateway?
- См. раздел «Настройка и конфигурирование Edge Microgateway» .
- Нужна ли мне база данных для работы Microgateway?
- API-интерфейсы, передаваемые через Edge Microgateway, могут взаимодействовать с базой данных, работающей в рамках целевого сервиса. Однако Edge Microgateway работает независимо от какой-либо базы данных или хранилища данных на стороне сервера.
Операция
- Какие изменения в Edge требуют перезапуска Edge Microgateway?
- Edge Microgateway автоматически отслеживает изменения, внесенные в Apigee Edge, такие как изменения в прокси-серверах, продуктах или приложениях для разработчиков, поддерживающих microgateway. Интервал опроса по умолчанию составляет 600 секунд; однако вы можете изменить этот интервал с помощью параметра конфигурации
config_change_poll_interval. См. атрибуты edgemicro . - Если вы не хотите ждать окончания интервала опроса, используйте команду
edgemicro reload, чтобы применить последние изменения. См. раздел «Перезагрузка кластера микрошлюзов» . - Как отличить прокси, развернутый на Edge, от прокси, развернутого на Edge Microgateway?
- При настройке Edge Microgateway список прокси-серверов, поддерживающих Microgateway и развернутых на Apigee Edge, загружается в локальную конфигурацию Edge Microgateway. Прокси-серверы, поддерживающие Microgateway, — это серверы, имена которых имеют префикс
edgemicro_. - Какие у меня есть варианты ведения журналов с помощью Edge Microgateway?
- Edge Microgateway имеет встроенную функцию ведения журналов. Подробности см. в разделе «Управление файлами журналов» .
- Вы также можете написать собственный плагин для использования стороннего сервиса логирования с Edge Microgateway. Из-за особенностей работы Edge Microgateway вы не можете использовать политику логирования сообщений Apigee Edge для регистрации сообщений для Edge Microgateway. См. также статью сообщества о плагине логирования для 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 до версии 8.14.0 или более поздней, имейте в виду, что максимальный допустимый размер заголовков в запросах был уменьшен с 80 КБ до 8 КБ. Заголовки, превышающие 8 КБ, приводят к ошибке HTTP 431.
- В Node.js версии 11.6.0 добавлена опция конфигурации, позволяющая изменять максимальный размер заголовка по умолчанию. Этот параметр,
--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 для выполнения своих задач, как описано в справочнике CLI для Edge Microgateway :
-
edgemicro configure -
edgemicro upgradeauth -
edgemicro upgradekvm -
edgemicro rotatekey -
edgemicro cert check -
edgemicro cert delete -
edgemicro 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?
- Нет. Прокси-серверы Edge, поддерживающие микрошлюзы, имеют специфические требования и не поддерживают все функции обычных прокси-серверов Edge. См. Часть 2: Создание объектов на Apigee Edge.
- Можно ли включить переключение между развертыванием пакета Edge Proxy и развертыванием Edge Microgateway для одного и того же API Proxy?
- Нет. 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, должно соответствовать тем же ограничениям.
- Могу ли я связать развертывание 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 Microgateway и NGINX» и «Вертикальное и горизонтальное масштабирование» в сообществе Apigee.
- Что представляют собой TPS микрошлюза Edge по умолчанию и какие аппаратные требования предъявляются к экземпляру микрошлюза?
- Оценить аппаратные требования и показатели TPS для Edge Microgateway довольно сложно. Это зависит от вашей конфигурации, которая представляет собой сочетание настройки Edge Microgateway, использования плагинов, пользовательских плагинов и конфигурации других параметров, таких как TLS. Apigee обычно рекомендует оценить это сочетание параметров и провести тестирование производительности с учетом вашей конкретной конфигурации.
Развертывание частного облака
- Совместим ли Edge Microgateway с Edge для частного облака?
- Да. Подробности см. в разделе «Шаги по настройке частного облака Apigee» .
Плагины
- Как обеспечивается соблюдение квот в Edge Microgateway?
- При желании вы можете добавить плагин квот к своему экземпляру Edge Microgateway. Подробности см. в разделе «Использование плагина квот» .
- Как осуществляется контроль за соблюдением правил Spike Arrest при использовании Edge Microgateway?
- При желании вы можете добавить плагин защиты от скачков напряжения в свой экземпляр Edge Microgateway. Подробности см. в разделе «Использование плагина защиты от скачков напряжения» .
- Существуют ли другие способы написания плагинов для Edge Microgateway, помимо
Node.js? - Нет. Плагины должны быть написаны на
Node.js - Что произойдет, если Edge Microgateway не сможет загрузить аналитические данные в Edge?
- Edge Microgateway имеет буфер в оперативной памяти. Если буфер заполняется, старые данные отбрасываются, чтобы обеспечить бесперебойную передачу API-трафика.
- Можно ли добавлять политики в Edge Microgateway?
- Если вы прикрепляете стандартные политики 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 или настроив Mutual 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.
- Какова процедура обновления токенов Bearer после истечения срока их действия в сообществе Apigee?
В настоящее время для определения того, одобрен ли API для использования с конкретным токеном OAuth, проверяется только базовый путь.
Например:
- Вы создаете прокси-сервер с префиксом
edgemicro_, указав базовый путь и целевой объект. - Вы добавляете этот прокси к продукту. Назовём его
edgemicro-prod1. - При выполнении вызова API через Edge Microgateway с использованием ключа API или токена OAuth, Edge Microgateway проверяет, совпадает ли базовый путь API с базовым путем прокси-сервера
edgemicro_*, одобренного для списка продуктов, разрешенных для этого ключа или токена.
См. также раздел «При использовании шлюза edgemicro в продуктах, какой URL-адрес необходимо добавить в белый список в продуктах, используемых в разделе ресурсов?» на форуме сообщества Apigee.
В настоящее время поддерживается только стандартный SSL-сертификат Apigee . Пользовательские SSL-сертификаты пока не поддерживаются.
Временные решения:
Если вы хотите использовать собственный (нестандартный для Apigee) SSL-сертификат, у вас есть следующие варианты:
- Используйте конечную точку
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 Microgateway во время нагрузочного тестирования на форуме сообщества Apigee.- Советы по быстрой разработке и отладке
Если вы разрабатываете плагины для Edge Microgateway, вы можете обнаружить, что поддержка быстрой разработки ограничена.
А пока вот несколько советов:
- Для запуска Edge Microgateway можно установить переменные среды EDGEMICRO_KEY и EDGEMICRO_SECRET, указав пару ключ/секрет, необходимую для команды запуска Microgateway. Это позволит запустить Edge Microgateway без ввода ключа/секрета в командной строке. См. также раздел «Установка переменных среды» в документации Edge Microgateway.
- Запустите Edge Microgateway в режиме отладки (DEBUG), чтобы увидеть дополнительный вывод в командной строке:
DEBUG=* edgemicro start -o [org] -e [env] -k [key] -s [secret]
Бизнес и лицензирование
- Какова взаимосвязь между моделями поддержки Apigee-127 и Edge Microgateway?
Apigee-127 — это проект программного обеспечения с открытым исходным кодом, поддерживаемый в рамках модели открытого исходного кода. Это означает, что вы можете сообщать о проблемах в проекте GitHub и отправлять запросы на слияние (pull request), если хотите что-то исправить. Apigee-127 не требует заключения каких-либо лицензионных соглашений с Apigee.
С другой стороны, Edge Microgateway — это корпоративный продукт, поддерживаемый Apigee для клиентов Apigee. То есть клиенты Apigee могут создавать заявки в службу поддержки, запросы на добавление функций и отчеты об ошибках, используя Google Cloud Apigee Edge Support .