Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Как получить ключ API
В следующем примере объясняется, как получить ключ API, который можно использовать для проверки вызовов API к целевому сервису, проксируемому через Apigee Adapter for Envoy.
1. Войдите в Apigee.
- Откройте пользовательский интерфейс Apigee в браузере.
- После входа в пользовательский интерфейс выберите ту же организацию, которую вы использовали для настройки адаптера Apigee для Envoy.
2. Создайте разработчика.
Для тестирования можно использовать уже существующего разработчика или создать нового следующим образом:
- В боковом навигационном меню выберите «Опубликовать» > «Разработчики» .
- Click + Developer.
- Заполните диалоговое окно, чтобы создать нового разработчика. Вы можете использовать любое имя/адрес электронной почты разработчика по своему усмотрению.
3. Создайте API-продукт
Следуйте приведенному ниже примеру создания продукта. См. также раздел «О настройке продукта API» .
- В боковом навигационном меню выберите «Публикация» > «Продукты API» .
- Click + API Product .
- Заполните страницу с подробными сведениями о товаре следующим образом. Не нажимайте кнопку «Сохранить», пока вам не будет дано соответствующее указание.
- В разделе « Цели удаленной службы Apigee» нажмите «Добавить цель удаленной службы Apigee» .
- В диалоговом окне «Целевой объект удаленной службы Apigee» добавьте следующие значения:
Атрибут Ценить Описание Целевое имя Введите название целевого сервиса. Например: httpbin.orgЦелевая конечная точка, перед которой работает прокси-сервер Envoy. API-прокси remote-serviceremote-serviceсервер, который был настроен в Apigee во время установки адаптера Envoy.Путь Введите / resource_pathдля сопоставления с конкретным путем. Например:/httpbin.Путь запроса для сопоставления с целевой конечной точкой. Вызовы API-прокси по этому пути будут соответствовать данному API-продукту. На следующем снимке экрана показаны правильно настроенные параметры диалога для целевого объекта
httpbin.org, что является подходящей конфигурацией для публичного или частного облака Apigee Edge.
- Нажмите « Сохранить ».
| Поле | Ценить |
|---|---|
| Имя | httpbin-product |
| Отображаемое имя | httpbin product |
| Среда | your_environment Установите значение, соответствующее среде, которую вы использовали при настройке Apigee Adapter for Envoy с помощью |
| Доступ | Private |
| Квота | 5 запросов каждые 1 минуту См. также раздел «Понимание квот» . |
4. Создайте приложение для разработчиков.
- В боковом навигационном меню выберите «Публикация» > «Приложения» .
- Click + App .
- Заполните страницу приложения разработчика следующим образом. Не сохраняйте изменения, пока не получите соответствующее указание.
- Далее добавьте в приложение два товара:
- Сначала в разделе «Учетные данные» нажмите «+ Добавить продукт» и выберите только что настроенный продукт: httpbin-product .
- Затем добавьте продукт удаленного обслуживания . Этот продукт был создан автоматически при настройке Apigee.
- Нажмите «Создать» .
- В разделе «Учетные данные» нажмите «Показать» рядом с пунктом «Ключ» .
- Copy the value of the Consumer Key. This value is the API key that you will use to make API calls to the
httpbinservice.
| Имя | httpbin-app |
| Отображаемое имя | httpbin app |
| Разработчик | Выберите разработчика, которого вы создали ранее, или выберите любого разработчика из списка. |
О продуктах API
API-продукты являются основной точкой управления для удаленной службы Apigee. При создании API-продукта и его привязке к целевой службе вы создаете политику, которая будет применяться ко всем запросам, которые вы настроите для обработки в вашем адаптере Apigee для Envoy.
Определение продукта API
При определении API-продукта в Apigee можно задать ряд параметров, которые будут использоваться для обработки запросов:
- Цель
- Путь запроса
- Квота
- Области действия OAuth
Цели удаленного обслуживания
Определение API-продукта будет применяться к запросу, если запрос соответствует как целевой привязке (например, httpbin.org ), так и пути запроса (например /httpbin ). Список потенциальных целей хранится в качестве атрибута API-продукта.
По умолчанию служба Apigee Remote Service проверяет специальный заголовок Envoy :authority (host) на соответствие списку целевых объектов; однако ее можно настроить на использование других заголовков.
Путь к ресурсу API
Введенный путь соответствует следующим правилам:
- Одиночный слэш (
/) сам по себе соответствует любому пути. -
*допустимо в любом месте и соответствует сегменту (между косыми чертами). -
**это допустимый символ в конце строки, соответствующий любому содержимому до конца строки.
Квота
Квота определяет количество запросов, которые приложение может отправить в API в течение часа, дня, недели или месяца. Когда приложение достигает лимита квоты, последующие вызовы API отклоняются.
Варианты использования квотКвоты позволяют ограничить количество запросов, которые клиент может отправить к сервису за определенный промежуток времени. Квоты часто используются для обеспечения соблюдения бизнес-контрактов или соглашений об уровне обслуживания (SLA) с разработчиками и партнерами, а не для оперативного управления трафиком. Например, квота может использоваться для ограничения трафика для бесплатного сервиса, предоставляя при этом полный доступ платным клиентам.
Квота определяется в API-продукте.Параметры квот настраиваются в API-продуктах. Например, при создании API-продукта можно дополнительно установить допустимый лимит квоты, единицу времени и интервал.

