Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
Jak uzyskać klucz interfejsu API
Z przykładu poniżej dowiesz się, jak uzyskać klucz interfejsu API, którego możesz użyć do weryfikacji wywołań interfejsu API do usługi docelowej przekazywanej przez Apigee Adapter for Envoy.
1. Logowanie w Apigee
- Otwórz interfejs Apigee w przeglądarce.
- W interfejsie wybierz tę samą organizację, której użyto do skonfigurowania Apigee Adapter for Envoy.
2. Tworzenie programisty
Możesz użyć istniejącego konta dewelopera na potrzeby testowania lub utworzyć nowe w ten sposób:
- W menu nawigacyjnym po lewej stronie kliknij Opublikuj > Deweloperzy.
- Kliknij + Programista.
- Wypełnij okno, aby utworzyć nowego dewelopera. Możesz użyć dowolnej nazwy dewelopera lub adresu e-mail.
3. Tworzenie usługi API
Postępuj zgodnie z przykładem tworzenia produktu podanym poniżej. Zobacz też Informacje o konfiguracji produktu interfejsu API.
- W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Produkty interfejsu API.
- Kliknij + Usługa API.
- Wypełnij stronę Szczegóły produktu w ten sposób: Nie klikaj Zapisz, dopóki nie pojawi się odpowiednia instrukcja.
- W sekcji Cele zdalnych usług Apigee kliknij Dodaj cel zdalnej usługi Apigee.
- W oknie docelowym usługi zdalnej Apigee dodaj te wartości:
Atrybut Wartość Opis Nazwa miejsca docelowego Wpisz nazwę usługi docelowej. Na przykład: httpbin.orgDocelowy punkt końcowy, przed którym znajduje się serwer proxy Envoy. Proxy interfejsu API remote-serviceremote-serviceproxy, które zostało udostępnione w Apigee podczas instalacji adaptera Envoy.Ścieżka Wpisz /resource_path, aby dopasować konkretną ścieżkę. Na przykład:/httpbin.Ścieżka żądania, która ma być dopasowana w punkcie końcowym. Wywołania proxy interfejsu API do tej ścieżki będą pasować do tej usługi API. Publiczna lub prywatna chmura Edge: na zrzucie ekranu poniżej widać prawidłowo skonfigurowane ustawienia okna dialogowego dla środowiska docelowego
httpbin.org, które są odpowiednie dla publicznej lub prywatnej chmury Apigee Edge.
- Kliknij Zapisz.
| Pole | Wartość |
|---|---|
| Nazwa | httpbin-product
|
| Wyświetlana nazwa | httpbin product
|
| Środowisko | your_environment
Ustaw to pole na środowisko, którego użyto podczas udostępniania Apigee Adapter for Envoy za pomocą polecenia |
| Dostęp | Private
|
| Quota | 5 żądań na minutę
Zobacz też Limity. |
4. Tworzenie aplikacji związanej z programistą
- W menu nawigacyjnym po lewej stronie kliknij Opublikuj > Aplikacje.
- Kliknij + Aplikacja.
- Wypełnij stronę aplikacji dewelopera w ten sposób: Nie zapisuj zmian, dopóki nie otrzymasz takiej instrukcji.
- Następnie dodaj do aplikacji 2 produkty:
- Najpierw w sekcji Dane logowania kliknij + Dodaj usługę i wybierz skonfigurowaną przed chwilą usługę: httpbin-product.
- Następnie dodaj produkt remote-service. Ten produkt został utworzony automatycznie podczas udostępniania Apigee.
- Kliknij Utwórz.
- W sekcji Dane logowania kliknij Pokaż obok Klucz.
- Skopiuj wartość klucza klienta. Jest to klucz interfejsu API, którego będziesz używać do wywoływania interfejsu API usługi
httpbin.
| Nazwa | httpbin-app
|
| Wyświetlana nazwa | httpbin app
|
| Deweloper | Wybierz utworzonego wcześniej dewelopera lub dowolnego dewelopera z listy. |
Informacje o usługach API
Produkty API to główny punkt kontrolny usługi zdalnej Apigee. Gdy tworzysz produkt API i łączysz go z usługą docelową, tworzysz zasadę, która będzie stosowana do wszystkich żądań, które skonfigurujesz w Apigee Adapter for Envoy.
Definicja usługi API
Podczas definiowania produktu interfejsu API w Apigee możesz ustawić szereg parametrów, które będą używane do oceny żądań:
- Cel
- Ścieżka żądania
- Limit
- Zakresy protokołu OAuth
Cele usługi zdalnej
Definicja usługi API będzie stosowana do żądania, jeśli pasuje ono zarówno do powiązania docelowego (np. httpbin.org), jak i do ścieżki żądania (np. /httpbin). Lista potencjalnych miejsc docelowych jest przechowywana jako atrybut usługi API.
Domyślnie usługa zdalna Apigee sprawdza specjalny nagłówek :authority (host) Envoy pod kątem listy celów, ale można ją skonfigurować tak, aby używała innych nagłówków.
Ścieżka zasobu interfejsu API
Wpisana ścieżka jest dopasowywana zgodnie z tymi regułami:
- Pojedynczy ukośnik (
/) pasuje do każdej ścieżki. - Symbol
*jest prawidłowy w dowolnym miejscu i pasuje do segmentu (między ukośnikami). - Znak
**jest prawidłowy na końcu i pasuje do wszystkiego do końca wiersza.
Limit
Limit określa liczbę wiadomości z żądaniami, które aplikacja może przesyłać do interfejsu API w ciągu godziny, dnia, tygodnia lub miesiąca. Gdy aplikacja osiągnie limit, kolejne wywołania interfejsu API zostaną odrzucone.
Przypadki użycia limituLimity umożliwiają egzekwowanie liczby żądań, które klient może wysyłać do usługi w określonym czasie. Limity są często używane do egzekwowania umów handlowych lub umów SLA z deweloperami i partnerami, a nie do zarządzania ruchem operacyjnym. Na przykład limit może być używany do ograniczania ruchu w przypadku bezpłatnej usługi, a jednocześnie umożliwiać pełny dostęp klientom, którzy za nią płacą.
Limit jest zdefiniowany w usłudze APIParametry limitu są konfigurowane w usługach API. Na przykład podczas tworzenia produktu API możesz opcjonalnie ustawić dozwolony limit wykorzystania, jednostkę czasu i interwał.
Klucze API są powiązane z usługami API, więc za każdym razem, gdy klucz API zostanie zweryfikowany, odpowiedni licznik limitu może zostać zmniejszony (jeśli w powiązanej usłudze zdefiniowano limit).
W przeciwieństwie do środowiska wykonawczego Apigee limity wpisane w definicji produktu są automatycznie egzekwowane przez usługę zdalną Apigee. Jeśli prośba zostanie autoryzowana, zostanie uwzględniona w dozwolonym limicie.
Gdzie są utrzymywane limityLimity są utrzymywane i sprawdzane lokalnie przez proces usługi zdalnej oraz asynchronicznie utrzymywane w środowisku wykonawczym Apigee. Oznacza to, że limity nie są precyzyjne i mogą zostać przekroczone, jeśli masz więcej niż 1 usługę zdalną, która utrzymuje limit. Jeśli połączenie ze środowiskiem wykonawczym Apigee zostanie przerwane, lokalny limit będzie nadal działać jako samodzielny limit do momentu ponownego połączenia ze środowiskiem wykonawczym Apigee.
Zakresy OAuth
Jeśli używasz tokenów JWT, możesz ograniczyć je do podzbiorów dozwolonych zakresów OAuth. Zakresy przypisane do wydanego tokena JWT zostaną sprawdzone pod kątem zgodności z zakresami usługi API.
Informacje o aplikacjach dla deweloperów
Po skonfigurowaniu produktów interfejsu API utworzysz aplikację powiązaną z deweloperem. Aplikacja umożliwia klientowi dostęp do powiązanych usług API za pomocą klucza API lub tokena JWT.
Uwierzytelnianie oparte na JWT
Zamiast klucza interfejsu API możesz używać tokena JWT do wykonywania uwierzytelnionych wywołań proxy interfejsu API. W tej sekcji dowiesz się, jak używać polecenia apigee-remote-service-cli token do tworzenia, sprawdzania i rotowania tokenów JWT.
Przegląd
Weryfikacja i uwierzytelnianie tokenów JWT jest obsługiwane przez Envoy za pomocą filtra uwierzytelniania JWT.
Po uwierzytelnieniu filtr ext-authz Envoy wysyła nagłówki żądań i JWT do apigee-remote-service-envoy. Porównuje roszczenia api_product_list i scope w JWT z usługami API Apigee, aby autoryzować je względem miejsca docelowego żądania.
Tworzenie tokenów JWT Apigee
Tokeny JWT Apigee można tworzyć za pomocą interfejsu wiersza poleceń:
apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
Możesz też użyć standardowego punktu końcowego tokena OAuth. Przykład polecenia curl:
curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"Używanie tokena JWT
Gdy uzyskasz token, po prostu przekaż go do Envoy w nagłówku Authorization. Przykład:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
Błąd tokena JWT
Odrzucenie przez Envoy
Jeśli Envoy odrzuci token, może się pojawić komunikat podobny do tego:
Jwks remote fetch is failed
Jeśli tak jest, upewnij się, że konfiguracja Envoy zawiera prawidłowy identyfikator URI w sekcji remote_jwks, że jest on dostępny dla Envoy i że podczas instalowania serwera proxy Apigee certyfikaty zostały prawidłowo ustawione. Powinna być możliwość bezpośredniego wywołania identyfikatora URI za pomocą wywołania GET i otrzymania prawidłowej odpowiedzi JSON.
Przykład:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Inne wiadomości od Envoy mogą wyglądać tak:
- „Audiences in Jwt are not allowed”
- „Wystawca JWT nie jest skonfigurowany”
Wynikają one z wymagań w konfiguracji Envoy, które być może trzeba będzie zmodyfikować.
Sprawdzanie tokena
Za pomocą interfejsu wiersza poleceń możesz sprawdzić swój token. Przykład
apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
lub
apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN
Debugowanie
Zobacz Prawidłowy klucz interfejsu API nie działa.Logowanie
Poziom rejestrowania możesz dostosować w usłudze $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Wszystkie logi są wysyłane do stderr.
| Element | Wymagane | Opis |
|---|---|---|
| -l, --log-level | Prawidłowe poziomy: debug, info, warn, error. | Dostosowuje poziom rejestrowania. Domyślnie: info |
| -j, --json-log | Emituje dane wyjściowe logu jako rekordy JSON. |
Envoy zapewnia logowanie. Więcej informacji znajdziesz w dokumentacji Envoy:
Korzystanie z serwera proxy sieci
Serwer proxy HTTP można wstawić za pomocą zmiennych środowiskowych HTTP_PROXY i HTTPS_PROXY w środowisku pliku binarnego apigee-remote-service-envoy. W takim przypadku możesz też użyć zmiennej środowiskowej NO_PROXY, aby wykluczyć określonych hostów z przesyłania przez serwer proxy.
HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] NO_PROXY=127.0.0.1,localhost
Pamiętaj, że serwer proxy musi być dostępny z apigee-remote-service-envoy.
Informacje o danych i statystykach
Punkt końcowy danych Prometheusa jest dostępny pod adresem :5001/metrics. Możesz skonfigurować ten numer portu. Zobacz Plik konfiguracji.
Statystyki Envoy
Poniższe linki zawierają informacje o uzyskiwaniu danych analitycznych serwera proxy Envoy:
Statystyki Istio
Poniższe linki zawierają informacje o uzyskiwaniu danych analitycznych serwera proxy Envoy:
Analityka Apigee
Usługa zdalna Apigee dla Envoy wysyła statystyki żądań do Apigee w celu przetworzenia ich na potrzeby analiz. Apigee raportuje te żądania pod nazwą powiązanego produktu API.
Więcej informacji o analityce Apigee znajdziesz w omówieniu usług analitycznych.