Вы просматриваете документацию 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.
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:
$CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
При обновлении используйте эту команду с флагом
--force-proxy-installдля развертывания Apigee:$CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
- Проверьте содержимое файла
config.yaml. Оно должно выглядеть примерно так:# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75 ...
Значения ключа и секрета используются для проверки запросов от удаленного прокси-сервера к Apigee Edge.
Запустите службу Apigee Remote Service для службы Envoy.
Вы можете запустить удаленную службу либо как нативный исполняемый файл, либо в Docker.
Запустите сервис непосредственно в среде выполнения.
Запустите исполняемый файл службы, используя конфигурационный файл, полученный в результате выполнения команды инициализации:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Запустите сервис в Docker.
Образы Docker публикуются с тегами релизов. Для этой установки используйте последнюю версию. На выбор доступны три варианта образов:
| Вариация | Изображение |
|---|---|
| Google дистрибутив без дистрибутива | google/apigee-envoy-adapter:v2.0.0 |
| Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
| Ubuntu с Boring Crypto | google/apigee-envoy-adapter:v2.0.0-boring |
Например, чтобы запустить образ для временного использования с локальным config.yaml , доступным по адресу /config.yaml через монтирование тома, используйте следующую команду:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0
Создайте примеры конфигурационных файлов.
Создайте файл конфигурации Envoy с помощью интерфейса командной строки:
- Убедитесь, что вы находитесь в каталоге
$ENVOY_HOME. - Перечислите доступные шаблоны конфигурации:
$CLI_HOME/apigee-remote-service-cli samples templates
Выполните команду samples. Вместо TEMPLATE используйте один из поддерживаемых шаблонов Envoy:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
Эта команда создает файл
./samples/envoy-config.yaml.
Для получения более подробной информации см. команду Samples .
Установите и запустите прокси-сервер Envoy.
Выполните следующие действия для установки и запуска прокси-сервера Envoy:
- Загрузите исполняемый файл Envoy, соберите его самостоятельно или используйте Docker .
- Запустите Envoy, используя пример конфигурационного файла, который вы ранее сгенерировали для сервиса
httpbin.org:envoy -c ./samples/envoy-config.yaml
Проверьте установку.
- Настройте API-продукт и получите API-ключ, как описано в разделе «Как получить API-ключ» .
- Вызовите сервис
httpbinбез ключа API:curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
Теперь управление сервисом осуществляет Apigee, и поскольку вы не предоставили ключ API, вызов возвращает следующую ошибку.
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" 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, используя ключ:
export APIKEY=YOUR_API_KEYcurl -i http://localhost:8080/headers \ -H "HOST:httpbin.org" -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-статуса 403. - Получите доступ к Apigee Analytics в пользовательском интерфейсе Edge. Перейдите в раздел Анализ > Метрики API > Производительность прокси-сервера API .
- Генерируйте и используйте JWT-токены для аутентификации вызовов API.
- Используйте интерфейс командной строки (CLI) для управления, создания токенов и контроля привязок. Подробную информацию о CLI см. в справочнике .