Поскольку ключи API сопоставляются с продуктами API, при каждой проверке ключа API соответствующий счетчик квоты может быть уменьшен (если квота определена в соответствующем продукте).
В отличие от среды выполнения Apigee, квоты, введенные в определении продукта, автоматически применяются удаленной службой Apigee. Если запрос авторизован, он будет учитываться в рамках разрешенной квоты.
Там, где сохраняются квотыКвоты поддерживаются и проверяются локально процессом удаленной службы и асинхронно с Apigee Runtime. Это означает, что квоты не являются точными и могут быть превышены, если у вас более одной удаленной службы, поддерживающей квоту. Если соединение с Apigee Runtime прерывается, локальная квота будет продолжать действовать как автономная квота до тех пор, пока не будет восстановлено соединение с Apigee Runtime.
Области действия OAuth
Если вы используете токены JWT, вы можете ограничить их использование подмножествами разрешенных областей действия OAuth. Области действия, назначенные вашему выданному токену JWT, будут проверяться на соответствие областям действия API-продукта.
О приложениях для разработчиков
После настройки API-продуктов вы создадите приложение, связанное с разработчиком. Приложение позволит клиенту получить доступ к соответствующим API-продуктам с помощью API-ключа или JWT-токена.
Использование аутентификации на основе JWT.
Вместо ключа API можно использовать JWT-токен для выполнения аутентифицированных вызовов API-прокси. В этом разделе объясняется, как использовать команду apigee-remote-service-cli token для создания, проверки и ротации JWT-токенов.
Обзор
Проверка и аутентификация JWT осуществляется Envoy с помощью собственногофильтра аутентификации JWT .
После аутентификации фильтр Envoy ext-authz отправляет заголовки запроса и JWT в apigee-remote-service-envoy . Он сопоставляет утверждения api_product_list и scope из JWT с продуктами API Apigee, чтобы авторизовать его для целевого объекта запроса.
Создание JWT-токенов Apigee
JWT-токены Apigee можно создавать с помощью интерфейса командной строки:
apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
Или используя стандартную конечную точку для ввода токена OAuth. Пример использования Curl:
curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"Использование токена JWT
Получив токен, вы просто передаете его в Envoy в заголовке Authorization. Пример:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
Сбой токена JWT
Отказ посланника
Если Envoy отклонит токен, вы можете увидеть сообщение следующего вида:
Jwks remote fetch is failed
В таком случае убедитесь, что в разделе remote_jwks вашей конфигурации Envoy указан действительный URI, что он доступен для Envoy и что вы правильно настроили сертификаты при установке прокси-сервера Apigee. Вы должны иметь возможность напрямую вызвать URI с помощью GET-запроса и получить действительный JSON-ответ.
Пример:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Другие сообщения от Envoy могут выглядеть следующим образом:
- «Присутствие зрителей в Jwt запрещено»
- "Эмитент JWT не настроен"
Эти параметры заданы в настройках Envoy, и вам, возможно, потребуется их изменить.
Проверить токен
Вы можете использовать интерфейс командной строки для проверки своего токена. Пример.
apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
или
apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN
Отладка
См. раздел "Недействительный ключ API" .Ведение журнала
Вы можете настроить уровень логирования для службы $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Все сообщения в журнал отправляются в stderr.
| Элемент | Необходимый | Описание |
|---|---|---|
| -l, --log-level | Допустимые уровни: debug, info, warn, error. | Регулирует уровень ведения журнала. По умолчанию: info. |
| -j, --json-log | Выводит лог-файлы в формате JSON. |
Envoy обеспечивает ведение журналов. Для получения дополнительной информации см. следующие ссылки на документацию Envoy:
Использование сетевого прокси
HTTP-прокси можно установить, используя переменные среды HTTP_PROXY и HTTPS_PROXY в окружении исполняемого файла apigee-remote-service-envoy. При их использовании также можно использовать переменную среды NO_PROXY для исключения определенных хостов из рассылки через прокси.
HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] NO_PROXY=127.0.0.1,localhost
Помните, что прокси-сервер должен быть доступен из apigee-remote-service-envoy.
О метриках и аналитике
Доступна конечная точка для сбора метрик Prometheus по адресу :5001/metrics . Вы можете настроить этот номер порта. См. файл конфигурации .
Аналитика Envoy
По следующим ссылкам вы найдете информацию о получении аналитических данных прокси-сервера Envoy:
Аналитика Istio
По следующим ссылкам вы найдете информацию о получении аналитических данных прокси-сервера Envoy:
Аналитика Apigee
Apigee Remote Service for Envoy отправляет статистику запросов в Apigee для аналитической обработки. Apigee сообщает об этих запросах под соответствующим именем продукта API.
Для получения информации об аналитике Apigee см. раздел «Обзор аналитических сервисов» .