Руководство по эксплуатации

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

Как получить ключ API

В приведенном ниже примере показано, как получить ключ API, который можно использовать для проверки вызовов API к целевому сервису, проксируемому через адаптер Apigee для Envoy.

1. Как войти в Apigee

  1. Откройте интерфейс Apigee в браузере.
  2. В интерфейсе выберите ту же организацию, которую использовали для настройки адаптера Apigee для Envoy.

2. Создание разработчика

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

  1. В меню навигации слева выберите Публикация > Разработчики.
  2. Нажмите + Разработчик.
  3. Заполните диалоговое окно, чтобы создать нового разработчика. Вы можете указать любое имя разработчика и адрес электронной почты.

3. Создание продукта API

Следуйте примеру создания товара ниже. Дополнительная информация приведена в статье О конфигурации продукта API.

  1. В меню навигации слева выберите Publish > API Products (Публикация > Продукты API).
  2. Нажмите + Продукт API.
  3. Заполните страницу "Сведения о товаре" следующим образом: Не нажимайте Сохранить, пока не получите соответствующие инструкции.
  4. Поле Значение
    Название httpbin-product
    Отображаемое название httpbin product
    Среда your_environment

    Укажите среду, которую вы использовали при инициализации адаптера Apigee для Envoy с помощью команды apigee-remote-service-cli.

    Доступ Private
    Quota 5 запросов в минуту

    Также ознакомьтесь с информацией о квотах.

  5. В разделе Цели удаленного сервиса Apigee нажмите Добавить цель удаленного сервиса Apigee.
  6. В диалоговом окне Apigee remote service target (Цель удаленного сервиса Apigee) добавьте следующие значения:
    Атрибут Значение Описание
    Название цели Введите название целевого сервиса. Пример: httpbin.org. Целевая конечная точка, перед которой находится прокси-сервер Envoy.
    Прокси API remote-service Прокси-сервер remote-service, который был создан в Apigee во время установки адаптера Envoy.
    Путь Введите /resource_path, чтобы найти определенный путь. Пример: /httpbin. Путь запроса, который должен совпадать с целевой конечной точкой. Вызовы прокси-сервера API к этому пути будут сопоставляться с этим продуктом API.

    Общедоступное или частное облако Edge. На следующем скриншоте показаны правильно настроенные параметры диалогового окна для цели httpbin.org, подходящей для общедоступного или частного облака Apigee Edge.

  7. Нажмите Сохранить.

4. Создание приложения разработчика

  1. В меню навигации слева выберите Публикация > Приложения.
  2. Нажмите + Приложение.
  3. Заполните страницу приложения разработчика следующим образом: Не нажимайте "Сохранить", пока не получите инструкции.
  4. Название httpbin-app
    Отображаемое название httpbin app
    Разработчик Выберите ранее созданного разработчика или любого другого из списка.
  5. Затем добавьте в приложение два товара:
    1. Сначала в разделе "Учетные данные" нажмите + Добавить продукт и выберите продукт, который вы только что настроили: httpbin-product.
    2. Затем добавьте продукт remote-service. Этот продукт был создан автоматически при инициализации Apigee.
  6. Нажмите Создать.
  7. В разделе "Учетные данные" нажмите Показать рядом с пунктом Ключ.
  8. Скопируйте значение ключа потребителя. Это ключ API, который вы будете использовать для вызовов API к сервису httpbin.

Продукты API

Продукты API – это основная точка управления для удаленного сервиса Apigee. Когда вы создаете продукт API и связываете его с целевым сервисом, вы создаете правило, которое будет применяться ко всем запросам, которые вы настроили для обработки адаптером Apigee для Envoy.

Определение продукта API

При определении продукта API в Apigee можно задать ряд параметров, которые будут использоваться для оценки запросов:

  • Цель
  • Путь для запроса
  • Квота
  • Области действия OAuth

Целевые показатели удаленного обслуживания

Определение продукта API применяется к запросу, если запрос соответствует целевой привязке (например, httpbin.org) и пути запроса (например, /httpbin). Список возможных целей хранится как атрибут в продукте API.

По умолчанию удаленный сервис Apigee проверяет специальный заголовок :authority (host) Envoy по списку целевых объектов, но его можно настроить на использование других заголовков.

Путь к ресурсу API

Указанный путь соответствует следующим правилам:

  • Один косая черта (/) соответствует любому пути.
  • * можно использовать в любом месте, и он будет соответствовать любому символу в сегменте (между косыми чертами).
  • ** действителен в конце и соответствует любому символу до конца строки.

Квота

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

Примеры использования квот

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

Квота определена в продукте API

Параметры квоты настраиваются в продуктах API. Например, при создании продукта API можно задать допустимый лимит квоты, единицу времени и интервал.

Поскольку ключи API сопоставляются с продуктами API, при каждой проверке ключа API соответствующий счетчик квоты может быть уменьшен (если квота определена в связанном продукте).

В отличие от среды выполнения Apigee, квоты, указанные в определении продукта, автоматически применяются удаленным сервисом Apigee. Если запрос авторизован, он будет учитываться в разрешенной квоте.

Где хранятся квоты

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

Области действия OAuth

Если вы используете токены JWT, то можете ограничить их подмножествами разрешенных областей действия OAuth. Области действия, назначенные выданному JWT-токену, будут сопоставлены с областями действия продукта API.

О приложениях разработчиков

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

Использование аутентификации на основе JWT

Вы можете использовать токен JWT для выполнения аутентифицированных вызовов прокси-сервера API вместо ключа 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

Если Envoy отклонит токен, вы можете увидеть сообщение, например:

Jwks remote fetch is failed

Если это так, убедитесь, что в конфигурации Envoy в разделе remote_jwks указан действительный URI, доступный для Envoy, и что при установке прокси Apigee вы правильно задали сертификаты. Вы должны иметь возможность напрямую вызвать URI с помощью вызова GET и получить действительный ответ JSON.

Пример:

curl https://myorg-eval-test.apigee.net/remote-service/certs

Другие письма от Envoy могут выглядеть так:

  • "Audiences in Jwt are not allowed" (Аудитории в JWT не разрешены)
  • "Jwt issuer is not configured" (Издатель 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 для Envoy отправляет статистику запросов в Apigee для обработки аналитики. Apigee регистрирует эти запросы под названием связанного продукта API.

Подробнее об аналитических сервисах Apigee…