Wyświetlasz dokumentację Apigee Edge.
Zapoznaj się z dokumentacją Apigee X. Informacje
Ten przykład pokazuje, jak używać adaptera Apigee dla Envoy z 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 proxy interfejsu API przechodzą przez Envoy działający jako natywny program, a Edge zapewnia usługi zarządzania interfejsem API za pomocą usługi zdalnej Apigee dla Envoy.
Na poniższym rysunku przedstawiono podstawową architekturę integracji Apigee Edge:
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ę również z Apigee Edge Cloud, aby pobrać informacje o produkcie API i informacji o serwerze proxy.
Udostępnij Apigee Edge
W tym kroku użyjesz interfejsu wiersza poleceń usługi zdalnej, aby udostępnić adapter Apigee dla zasobów Envoy w 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.
- Przejdź do katalogu
$CLI_HOME
:cd $CLI_HOME
- Utwórz te zmienne środowiskowe. Te zmienne zostaną wykorzystane jako parametry w skrypcie 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 Twojej organizacji. your_apigee_username nazwę użytkownika konta Apigee, Zwykle jest to adres e-mail. your_apigee_password hasło do konta Apigee. - Aby skonfigurować serwer proxy usługi zdalnej w usłudze Apigee Edge, uruchom to polecenie:
./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
- 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 usługi Envoy
Usługę zdalną możesz uruchomić jako natywny plik binarny lub w Dockerze.
Uruchamianie usługi natywnie
Uruchom binarny plik usługi z plikiem konfiguracji, który został wygenerowany przez polecenie provisioning:
$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 | gcr.io/distroless/base |
Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
Ubuntu z BoringCrypto | google/apigee-envoy-adapter:v1.1.0-boring |
Aby na przykład uruchomić obraz roboczy z lokalnym config.yaml
dostępnym jako /config.yaml
za pomocą zamontowanego 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 konfiguracji, użyj polecenia apigee-remote-service-cli samples create
.
W tym przykładzie potrzebujesz tych wygenerowanych plików:
envoy-config.yaml
– konfiguracja wdrożenia usługi HTTP.
Aby wygenerować przykłady:
- Przejdź do katalogu
$CLI_HOME
. Aby wygenerować pliki, uruchom to polecenie:
./apigee-remote-service-cli samples create --template native -c ./config.yaml
W katalogu
./samples
są generowane te pliki:ls samples envoy-config.yaml
Więcej informacji znajdziesz w komendach dotyczących próbek.
Instalowanie i uruchamianie serwera proxy Envoy
Aby zainstalować i uruchomić serwer proxy Envoy, wykonaj te czynności:
- Pobierz binarną wersję Envoy lub skompiluj ją albo użyj Docker.
- 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
- 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 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
- Skonfiguruj produkt interfejsu API i uzyskaj klucz interfejsu API zgodnie z instrukcjami w artykule Jak uzyskać klucz interfejsu API.
- Wywołaj interfejs API, używając 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ę 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 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 kilkakrotnie wywołać usługę
httpbin
. Gdy limit zostanie wyczerpany, zwrócony zostanie kod stanu HTTP 403. - Otwórz Apigee Analytics w interfejsie użytkownika Edge. Kliknij Analizuj > Dane interfejsu API > Proxy Performance (Wydajność proxy).
- generować i używać tokenów JWT 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.