Używanie adaptera Apigee dla Envoy z Apigee Edge

Przeglądasz 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

Ten przykład wyjaśnia, jak korzystać z adaptera Apigee dla Envoy w Apigee Edge w chmurze publicznej. Interfejs API wywołania serwera proxy przechodzą przez usługę Envoy jako natywną aplikację z interfejsem Edge API za pomocą usługi zdalnej Apigee dla Envoy.

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

Ogólne
    widok adaptera Envoy działającego natywnie do komunikacji z Apigee Edge Cloud, w tym
    platforma zarządzania, środowisko wykonawcze i usługi 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 również się komunikuje za pomocą Apigee Edge Cloud, aby pobierać informacje o usłudze API i serwerze proxy.

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 udostępniania wdraża serwer proxy interfejsu API w Apigee Edge, a także skonfiguruje certyfikat Apigee i generuje dane logowania, których usługa zdalna będzie używać do bezpiecznego połączyć Twój system 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 do skryptu 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 Twojej organizacji Apigee.
    environment_name Nazwa środowiska w organizacji.
    your_apigee_username Twoja nazwa użytkownika konta Apigee. Zwykle jest to adres e-mail.
    your_apigee_password Twoje hasło do Apigee.
  3. Aby udostępnić serwer proxy usługi zdalnej w Apigee Edge, wykonaj to polecenie:
    ./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml

    Gdzie $MFA to token autoryzacji wielopoziomowej Apigee.

  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 przez Zdalnego serwera proxy usługi. do Apigee Edge.

Uruchamianie usługi zdalnej Apigee dla Envoy

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

Uruchamianie usługi natywnie

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

$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. Aby ją zainstalować, użyj najnowszej wersji. OK możesz wybrać jedną z trzech wersji grafiki:

Różnorodność Obraz
Usługi Google gcr.io/distroless/base
Ubuntu google/apigee-envoy-adapter:v1.1.0-ubuntu
Ubuntu z nudną kryptowalutą google/apigee-envoy-adapter:v1.1.0-boring

Aby na przykład uruchomić obraz tymczasowy za pomocą lokalnego pliku 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:v1.1.0

Tworzenie przykładowych plików konfiguracji

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

W tym przykładzie 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. Aby wygenerować pliki, wykonaj to polecenie:

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

    Te pliki są wysyłane do katalogu ./samples:

    ls samples
    envoy-config.yaml
    

Więcej informacji znajdziesz w artykule Komenda samples.

Zainstaluj i uruchom serwer proxy Envoy

Wykonaj te czynności, aby zainstalować i uruchomić serwer proxy Envoy:

  1. Pobierz plik binarny Envoy lub ją utworzyć, 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. Zadzwoń pod numer httpbin usługa:
    curl -i http://localhost:8080/httpbin/headers
    

    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
    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, jak wyjaśniliśmy w tym artykule: Jak uzyskać klucz interfejsu API
  3. Wykonaj wywołanie interfejsu API przy użyciu klucza:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"

    Wywołanie powinno się powieść: w odpowiedzi musi pojawić się stan 200, a lista nagłówków powinna być zwracana. 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 interfejsu API do usługi httpbin zarządzany jest teraz Apigee. Oto kilka funkcji, które możesz wypróbować:

  • Jeśli usługa API została skonfigurowana w sposób opisany w Jak uzyskać klucz interfejsu API limit został ustawiony na 5 żądań na minutę. Aby aktywować limit, spróbuj kilkakrotnie zadzwonić do usługi httpbin. Gdy limit zostanie wyczerpany, zwrócony zostanie kod stanu HTTP 403.
  • Uzyskaj dostęp do Apigee Analytics w interfejsie Edge. Przejdź do Analiza > Wskaźniki interfejsu API > Interfejs API Proxy Performance (Wydajność serwera proxy).
  • Utwórz tokeny JWT i używaj ich do uwierzytelniania wywołań interfejsu API.
  • Interfejs wiersza poleceń pozwala tworzyć tokeny, zarządzać powiązaniami i kontrolować powiązania. Szczegóły interfejsu wiersza poleceń znajdziesz w dokumentacji.