Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
В этом примере показано, как использовать Apigee Adapter for Envoy с Apigee Edge.
Предварительные требования
| Прежде чем начать: |
|---|
Обзор
В этом примере объясняется, как использовать Apigee Adapter for Envoy с Apigee Edge for Public Cloud. Вызовы API-прокси проходят через Envoy, работающий как нативное приложение, а Edge предоставляет услуги управления API через Apigee Remote Service for Envoy.
На следующем рисунке показана базовая архитектура интеграции Apigee Edge:

Локально запущены прокси-сервер Envoy и удаленная служба. Envoy обрабатывает API-трафик к целевой службе и от нее, а также взаимодействует с удаленной службой. Удаленная служба также взаимодействует с Apigee Edge Cloud для получения информации о продуктах API и прокси-сервере.
Provision Apigee Edge
На этом шаге вы будете использовать интерфейс командной строки удаленной службы для подготовки адаптера Apigee для ресурсов Envoy к Apigee Edge. Команда подготовки развертывает прокси-сервер API на Apigee Edge, а также устанавливает сертификат в Apigee и генерирует учетные данные, которые удаленная служба будет использовать для безопасного подключения вашей системы к Apigee.
- Перейдите в каталог
$CLI_HOME:cd $CLI_HOME
- Создайте следующие переменные среды. Эти переменные будут использоваться в качестве параметров для скрипта инициализации:
export ORG=organization_nameexport ENV=environment_nameexport USER=your_apigee_usernameexport PASSWORD=your_apigee_passwordГде:
Переменная Описание organization_name Название вашей организации Apigee. environment_name Название среды в вашей организации. your_apigee_username Имя пользователя вашей учетной записи Apigee. Обычно имя пользователя — это адрес электронной почты. your_apigee_password Ваш пароль от Apigee. - Выполните следующую команду для развертывания прокси-сервера удаленной службы на Apigee Edge:
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml - Проверьте содержимое файла
config.yaml. Оно должно выглядеть примерно так:# Configuration for apigee-remote-service-envoy # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52 tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-org-test.apigee.net/remote-service org_name: my-org env_name: test key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4 secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98
Значения ключа и секрета используются для проверки запросов от удаленного прокси-сервера к Apigee Edge.
Запустите службу Apigee Remote Service для службы Envoy.
Вы можете запустить удаленную службу либо как нативный исполняемый файл, либо в Docker.
Запустите сервис непосредственно в среде выполнения.
Запустите исполняемый файл службы, используя конфигурационный файл, полученный в результате выполнения команды инициализации:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Запустите сервис в Docker.
Образы Docker публикуются с тегами релизов. Для этой установки используйте последнюю версию. На выбор доступны три варианта образов:
| Вариация | Изображение |
|---|---|
| царапать | google/apigee-envoy-adapter:v1.0.0 |
| Ubuntu | google/apigee-envoy-adapter:v1.0.0-ubuntu |
| Ubuntu с Boring Crypto | google/apigee-envoy-adapter:v1.0.0-boring |
Например, чтобы запустить образ для временного использования с локальным config.yaml , доступным по адресу /config.yaml через монтирование тома, используйте следующую команду:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0
Установите и запустите прокси-сервер Envoy.
Выполните следующие действия для установки и запуска прокси-сервера Envoy:
- Загрузите исполняемый файл Envoy, соберите его самостоятельно или используйте Docker .
- Запустите Envoy, используя пример конфигурационного файла, настроенного для сервиса
httpbin.org:envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
Проверьте установку.
- Вызовите службу
httpbin:curl -i http://localhost:8080/httpbin/headers
Теперь управление сервисом осуществляет Apigee, и поскольку вы не предоставили ключ API, вызов возвращает следующую ошибку.
curl -i http://localhost:8080/httpbin/headers HTTP/1.1 403 Forbidden date: Tue, 12 May 2020 17:51:36 GMT server: envoy content-length: 0 x-envoy-upstream-service-time: 11
- Настройте API-продукт и получите API-ключ, как описано в разделе «Как получить API-ключ» .
- Выполните вызов API, используя ключ:
export APIKEY=YOUR_API_KEYcurl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"Вызов должен завершиться успешно, получив код 200 и список заголовков в ответе. Например:
curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS" HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:55:34 GMT content-type: application/json content-length: 828 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 301 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS", "X-Apigee-Accesstoken": "", "X-Apigee-Api": "httpbin.default.svc.cluster.local", "X-Apigee-Apiproducts": "httpbin", "X-Apigee-Application": "httpbin", "X-Apigee-Authorized": "true", "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS", "X-Apigee-Developeremail": "user@example.com", "X-Apigee-Environment": "test", "X-Apigee-Organization": "my-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
Следующие шаги
Теперь API-трафик к сервису httpbin обрабатывается Apigee. Вот некоторые функции, которые вы можете изучить и попробовать:
- Если вы настроили свой API-продукт, как описано в разделе «Как получить ключ API» , лимит квоты был установлен на 5 запросов в минуту. Попробуйте вызвать службу
httpbinеще несколько раз, чтобы активировать квоту. При превышении квоты вы увидите следующую ошибку:HTTP/1.1 429 Too Many Requests
- Получите доступ к Apigee Analytics в пользовательском интерфейсе Edge. Перейдите в раздел Анализ > Метрики API > Производительность прокси-сервера API .
- Генерируйте и используйте JWT-токены для аутентификации вызовов API.
- Используйте интерфейс командной строки (CLI) для управления, создания токенов и контроля привязок. Подробную информацию о CLI см. в справочнике .