Использование адаптера Apigee для Envoy с Apigee Edge

Вы просматриваете документацию 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.

  1. Перейдите в каталог $CLI_HOME :
    cd $CLI_HOME
  2. Создайте следующие переменные среды. Эти переменные будут использоваться в качестве параметров сценария подготовки:
    export ORG=organization_name
    export ENV=environment_name
    export USER=your_apigee_username
    export PASSWORD=your_apigee_password

    Где:

    Переменная Описание
    organization_name Название вашей организации Apigee.
    environment_name Имя среды в вашей организации.
    your_apigee_username Имя пользователя вашей учетной записи Apigee. Обычно имя пользователя представляет собой адрес электронной почты.
    your_apigee_password Ваш пароль Apigee.
  3. Выполните следующую команду, чтобы предоставить прокси-сервер удаленной службы в 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
  4. Проверьте содержимое файла 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.

Вы можете запустить Remote Service либо как собственный двоичный файл, либо в Docker.

Запустите службу изначально

Запустите двоичный файл службы с файлом конфигурации, полученным командой обеспечения:

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml

Запустите службу в Docker

Образы Docker публикуются с тегами выпуска. Для этой установки используйте последнюю версию. На выбор есть три варианта изображения:

Вариация Изображение
Google без дистрибутива google/apigee-envoy-adapter:v2.0.0
Убунту google/apigee-envoy-adapter:v2.0.0-ubuntu
Ubuntu со скучной криптографией 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 с помощью CLI:

  1. Убедитесь, что вы находитесь в каталоге $ENVOY_HOME .
  2. Перечислите доступные шаблоны конфигурации:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. Выполните команду образцов. Вместо TEMPLATE замените один из поддерживаемых шаблонов Envoy:

    $CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml

    Команда создает файл ./samples/envoy-config.yaml .

Дополнительную информацию см. в разделе Команда «Образцы» .

Установите и запустите прокси-сервер Envoy.

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

  1. Загрузите двоичный файл Envoy, соберите его или используйте Docker .
  2. Запустите Envoy, используя образец файла конфигурации, который вы создали ранее для службы httpbin.org :
    envoy -c ./samples/envoy-config.yaml

Проверьте установку

  1. Настройте продукт API и получите ключ API, как описано в разделе «Как получить ключ API» .
  2. Вызовите службу 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
  3. Сделайте вызов API, используя ключ:
    export APIKEY=YOUR_API_KEY
    curl -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 см. в справочнике .