Używanie adaptera Apigee dla Envoy z Apigee Edge

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Ten przykład pokazuje, jak korzystać z adaptera Apigee dla Envoy w Apigee Edge.

Wymagania wstępne

Zanim zaczniesz:

Omówienie

W tym przykładzie wyjaśniamy, jak używać adaptera Apigee dla Envoy z Apigee Edge dla Public Cloud. Wywołania serwera proxy interfejsu API przechodzą przez usługę Envoy jako natywną aplikację, w której Edge udostępnia usługi zarządzania interfejsami API z użyciem usługi zdalnej Apigee dla Envoy.

Udostępnij Apigee Edge

W tym kroku użyjesz interfejsu wiersza poleceń usługi zdalnej, aby skonfigurować adapter Apigee dla komponentów Envoy w usłudze Apigee Edge. Polecenie provisionowania wdraża serwer proxy interfejsu API do Apigee Edge, a także konfiguruje certyfikat w Apigee i generuje dane logowania, których usługa zdalna użyje do bezpiecznego połączenia z Apigee z Twojego systemu.

  1. Przejdź do katalogu $CLI_HOME:
    cd $CLI_HOME
  2. Utwórz te zmienne środowiskowe. Te zmienne będą używane jako parametry skryptu wdrożeniowego:
    export ORG=organization_name
    export ENV=environment_name
    export USER=your_apigee_username
    export PASSWORD=your_apigee_password

    Gdzie:

    Zmienna Opis
    organization_name Nazwa organizacji w Apigee.
    environment_name Nazwa środowiska w Twojej organizacji.
    your_apigee_username Twoja nazwa użytkownika konta Apigee. Zwykle jest to adres e-mail.
    your_apigee_password hasło do konta Apigee,
  3. Aby skonfigurować serwer proxy usługi zdalnej w usłudze Apigee Edge, uruchom to polecenie:

    Jeśli nie aktualizujesz, użyj tego polecenia, aby skonfigurować Apigee:

    $CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \
      --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml

    Jeśli przeprowadzasz uaktualnienie, użyj tego polecenia z flagą --force-proxy-install, aby udostępnić 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. Sprawdź zawartość pliku config.yaml. Powinien on wyglądać mniej więcej tak:
    # 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
       ...

    Wartości klucza i klucza tajnego są używane do sprawdzania żądań wysyłanych przez serwer proxy zdalnej usługi do Apigee Edge.

Uruchamianie usługi zdalnej Apigee dla Envoy

Usługę zdalną możesz uruchomić jako natywny plik binarny lub w Dockerze.

Uruchamianie usługi natywnie

Uruchom plik binarny usługi z plikiem konfiguracyjnym wygenerowanym przez polecenie udostępniania:

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

Uruchamianie usługi w Dockerze

Obrazy Dockera są publikowane z tagami wersji. W tym przypadku użyj najnowszej wersji. Do wyboru są 3 warianty obrazu:

Różnorodność Obraz
Google distroless google/apigee-envoy-adapter:v2.0.0
Ubuntu google/apigee-envoy-adapter:v2.0.0-ubuntu
Ubuntu z BoringCrypto google/apigee-envoy-adapter:v2.0.0-boring

Aby na przykład uruchomić obraz tymczasowy przy użyciu lokalnego obiektu config.yaml dostępnego jako /config.yaml przez punkt montowania woluminu, użyj tego polecenia:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0

Tworzenie przykładowych plików konfiguracji

Wygeneruj plik konfiguracji Envoy za pomocą interfejsu wiersza poleceń:

  1. Upewnij się, że jesteś w katalogu $ENVOY_HOME.
  2. Lista dostępnych szablonów konfiguracji:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. Wykonaj polecenie „samples”. W przypadku TEMPLATE zastąp jeden z obsługiwanych szablonów Envoy:

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

    Polecenie tworzy plik ./samples/envoy-config.yaml.

Więcej informacji znajdziesz w komendach dotyczących próbek.

Zainstaluj i uruchom serwer proxy Envoy

Aby zainstalować i uruchomić serwer proxy Envoy, wykonaj te czynności:

  1. Pobierz binarną wersję Envoy lub skompiluj ją albo użyj Docker.
  2. Uruchom Envoy przy użyciu przykładowego pliku konfiguracji wygenerowanego wcześniej dla usługi httpbin.org:
    envoy -c ./samples/envoy-config.yaml

Testowanie instalacji

  1. Skonfiguruj usługę interfejsu API i uzyskaj klucz interfejsu API zgodnie z instrukcjami podanymi w artykule Jak uzyskać klucz interfejsu API.
  2. Wywołaj usługę httpbin bez klucza interfejsu API:
    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    

    Usługą zarządza teraz Apigee, a ponieważ nie podano klucza API, wywołanie zwraca ten błąd.

    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. Wywołaj interfejs API, używając klucza:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/headers \
    -H "HOST:httpbin.org" -H "x-api-key: $APIKEY"

    Wywołanie powinno zakończyć się powodzeniem, z kodem 200 i listą nagłówków w odpowiedzi. Na przykład:

    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"
      }
    }

Dalsze kroki

Ruch API do usługi httpbin jest teraz zarządzany przez Apigee. Oto kilka funkcji, które możesz wypróbować:

  • Jeśli skonfigurowałeś/skonfigurowałaś interfejs API zgodnie z instrukcjami podanymi w artykule Jak uzyskać klucz interfejsu API, limit został ustawiony na 5 żądań na minutę. Aby aktywować limit, spróbuj wywołać usługę httpbin jeszcze kilka razy. Po wyczerpaniu limitu zwracany jest błąd HTTP 403.
  • Otwórz Apigee Analytics w interfejsie użytkownika Edge. Kliknij Analizuj > Dane interfejsu API > Proxy Performance (Wydajność proxy).
  • Utwórz tokeny JWT i używaj ich do uwierzytelniania wywołań interfejsu API.
  • Użyj interfejsu wiersza poleceń do zarządzania tokenami, tworzenia ich i kontrolowania powiązań. Szczegółowe informacje o CLI znajdziesz w dokumentacji.