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:
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.
- Przejdź do katalogu
$CLI_HOME
:cd $CLI_HOME
- 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. - Wykonaj to polecenie, aby udostępnić zdalny serwer proxy usługi w Apigee Edge:
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
- Sprawdź zawartość pliku
config.yaml
. Powinien wyglądać mniej więcej tak:# Configuration for apigee-remote-service-envoy # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52 tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-org-test.apigee.net/remote-service org_name: my-org env_name: test key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4 secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98
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:
$REMOTE_SERVICE_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 |
---|---|
zadrapanie | google/apigee-envoy-adapter:v1.0.0 |
Ubuntu | google/apigee-envoy-adapter:v1.0.0-ubuntu |
Ubuntu z nudnym kryptografią | google/apigee-envoy-adapter:v1.0.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.0.0
Instalacja i uruchomienie serwera proxy Envoy
Aby zainstalować i uruchomić serwer proxy Envoy, wykonaj te czynności:
- Pobierz binarny Envoy, stwórz go lub użyj Dockera.
- Uruchom Envoy za pomocą przykładowego pliku konfiguracji skonfigurowanego na potrzeby usługi
httpbin.org
:envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.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 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
- Skonfiguruj usługę API i uzyskaj klucz interfejsu API zgodnie z opisem w sekcji Jak uzyskać klucz interfejsu API.
- Wykonaj wywołanie interfejsu API za pomocą klucza:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/httpbin/headers -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 przekroczeniu limitu zobaczysz ten błąd:HTTP/1.1 429 Too Many Requests
- 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.