Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
В этом примере показано, как использовать адаптер Apigee для Envoy с Apigee Edge.
Требования
| Подготовка |
|---|
|
|
Обзор
В этом примере показано, как использовать адаптер Apigee для Envoy с Apigee Edge для общедоступного облака. Вызовы API прокси-сервера проходят через Envoy, работающий как нативное приложение, а Edge предоставляет сервисы управления API через удаленный сервис Apigee для Envoy.
Как инициализировать Apigee Edge
На этом шаге вы будете использовать CLI удаленного сервиса, чтобы инициализировать ресурсы адаптера 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 для Envoy
Удаленный сервис можно запустить как нативный исполняемый файл или в Docker.
Запустить сервис в нативном режиме
Выполните двоичный файл сервиса с файлом конфигурации, который был создан командой инициализации:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Запуск сервиса в Docker
Образы Docker публикуются с тегами выпуска. Для этой установки используйте последнюю версию. Вы можете выбрать один из трех вариантов изображений:
| Разнообразие | Изображение |
|---|---|
| Google distroless | google/apigee-envoy-adapter:v2.0.0 |
| Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
| Ubuntu с BoringCrypto | google/apigee-envoy-adapter:v2.0.0-boring |
Например, чтобы запустить образ scratch с локальным файлом 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 можно найти в справочной документации.