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 używać adaptera Apigee dla Envoy z Apigee Edge.

Wymagania wstępne

Zanim zaczniesz:

Przegląd

Ten przykład pokazuje, jak używać Apigee Adapter for Envoy z Apigee Edge w chmurze publicznej. Wywołania proxy interfejsu API przepływają przez Envoy działający jako aplikacja natywna, a Edge udostępnia usługi zarządzania interfejsem API za pomocą usługi zdalnej Apigee dla Envoy.

Na poniższym rysunku przedstawiono podstawową architekturę integracji Apigee Edge:

Ogólny widok adaptera Envoy działającego natywnie w celu komunikacji z Apigee Edge Cloud, w tym platformy zarządzania, platformy środowiska wykonawczego i usług GCP.

Lokalnie działają serwer proxy Envoy i usługa zdalna. Serwer proxy Envoy obsługuje ruch interfejsu API do i z usługi docelowej oraz komunikuje się z usługą zdalną. Usługa zdalna komunikuje się też z Apigee Edge Cloud, aby pobierać informacje o produktach API i proxy.

Udostępnianie Apigee Edge

W tym kroku użyjesz interfejsu wiersza poleceń usługi zdalnej, aby udostępnić w Apigee Edge komponenty Apigee Adapter for Envoy. Polecenie udostępniania wdraża proxy interfejsu API w Apigee Edge, a także konfiguruje certyfikat w Apigee i generuje dane logowania, których usługa zdalna będzie używać do bezpiecznego łączenia się 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 do obsługi administracyjnej:
    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 Apigee.
    environment_name Nazwa środowiska w Twojej organizacji.
    your_apigee_username Nazwa użytkownika konta Apigee. Zwykle nazwa użytkownika to adres e-mail.
    your_apigee_password Hasło do Apigee.
  3. Aby udostępnić zdalny serwer proxy usługi w Apigee Edge, wykonaj to polecenie:
    ./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. Sprawdź zawartość pliku config.yaml. Powinna 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 tajnego klucza służą do weryfikowania żądań z serwera proxy usługi zdalnej do Apigee Edge.

Uruchom usługę Apigee Remote Service for 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, który został wygenerowany 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 przypadku tej instalacji użyj najnowszej wersji. Do wyboru są 3 warianty obrazu:

Różnorodność Obraz
Google distroless gcr.io/distroless/base
Ubuntu google/apigee-envoy-adapter:v1.1.0-ubuntu
Ubuntu z Boring Crypto google/apigee-envoy-adapter:v1.1.0-boring

Aby na przykład uruchomić obraz scratch z lokalnym plikiem config.yaml dostępnym jako /config.yaml za pomocą montowania woluminu, użyj tego polecenia:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.1.0

Tworzenie przykładowych plików konfiguracji

Aby wygenerować przykładowe pliki konfiguracyjne, użyj polecenia apigee-remote-service-cli samples create.

W tym przykładzie potrzebne są te wygenerowane pliki:

  • envoy-config.yaml – konfiguracja wdrożenia usługi HTTP.

Aby wygenerować próbki:

  1. Przejdź do katalogu $CLI_HOME.
  2. Aby wygenerować pliki, uruchom to polecenie:

    ./apigee-remote-service-cli samples create --template native -c ./config.yaml
    .

    W katalogu ./samples zostaną utworzone te pliki:

    ls samples
    envoy-config.yaml
    

Więcej informacji znajdziesz w sekcji Przykładowe polecenie.

Instalowanie i uruchamianie serwera proxy Envoy

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

  1. Pobierz plik binarny Envoy lub go skompiluj albo użyj Dockera.
  2. Uruchom Envoy przy użyciu przykładowego pliku konfiguracyjnego, który został wcześniej wygenerowany dla usługi httpbin.org:
    envoy -c $CLI_HOME/samples/envoy-config.yaml

Testowanie instalacji

  1. Zadzwoń do serwisu httpbin:
    curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"
    

    Usługa jest teraz zarządzana przez Apigee, a ponieważ nie podano klucza API, wywołanie zwraca ten błąd:

    curl -i http://localhost:8080/httpbin/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
  2. Skonfiguruj produkt interfejsu API i uzyskaj klucz interfejsu API zgodnie z instrukcjami w artykule Jak uzyskać klucz interfejsu API.
  3. Wywołaj interfejs API za pomocą klucza:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers \
    -H "HOST:httpbin.org" -H "x-api-key: $APIKEY"

    Wywołanie powinno zakończyć się powodzeniem (kod stanu 200), a w odpowiedzi powinna zostać zwrócona lista nagłówków. 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 niektóre funkcje, które możesz wypróbować:

  • Jeśli produkt interfejsu API został skonfigurowany zgodnie z instrukcjami w artykule Jak uzyskać klucz interfejsu API, limit wynosi 5 żądań na minutę. Spróbuj jeszcze kilka razy zadzwonić do httpbin, aby wywołać limit. Po wyczerpaniu limitu zwracany jest błąd stanu HTTP 403.
  • Dostęp do Apigee Analytics w interfejsie Edge. Otwórz Analiza > Dane interfejsu API > Wydajność serwera proxy interfejsu API.
  • Generuj i używaj tokenów JWT do uwierzytelniania wywołań interfejsu API.
  • Użyj interfejsu wiersza poleceń, aby zarządzać tokenami, tworzyć je i kontrolować powiązania. Szczegółowe informacje o interfejsie CLI znajdziesz w dokumentacji.