Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Jak uzyskać klucz interfejsu API
Przykład poniżej wyjaśnia, jak uzyskać klucz interfejsu API, którego można użyć do weryfikacji Wywołania interfejsu API usługi docelowej przesyłanej przez serwer proxy za pomocą adaptera Apigee dla Envoy.
1. Zaloguj się w Apigee
- Otwórz interfejs Apigee w przeglądarce.
- Po otwarciu interfejsu wybierz tę samą organizację, która została użyta do skonfigurowania adaptera Apigee dla Envoy.
2. Tworzenie programisty
Do testowania możesz użyć dotychczasowego programisty lub utworzyć nowy:
- Kliknij Opublikuj > Programistów w bocznym menu nawigacyjnym.
- Kliknij + Deweloper.
- Wypełnij informacje w oknie, aby utworzyć nowego dewelopera. Możesz użyć dowolnej nazwy lub adresu e-mail dewelopera.
3. Tworzenie usługi API
Skorzystaj z podanego niżej przykładu tworzenia produktu. Zobacz też Informacje o programie Konfiguracja usługi API.
- Kliknij Opublikuj > Usługi API w bocznym menu nawigacyjnym.
- Kliknij + Usługa API.
- Wypełnij stronę Szczegóły produktu w następujący sposób.
- W sekcji Cele usługi zdalnej Apigee kliknij Dodaj zdalny cel usługi Apigee.
- W oknie celu usługi zdalnej Apigee dodaj te wartości:
Atrybut Wartość Opis Nazwa celu Wpisz nazwę usługi docelowej. Na przykład: httpbin.org
Docelowy punkt końcowy przed serwerem proxy Envoy. Ścieżka Wpisz ścieżkę zasobu w usłudze, którą chcesz dopasować. Dla: przykład: /headers
.Ścieżka żądania do dopasowania w docelowym punkcie końcowym. Wywołania tej ścieżki przez serwer proxy interfejsu API będzie pasować do tej usługi API. - Kliknij Zapisz.
Pole | Wartość |
---|---|
Nazwa | httpbin-product
|
Wyświetlana nazwa | httpbin product
|
Środowisko | your_environment
Ustaw w nim środowisko użyte podczas udostępniania adaptera Apigee dla Envoy. |
Dostęp | Private
|
Limit | 5 żądań co minutę
Zobacz też Limit. |
4. Tworzenie aplikacji związanej z programistą
- Kliknij Opublikuj > Aplikacje w bocznym menu nawigacyjnym.
- Kliknij + Aplikacja.
- Wypełnij informacje na stronie dewelopera aplikacji w następujący sposób. Nie zapisuj karty, dopóki nie pojawi się taka prośba.
- Następnie dodaj do aplikacji usługę API:
- W sekcji Dane logowania kliknij + Dodaj usługę i wybierz usługę, której skonfigurowano: httpbin-product.
- Kliknij Utwórz.
- W sekcji Dane logowania kliknij Pokaż obok opcji Klucz.
- Skopiuj wartość klucza klienta. Ta wartość to klucz interfejsu API.
którego będziesz używać do wywoływania interfejsu API w usłudze
httpbin
.
Usługi API
Usługi API są głównymi elementami sterującymi dla usługi zdalnej Apigee. Gdy utworzysz usługę API i powiążesz ją z docelowej usługi, tworzysz zasadę, która będzie zastosowano do wszystkich żądań, które skonfigurujesz adapter Apigee dla Envoy się nią zająć.
Definicja usługi API
Definiując usługę API w Apigee, możesz ustawić liczbę parametrów, posłuży do oceny próśb:
- Cel
- Ścieżka żądania
- Limit
- Zakresy protokołu OAuth
Zdalne cele usługi
Definicja usługi API zostanie zastosowana do żądania, jeśli żądanie pasuje zarówno do powiązanie (np.
httpbin.org
) i ścieżkę żądania (np./httpbin
). Lista potencjalnych celów jest przechowywana jako atrybut na Usługa API.Domyślnie usługa zdalna Apigee sprawdza specjalny nagłówek
:authority (host)
Envoy jej listę celów; ale można go skonfigurować tak, by korzystały z innych nagłówków.Ścieżka zasobu API
Podana ścieżka pasuje zgodnie z tymi regułami:
- Pojedynczy ukośnik (
/
) pasuje do dowolnej ścieżki. - Parametr
*
działa w dowolnym miejscu i zapewnia dopasowanie w obrębie segmentu (między ukośnikami). - Parametr
**
jest prawidłowy na końcu i dopasowuje wszystko do końca wiersza.
Limit
Limit określa liczbę wiadomości z żądaniami, które aplikacja może przesłać do interfejsu API w ciągu godziny, dnia, tygodnia lub miesiąca. Gdy aplikacja osiągnie limit, będą odrzucane.
Przypadki użycia limitówLimity pozwalają wymusić liczbę żądań, które klient może wysłać do usługi w w określonym czasie. Limity są często używane do egzekwowania umów biznesowych lub gwarancji jakości usług w programistów i partnerów, a nie do operacyjnego zarządzania ruchem. Na przykład plik limit ten można wykorzystać do ograniczenia ruchu dla usługi bezpłatnej, jednocześnie zapewniając pełny dostęp płacących klientów.
Limit jest zdefiniowany w usłudze APIParametry limitów konfiguruje się w usługach API. Jeśli na przykład tworzysz interfejs API, usługi, możesz opcjonalnie ustawić dozwolony limit, jednostkę czasu i interwał.
Klucze interfejsu API mapują się z powrotem na usługi API, dlatego przy każdym weryfikowaniu klucza interfejsu API odpowiedni licznik limitu można zmniejszyć (jeśli limit jest zdefiniowany w powiązanej usłudze).
W przeciwieństwie do środowiska wykonawczego Apigee limity wpisane w definicji usługi są automatycznie wyegzekwowane przez usługę zdalną Apigee. Jeśli żądanie jest autoryzowane, żądanie jest wliczane do dozwolonego limitu.
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ą dokładne i prawdopodobnie może zostać przekroczony, jeśli masz więcej niż jedną usługę zdalną, która utrzymuje limit. Jeśli połączenie ze środowiskiem wykonawczym Apigee zostanie zakłócone, limit lokalny będzie kontynuowany jako samodzielny do tego czasu, aby mógł ponownie połączyć się ze środowiskiem wykonawczym Apigee.
Zakresy OAuth
Jeśli używasz tokenów JWT, możesz je ograniczyć do podzbiorów dozwolonych zakresów protokołu OAuth. Zakresy przypisane do wydanego tokena JWT zostaną sprawdzone pod kątem zakresów usługi API.
Informacje o aplikacjach dla programistów
Po skonfigurowaniu usług API utwórz aplikację powiązaną z programistą. Aplikacja umożliwia klientowi dostęp do powiązanych usług API za pomocą klucza interfejsu API lub tokena JWT.
Korzystanie z uwierzytelniania opartego na JWT
Zamiast klucza interfejsu API możesz używać tokena JWT do wykonywania uwierzytelnionych wywołań serwera proxy interfejsu API. Ten wyjaśnia, jak używać polecenia
apigee-remote-service-cli token
do tworzenia, sprawdzania i rotacji tokenów JWT.Omówienie
Weryfikacja i uwierzytelnianie JWT jest obsługiwane przez Envoy za pomocą interfejsu Filtr uwierzytelniania JWT.
Po uwierzytelnieniu filtr Envoy
ext-authz
wysyła nagłówki żądań i token JWT doapigee-remote-service-envoy
Jest zgodny z żądaniamiapi_product_list
iscope
tokena JWT z usługami Apigee API, aby autoryzować ją pod kątem celu żądania.Tworzenie tokenów JWT Apigee
Tokeny JWT Apigee można utworzyć za pomocą interfejsu wiersza poleceń:
$CLI_HOME/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 strony Curl:
curl https://org-env.apigee.net/remote-token/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"
Użycie tokena JWT
Po uzyskaniu tokena należy po prostu przekazać go do Envoy w nagłówku autoryzacji. Przykład:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
Błąd tokena JWT
Odrzucenie posłańca
Jeśli Envoy odrzuci token, możesz zobaczyć taki komunikat:
Jwks remote fetch is failed
Jeśli tak, upewnij się, że konfiguracja Envoy zawiera prawidłowy identyfikator URI w
remote_jwks
, dostęp do niej przez Envoy oraz prawidłowe ustawić certyfikaty podczas instalowania serwera proxy Apigee. Powinniście być w stanie , aby bezpośrednio wywołać identyfikator URI za pomocą wywołania GET i otrzymać prawidłową odpowiedź JSON.Przykład:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Inne wiadomości z Envoy mogą wyglądać tak:
- „Odbiorcy w języku japońskim nie są dozwoleni”
- „Wystawca JWT nie został skonfigurowany”
Te wyniki pochodzą z wymagań w konfiguracji Envoy, które być może musisz zmodyfikować.
Sprawdzanie tokena
Do sprawdzenia tokena możesz użyć interfejsu wiersza poleceń. Przykład
$CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
lub
$CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN
Debugowanie
Patrz sekcja Awaria prawidłowego klucza interfejsu API.Logowanie
Poziom rejestrowania możesz dostosować w usłudze $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Całe rejestrowanie jest wysyłane do stdout i stderr.
Element Wymagane Opis -l, --poziom-logu Prawidłowe poziomy: debugowanie, informacje, ostrzeżenie, błąd. Dostosowuje poziom rejestrowania. Domyślnie: informacje -j, --json-log Wysyła dane wyjściowe logu jako rekordy JSON. Envoy zapewnia logowanie. Więcej informacji znajdziesz w tych linkach do dokumentacji Envoy:
Korzystanie z sieciowego serwera proxy
Serwer proxy HTTP można wstawić za pomocą zmiennych środowiskowych HTTP_PROXY i HTTPS_PROXY w środowisku pliku binarnego apigee-remote-service-envoy. Przy ich użyciu NO_PROXY zmiennej środowiskowej może też używać do wykluczania określonych hostów z możliwości wysyłania ich 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ć osiągalny z poziomu apigee-remote-service-envoy.
Informacje o wskaźnikach i statystykach
Punkt końcowy wskaźników Prometheus jest dostępny w
:5001/metrics
. Możesz skonfigurować ten numer portu. Patrz: Plik konfiguracji.Statystyki Envoy
Poniższe linki zawierają informacje o uzyskiwaniu analizy serwera proxy Envoy dane:
Analityka Istio
Poniższe linki zawierają informacje o uzyskiwaniu analizy serwera proxy Envoy dane:
Analityka Apigee
Usługa zdalna Apigee dla Envoy wysyła statystyki żądań do Apigee na potrzeby przetwarzania analiz. Apigee zgłasza te żądania pod powiązaną nazwą usługi API.
Informacje o statystykach Apigee znajdziesz zobacz omówienie usług Analytics.
Obsługa środowiska wielu najemców
Teraz możesz włączyć adapter, aby obsługiwał wiele w organizacji Apigee. Ta funkcja umożliwia korzystanie z 1 Apigee Adapter do Envoy powiązany z 1 organizacją Apigee do obsługi wielu środowisk. Przed po tej zmianie 1 adapter był zawsze powiązany z 1 środowiskiem Apigee.
Aby skonfigurować obsługę wielu środowisk, zmień wartość od
tenant:env_name
do*
wconfig.yaml
. Na przykład:- Otwórz plik
config.yaml
w edytorze. - Zmień wartość z
tenant.env_name
na*
. Na przykład:apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: remote_service_api: https://myorg-myenv.apigee.net/remote-service org_name: apigee-docs-hybrid-a env_name: * allow_unverified_ssl_cert: true analytics: collection_interval: 10s auth: jwt_provider_key: https://myorg-myenv.apigee.net.net/remote-token/token
- Zapisz plik.
- Zastosuj plik:
kubectl apply -f $CLI_HOME/config.yaml
Po skonfigurowaniu trybu wielu środowisk musisz też skonfigurować Envoy, aby wysyłał odpowiednią do adaptera, dodając te metadane w pliku Sekcja
virtual_hosts:routes
plikuenvoy-config.yaml
. Na przykład:- Wygeneruj plik
envoy-config.yaml
za pomocą interfejsu wiersza poleceń. Na przykład:$CLI_HOME/apigee-remote-service-cli samples create \ -t envoy-1.16 -c ./config.yaml --out myconfigs
- Otwórz wygenerowany plik (o nazwie
envoy-config.yaml
). - Dodaj poniższe metadane w pliku
virtual_host
lub Sekcjaroutes
pliku:typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: test
Przykład poniżej pokazuje konfigurację instancji
virtual_host
z wieloma trasami gdzie każda trasa kieruje ruch do określonego środowiska:filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress_http route_config: virtual_hosts: - name: default domains: "*" routes: - match: { prefix: /test } route: cluster: httpbin typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: test - match: { prefix: /prod } route: cluster: httpbin typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: prod
- Powtórz ostatni krok, aby w razie potrzeby dodać więcej środowisk.
- Zapisz plik i zastosuj go.
Konfigurowanie mTLS między adapterem a środowiskiem wykonawczym Apigee
Certyfikaty TLS po stronie klienta możesz dostarczyć w sekcji
tenant
plikconfig.yaml
adaptera, aby używać mTLS między adapterem a środowiskiem wykonawczym Apigee. Ten zmiana dotyczy wszystkich obsługiwanych platform Apigee. Umożliwia też korzystanie z mTLS na potrzeby analiz. dla Apigee Edge dla platformy Private Cloud. Na przykład:tenant: tls: ca_file: path/ca.pem cert_file: path/cert.pem key_file: path/key.pem allow_unverified_ssl_cert: false
Nazwa | httpbin-app
|
Wyświetlana nazwa | httpbin app
|
Deweloper | Wybierz wcześniej utworzonego programistę lub wybierz dowolnego z listy. |