Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację
Apigee X. info
Ten przykład pokazuje, jak używać Apigee Adapter for Envoy w Apigee Edge.
Wymagania wstępne
| Zanim zaczniesz: |
|---|
|
|
Przegląd
Z tego przykładu dowiesz się, jak używać Apigee Adapter for Envoy w 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 ilustracji poniżej przedstawiono podstawową architekturę integracji Apigee Edge:

Proxy Envoy i usługa zdalna działają lokalnie. 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 pobrać informacje o produkcie interfejsu API i proxy.
Udostępnianie Apigee Edge
W tym kroku użyjesz interfejsu wiersza poleceń usługi zdalnej, aby udostępnić zasoby Apigee Adapter for Envoy w Apigee Edge. 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.
- Otwórz katalog
$CLI_HOME:cd $CLI_HOME
- Utwórz te zmienne środowiskowe. Będą one używane jako
parametry skryptu udostępniania:
export ORG=organization_nameexport ENV=environment_nameexport USER=your_apigee_usernameexport PASSWORD=your_apigee_passwordGdzie:
Zmienna Opis organization_name Nazwa organizacji Apigee. environment_name Nazwa środowiska w Twojej organizacji. your_apigee_username Nazwa użytkownika konta Apigee. Zwykle jest to adres e-mail. your_apigee_password Hasło do Apigee. - Aby udostępnić 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 - 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 obiektu tajnego służą do weryfikowania żądań z Service Proxy zdalnej 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 konfiguracji, który został wygenerowany przez polecenie udostępniania:
$CLI_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. Możesz wybrać jedną z 3 odmian 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 konfiguracji, 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:
- Otwórz katalog
$CLI_HOME. Aby wygenerować pliki, wykonaj to polecenie:
./apigee-remote-service-cli samples create --template native -c ./config.yaml
W katalogu
./samplessą generowane te pliki:ls samples envoy-config.yaml
Więcej informacji znajdziesz w dokumentacji polecenia samples.
Instalowanie i uruchamianie proxy Envoy
Aby zainstalować i uruchomić proxy Envoy:
- Pobierz plik binarny Envoy binary lub skompiluj go, lub użyj Dockera.
- Uruchom Envoy za pomocą przykładowego pliku konfiguracji, który został wcześniej wygenerowany 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
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 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.
- Wykonaj wywołanie interfejsu API za pomocą klucza:
export APIKEY=YOUR_API_KEYcurl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"Wywołanie powinno się powieść ze stanem 200 i zwrócić 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 interfejsu API do usługi httpbin jest teraz zarządzany przez Apigee. Oto
kilka funkcji, które możesz poznać i wypróbować:
- Jeśli produkt interfejsu API został skonfigurowany zgodnie z instrukcjami w
artykule Jak uzyskać klucz interfejsu API,
limit przydziału został ustawiony na 5 żądań na minutę. Spróbuj wywołać usługę
httpbinjeszcze kilka razy, aby wywołać limit przydziału. Gdy limit przydziału zostanie wyczerpany, zwracany jest błąd HTTP o stanie 403. - Otwórz Apigee Analytics w interfejsie Edge. Kliknij Analyze > API Metrics > API Proxy Performance (Analiza > Dane interfejsu API > Skuteczność 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 wiersza poleceń znajdziesz w materiałach referencyjnych.