Używanie adaptera Apigee dla Envoy z Apigee Edge

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Ten przykład pokazuje, jak użyć Adaptera Apigee dla Envoy z Apigee Edge.

Wymagania wstępne

Zanim zaczniesz:

Opis

Ten przykład wyjaśnia, jak używać Adaptera Apigee dla Envoy z Apigee Edge w chmurze publicznej. Wywołania serwera proxy interfejsu API przechodzą przez Envoy jako aplikację natywną w Edge, która udostępnia usługi zarządzania interfejsami API przez Apigee Remote Service dla Envoy.

Poniższy rysunek przedstawia podstawową architekturę integracji Apigee Edge:

Widok wysokiego poziomu adaptera Envoy działającego natywnie do komunikacji z Apigee Edge Cloud, w tym platformy zarządzania, platformy środowiska wykonawczego i usług GCP

Serwer proxy Envoy i usługa zdalna działają lokalnie. Envoy obsługuje ruch 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 usługach API i serwerze proxy.

Udostępnij Apigee Edge

W tym kroku użyjesz interfejsu wiersza poleceń usługi zdalnej do udostępnienia adaptera Apigee dla zasobów Envoy w Apigee Edge. Polecenie udostępniania wdraża serwer 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 Twoim systemem z Apigee.

  1. Przejdź do katalogu $CLI_HOME:
    cd $CLI_HOME
  2. Utwórz podane niżej zmienne środowiskowe. Te zmienne będą używane jako parametry w skrypcie udostępniania:
    export ORG=organization_name
    export ENV=environment_name
    export USER=your_apigee_username
    export PASSWORD=your_apigee_password

    Gdzie:

    Zmienna Opis
    organization_name Nazwa Twojej organizacji Apigee.
    environment_name Nazwa środowiska w organizacji.
    your_apigee_username Twoja nazwa użytkownika konta Apigee. Zwykle nazwą użytkownika jest adres e-mail.
    your_apigee_password Twoje hasło do Apigee.
  3. Wykonaj to polecenie, aby udostępnić zdalny serwer proxy usługi w Apigee Edge:
    ./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. Sprawdź zawartość pliku config.yaml. Powinien 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 obiektu tajnego służą do weryfikowania żądań wysyłanych ze zdalnego serwera proxy usługi do Apigee Edge.

Uruchamianie usługi Apigee Remote dla Envoy

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

Natywne uruchamianie usługi

Uruchom plik binarny usługi z plikiem konfiguracyjnym wygenerowanym przez polecenie obsługi administracyjnej:

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

Uruchamianie usługi na Dockerze

Obrazy Dockera są publikowane z tagami wersji. Aby zainstalować tę funkcję, użyj najnowszej wersji. Masz do wyboru 3 warianty obrazu:

Różnorodność Obraz
Niezmiennie rozproszone reklamy Google gcr.io/distroless/base
Ubuntu google/apigee-envoy-adapter:v1.1.0-ubuntu
Ubuntu z nudnym kryptografią google/apigee-envoy-adapter:v1.1.0-boring

Aby np. za pomocą mocowania woluminu uruchomić lokalny obraz config.yaml dostępny jako /config.yaml, użyj tego polecenia:

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

Tworzenie przykładowych plików konfiguracji

Użyj polecenia apigee-remote-service-cli samples create, aby wygenerować przykładowe pliki konfiguracji.

Do tego przykładu potrzebujesz tych wygenerowanych plików:

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

Aby wygenerować próbki:

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

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

    Te pliki trafiają do katalogu ./samples:

    ls samples
    envoy-config.yaml
    

Więcej informacji znajdziesz w artykule Polecenie Przykładowe.

Instalacja i uruchomienie serwera proxy Envoy

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

  1. Pobierz binarny Envoy, stwórz go lub użyj Dockera.
  2. Uruchom Envoy przy użyciu przykładowego pliku konfiguracji wygenerowanego wcześniej dla usługi httpbin.org:
    envoy -c $CLI_HOME/samples/envoy-config.yaml

Testowanie instalacji

  1. Wywołaj usługę 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 interfejsu API, wywołanie zwraca następujący 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 usługę API i uzyskaj klucz interfejsu API zgodnie z opisem w sekcji Jak uzyskać klucz interfejsu API.
  3. Wykonaj wywołanie interfejsu 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 się udać, mieć stan 200 i zwrócić w odpowiedzi listę 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

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

  • Jeśli usługa API została skonfigurowana w sposób opisany w sekcji Jak uzyskać klucz interfejsu API, limit został ustawiony na 5 żądań na minutę. Spróbuj wywołać usługę httpbin jeszcze kilka razy, aby aktywować limit. Po wyczerpaniu limitu zwracany jest błąd stanu HTTP 403.
  • Dostęp do Apigee Analytics w interfejsie użytkownika Edge Kliknij Analiza > Wskaźniki interfejsu API > Wydajność serwera proxy interfejsu API.
  • generować tokeny JWT i używać ich do uwierzytelniania wywołań interfejsu API.
  • Za pomocą interfejsu wiersza poleceń możesz tworzyć tokeny, zarządzać powiązaniami i nimi zarządzać. Szczegółowe informacje o interfejsie wiersza poleceń znajdziesz w dokumentacji.