Dokumentacja konfiguracji serwera proxy interfejsu API

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Jesteś deweloperem Apigee pracującym nad Apigee Edge, więc Twoje główne działania skonfigurowanie serwerów proxy interfejsów API, które działają jako serwery proxy dla interfejsów API lub usług backendu. Ten dokument jest odniesienie do wszystkich elementów konfiguracji dostępnych podczas tworzenia serwerów proxy interfejsu API.

Jeśli dopiero uczysz się tworzyć serwery proxy interfejsów API, zalecamy zacząć od tego tematu Utwórz prosty interfejs API serwera proxy.

Najczęstsze sposoby edytowania konfiguracji serwera proxy:

Lokalne tworzenie konfiguracji serwera proxy

Możesz pobrać konfiguracje serwera proxy, aby edytować je na komputerze lokalnym. Kiedy Gdy skończysz, prześlij wyniki do Edge. Takie podejście umożliwia integrację serwera proxy do kontroli źródła, obsługi wersji i innych współdzielonych przepływów pracy. Ponadto, według lokalnej konfiguracji serwera proxy, możesz użyć własnego edytora XML narzędzi.

Ta sekcja opisuje, jak za pomocą interfejsu pobrać istniejącą konfigurację serwera proxy, edytować ją a potem prześlij ją z powrotem do Edge w celu wdrożenia. Możesz też użyć apigeetool, aby pobrać i wdrożyć nową konfigurację serwera proxy (za pomocą narzędzi fetchproxy i deployproxy).

Aby lokalnie edytować konfigurację serwera proxy za pomocą interfejsu użytkownika:

  1. Pobierz bieżącą konfigurację serwera proxy w interfejsie Edge. (W przypadku serwerów proxy API w widoku danych, wybierz Projekt > Pobierz wersję).
  2. Na komputerze lokalnym utwórz nowy katalog i rozwiń pobrany plik ZIP do .

    Aby rozwinąć plik ZIP, możesz użyć narzędzia takiego jak unzip, w następujący sposób: przykład pokazuje:

    mkdir myappdir
    unzip ./my-app_app_rev3_2019_04_20.zip -d myappdir

    Rozwinięta zawartość pliku ZIP powinna być podobna do struktury opisanej w Struktura serwera proxy interfejsu API.

  3. W razie potrzeby zmodyfikuj pliki źródłowe. Opis plików źródłowych na serwerze proxy , patrz Pliki konfiguracji strukturę katalogu serwera proxy interfejsu API.

    Aby na przykład włączyć monitorowania zdrowia w serwera proxy interfejsu API, zmodyfikuj plik konfiguracji TargetEndpoint w Katalog /apiproxy/targets/. Domyślny plik w tym katalogu to default.xml, ale mogą też istnieć pliki o innych nazwach, jeśli używasz celów warunkowych.

    W tym przypadku, jeśli plik konfiguracji TargetEndpoint i jego katalog nie istnieją, je tworzyć.

  4. Gdy skończysz edytowanie plików konfiguracji serwera proxy, zapisz zmiany.
  5. Przejdź do nowego katalogu utworzonego podczas rozwijania plików ZIP (katalog główny rozwinięte pliki konfiguracji).

    Jeśli na przykład pliki zostały rozwinięte do katalogu /myappdir, zmień na zgodnie z poniższym przykładem:

    cd myappdir

    Przejdź do tego katalogu, zanim ponownie zarchiwizujesz pliki konfiguracji serwera proxy , bo nie chcesz, by katalog /myappdir był włączany do pliku ZIP. Katalog najwyższego poziomu w pliku ZIP musi obejmować /apiproxy.

  6. Ponownie zarchiwizuj pliki konfiguracji serwera proxy, w tym nowe lub zmienione pliki. Za pomocą takie jak zip, jak pokazano w poniższym przykładzie:
    zip my-new-proxy.zip -r .

    Katalog najwyższego poziomu w pliku ZIP musi obejmować /apiproxy.

    Nie ma specjalnych wymagań co do nazwy pliku ZIP. Nie musisz na przykład: zwiększyć numer wersji lub określić datę w nazwie pliku, ale można to jest przydatny przy debugowaniu lub kontroli źródeł.

    Edge zwiększa numer wersji nowej konfiguracji serwera proxy podczas przesyłania .

  7. Prześlij nową konfigurację serwera proxy za pomocą interfejsu Edge. (W sekcji serwery proxy interfejsów API w widoku danych, wybierz Projekt > Prześlij nową wersję).

    Jeśli pojawi się błąd taki jak Bundle is invalid. Empty bundle., sprawdź, katalog najwyższego poziomu Twojego pliku ZIP to /apiproxy. Jeśli nie, zarchiwizuj ją ponownie plików konfiguracji serwera proxy z katalogu głównego rozwiniętego katalogu.

    Po przesłaniu nowej konfiguracji serwera proxy Edge zwiększa numer wersji i wyświetli ją w widoku Podsumowanie wersji.

    Edge nie wdroży nowej wersji po przesłaniu jej za pomocą interfejsu użytkownika.

  8. Wdróż nową wersję.

Więcej informacji: Samouczek: jak pobrać serwer proxy za pomocą interfejsu użytkownika i interfejsu API do zarządzania Społeczność Apigee.

Struktura serwera proxy interfejsu API

Serwer proxy interfejsu API składa się z takiej konfiguracji:

Konfiguracja podstawowa Główne ustawienia konfiguracji serwera proxy interfejsu API. Zobacz informacje podstawowe Konfiguracja.
Konfiguracja punktu końcowego serwera proxy Ustawienia przychodzącego połączenia HTTP (od żądania aplikacji do Apigee Edge) przepływów odpowiedzi i załączników zasad. Zobacz ProxyEndpoint.
Konfiguracja docelowego punktu końcowego Ustawienia wychodzącego połączenia HTTP (z Apigee Edge do usługi backendu) przepływów żądań i odpowiedzi oraz załączników do zasad. Zobacz TargetEndpoint.
Przepływy potoki żądań i odpowiedzi ProxyEndpoint i TargetEndpoint, dla których zasady mogą być załączony. Zobacz Przepływy.
Zasady Pliki konfiguracji w formacie XML zgodne ze schematami zasad Apigee Edge. Zobacz Zasady.
Materiały Skrypty, pliki JAR i pliki AutoML, do których odwołują się zasady, aby wykonywać niestandardową logikę. Zobacz Materiały.

Struktura katalogów serwera proxy interfejsu API i treści

Komponenty w tabeli powyżej są zdefiniowane przez pliki konfiguracji w tych plikach struktura katalogów:

Pokazuje strukturę katalogów, w której apiproxy jest katalogiem głównym. Bezpośrednio w
    Katalog apiproxy to zasady, serwery proxy, zasoby i katalogi docelowe, a także
    Weatherapi.xml.

Katalog i pliki konfiguracji struktura serwera proxy interfejsu API

W tej sekcji opisujemy pliki konfiguracji i strukturę katalogów serwera proxy interfejsu API.

Konfiguracja podstawowa

/apiproxy/weatherapi.xml

Podstawowa konfiguracja serwera proxy interfejsu API, która określa nazwę tego serwera. Nazwa musi być niepowtarzalna w obrębie organizacji.

Przykładowa konfiguracja:

<APIProxy name="weatherapi">
</APIProxy>

Podstawowe elementy konfiguracji

Nazwa Opis Domyślny Wymagana?
APIProxy
name Nazwa serwera proxy interfejsu API, która musi być niepowtarzalna w obrębie organizacji. Postacie których możesz używać w nazwie, są ograniczone do: A-Za-z0-9_- Nie dotyczy Tak
revision Numer wersji konfiguracji serwera proxy interfejsu API. Nie musisz specjalnie ustawiać numer wersji, ponieważ Apigee Edge automatycznie śledzi bieżącą wersję interfejsu API serwera proxy. Nie dotyczy Nie
ConfigurationVersion Wersja schematu konfiguracji serwera proxy interfejsu API, z którą jest zgodny ten serwer proxy. obecnie jedyną obsługiwaną wartością jest mainVersion 4 i podrzędnychVersion 0. To ustawienie może być używane w przyszłości do ewolucji formatu proxy interfejsu API. 4.0 Nie
Description Opis tekstowy serwera proxy interfejsu API. Jeśli zostanie podany, opis będzie wyświetlany w w interfejsie zarządzania krawędziami. Nie dotyczy Nie
DisplayName Przyjazna dla użytkownika nazwa, która może się różnić od atrybutu name atrybutu Konfiguracja serwera proxy interfejsu API. Nie dotyczy Nie
Policies Lista zasad w katalogu /policies tego serwera proxy interfejsu API. Ty zwykle jest widoczny tylko wtedy, gdy serwer proxy interfejsu API został utworzony za pomocą interfejsu zarządzania brzegiem. To po prostu „manifest” które umożliwia wgląd w zawartość serwer proxy API. Nie dotyczy Nie
ProxyEndpoints Lista punktów ProxyEndpoints w katalogu /proxies tego serwera proxy interfejsu API. Ty zwykle widzi ten element tylko wtedy, gdy serwer proxy interfejsu API został utworzony za pomocą Edge za pomocą prostego interfejsu zarządzania. To po prostu „manifest” ma umożliwiać wgląd w zawartość serwera proxy API. Nie dotyczy Nie
Resources Lista zasobów (JavaScript, Python, Java, GPT) w interfejsie /resources tego serwera proxy interfejsu API. Zwykle zobaczysz ten element tylko wtedy, gdy serwer proxy interfejsu API był utworzona za pomocą interfejsu zarządzania brzegiem. To po prostu „manifest” które ma na celu zapewniają wgląd w zawartość serwera proxy interfejsu API. Nie dotyczy Nie
Spec Identyfikuje specyfikację OpenAPI powiązaną z serwerem proxy API. Wartość jest ustawiony na adres URL lub na ścieżkę w magazynie specyfikacji.

Uwaga: magazyn specyfikacji jest dostępny w nowej wersji Edge Więcej informacji o magazynie specyfikacji znajdziesz w sekcji Zarządzanie i udostępnianie specyfikacji.
Nie dotyczy Nie
TargetServers Lista serwerów docelowych, do których odwołuje się dowolny element docelowy w punkcie końcowym tego serwera proxy interfejsu API. Ty zwykle jest widoczny tylko wtedy, gdy serwer proxy interfejsu API został utworzony za pomocą interfejsu zarządzania brzegiem. To po prostu „manifest” które umożliwia wgląd w zawartość serwer proxy API. Nie dotyczy Nie
TargetEndpoints Lista punktów docelowych w katalogu /targets tego serwera proxy interfejsu API. Ty zwykle widzi ten element tylko wtedy, gdy serwer proxy interfejsu API został utworzony za pomocą Edge za pomocą prostego interfejsu zarządzania. To po prostu „manifest” ma umożliwiać wgląd w zawartość serwera proxy API. Nie dotyczy Nie

ProxyEndpoint

Poniższy obraz przedstawia przepływ żądania/odpowiedzi:

Pokazuje, jak klient wywołujący żądanie HTTP
  posprzedażna. Żądanie przechodzi przez punkt końcowy serwera proxy, a następnie przez docelowy punkt końcowy, zanim
  przetwarzane przez usługę HTTP. Odpowiedź przechodzi przez docelowe zakończenie, a następnie
  punktu końcowego serwera proxy, zanim zostanie zwrócony do klienta.

/apiproxy/proxies/default.xml

Konfiguracja ProxyEndpoint definiuje interfejs przychodzący (widoczny dla klienta) dla interfejsu API serwera proxy. Gdy konfigurujesz ProxyEndpoint, konfigurujesz konfigurację sieci, określa sposób wywoływania interfejsu API przez serwer proxy przez aplikacje klienckie („aplikacje”).

Poniższa przykładowa konfiguracja ProxyEndpoint będzie przechowywana w /apiproxy/proxies:

<ProxyEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPProxyConnection>
    <BasePath>/weather</BasePath>
    <VirtualHost>default</VirtualHost>
  </HTTPProxyConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <RouteRule name="default">
    <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>

Wymagane elementy konfiguracji w podstawowym punkcie ProxyEndpoint to:

Konfiguracja punktu końcowego serwera proxy Elements

Nazwa Opis Domyślny Wymagana?
ProxyEndpoint
name Nazwa punktu końcowego serwera proxy. Musi być unikalna w konfiguracji serwera proxy interfejsu API, jeśli W rzadkich przypadkach zdefiniowano wiele punktów ProxyEndpoint. Znaki, których możesz używać w nazwie są ograniczone do tych elementów: A-Za-z0-9._\-$ %. Nie dotyczy Tak
PreFlow Definiuje zasady przepływu wstępnego przepływu żądania lub odpowiedzi. Nie dotyczy Tak
Flows
Definiuje zasady w przepływach warunkowych żądania lub odpowiedzi.
Nie dotyczy Tak
PostFlow
Definiuje zasady przepływu PostFlow żądania lub odpowiedzi.
Nie dotyczy Tak
HTTPProxyConnection Definiuje adres sieciowy i ścieżkę URI powiązaną z serwerem proxy interfejsu API
BasePath

Wymagany ciąg znaków, który jednoznacznie identyfikuje ścieżkę identyfikatora URI używaną przez Apigee Edge do kierowania wiadomości przychodzące do odpowiedniego serwera proxy interfejsu API.

Ścieżka BasePath to fragment identyfikatora URI (np. /weather) dołączony do podstawowy adres URL serwera proxy interfejsu API (na przykład http://apifactory-test.apigee.net). Ścieżka podstawowa musi być unikalna w obrębie środowiska. Unikalność jest weryfikowana, gdy serwer proxy interfejsu API generowane lub zaimportowane.

Używanie symbolu wieloznacznego w ścieżkach podstawowych

Możesz użyć jednego lub więcej znaków „*” symbole wieloznaczne w ścieżkach bazowych serwera proxy interfejsu API. Na przykład element podstawowy ścieżka /team/*/members umożliwia klientom nawiązywanie połączeń https://[host]/team/blue/members i https://[host]/team/green/members bez konieczności tworzyć nowe serwery proxy interfejsów API w celu obsługi nowych zespołów. Pamiętaj, że znaki /**/ nie są obsługiwane.

Ważne: Apigee NIE obsługuje użycia symbolu wieloznacznego „*” jako pierwszy ścieżki podstawowej. Na przykład ta funkcja NIE jest obsługiwana: /*/search. Początek ścieżki podstawowej znakiem „*” może spowodować nieoczekiwane błędy, ponieważ wskazuje poprawne ścieżki.

/ Tak
VirtualHost

Wiąże serwer proxy interfejsu API z określonymi podstawowymi adresami URL dla środowiska. VirtualHost to konfiguracja nazwana, która definiuje jeden lub więcej adresów URL środowiska.

Znane hosty wirtualne zdefiniowane dla punktu końcowego serwera proxy określają domeny i porty ujawniany serwer proxy interfejsu API oraz adres URL używany przez aplikacje do wywoływania interfejsu API. serwera proxy.

Domyślnie dla środowiska zdefiniowane są 2 nazwane hosty VirtualHost: default i secure. Organizacja może również zdefiniować własne domeny. Aby mieć pewność, że serwer proxy interfejsu API jest dostępny tylko przez HTTPS, na przykład ustaw parametr VirtualHost w protokole HTTPProxyConnection na serwerze secure.

domyślna Nie
Properties Zestaw opcjonalnych ustawień konfiguracji HTTP można zdefiniować jako właściwości <ProxyEndpoint> Nie dotyczy Nie
FaultRules
Określa, jak punkt końcowy serwera proxy reaguje na błąd. Reguła błędu określa dwa elementy:
  • Warunek określający obsłużoną usterkę na podstawie wstępnie zdefiniowanego kategoria, podkategoria lub nazwa błędu
  • Co najmniej jedna zasada określająca działanie reguły błędu dla odpowiedni warunek

Patrz Obsługa błędów.

Nie dotyczy Nie
DefaultFaultRule

Usuwanie wszystkich błędów (systemowych, transportu, przesyłania wiadomości lub zasad), które nie są wyraźnie jest obsługiwany przez inną regułę błędu.

Patrz Obsługa błędów.

Nie dotyczy Nie
RouteRule Określa miejsce docelowe wiadomości z żądaniami przychodzących po przetworzeniu przez Potok żądania ProxyEndpoint. Zwykle reguła RouteRule wskazuje na nazwany docelowy punkt końcowy ale może też wskazywać bezpośrednio adres URL.
Name Atrybut wymagany, który zawiera nazwę reguły RouteRule. Postacie, którymi jesteś których nazwy można używać tylko w nazwie: A-Za-z0-9._\-$ %. Dla: na przykład Cat2 %_ jest imieniem i nazwiskiem. Nie dotyczy Tak
Condition Opcjonalna instrukcja warunkowa używana do dynamicznego routingu w czasie działania. Warunkowe Reguły trasy są przydatne na przykład do włączania routingu opartego na treści na potrzeby backendu obsługi wersji. Nie dotyczy Nie
TargetEndpoint

Opcjonalny ciąg znaków identyfikujący nazwaną konfigurację elementu docelowego punktu końcowego. Nazwa Element TargetEndpoint to dowolny element docelowy zdefiniowany na tym samym serwerze proxy interfejsu API w katalogu /targets).

Nadając nazwę docelowemu punktowi końcowemu, wskazujesz, dokąd mają być przekazywane wiadomości z żądaniami po przetworzeniu przez potok żądania ProxyEndpoint. Jest to opcjonalne .

Punkt ProxyEndpoint może bezpośrednio wywoływać adres URL. Może to być na przykład zasób JavaScript lub Java, jako klienta HTTP, może wykonywać podstawowe zadania Docelowy punkt końcowy, który służy do przekazywania żądań do usługi backendu.

Nie dotyczy Nie
URL Opcjonalny ciąg znaków określający wychodzący adres sieciowy wywoływany przez ProxyEndpoint, pomijając wszystkie konfiguracje docelowego punktu końcowego, które mogą być przechowywane w /targets Nie dotyczy Nie

Jak skonfigurować reguły trasy

Nazwany punkt końcowy odnosi się do pliku konfiguracji w folderze /apiproxy/targets do , w którym reguła RouteRule przekazuje żądanie po przetworzeniu przez punkt ProxyEndpoint.

Na przykład ta reguła RouteRule odnosi się do konfiguracji /apiproxy/targets/myTarget.xml:

<RouteRule name="default">
  <TargetEndpoint>myTarget</TargetEndpoint>
</RouteRule>

Wywołanie bezpośredniego adresu URL

Punkt ProxyEndpoint może też bezpośrednio wywołać usługę backendu. Bezpośrednie wywołanie adresu URL powoduje pominięcie o nazwie konfiguracji TargetEndpoints w pliku /apiproxy/targets. Z tego powodu TargetEndpoint to opcjonalna konfiguracja serwera proxy interfejsu API, chociaż w praktyce jest to bezpośrednie wywołanie nie jest zalecane z ProxyEndpoint.

Na przykład ta reguła RouteRule wysyła wywołanie HTTP do http://api.mycompany.com/v2

<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL> 
</RouteRule>

Trasy warunkowe

Reguły trasy można połączyć w łańcuch, aby obsługiwać routing dynamiczny w czasie działania. Żądania przychodzące mogą być kierowane do nazwanych konfiguracji docelowego punktu końcowego, bezpośrednio do adresów URL lub do kombinacji obu tych metod, na podstawie nagłówków HTTP, treści wiadomości, parametrów zapytania lub informacji kontekstowych, takich jak dzień, region itp.

Warunkowe reguły trasy działają tak jak inne instrukcje warunkowe w Apigee Edge. Patrz informacje o warunkach i informacje o zmiennych.

Na przykład poniższe połączenie reguły RouteRule najpierw sprawdza żądanie przychodzące, aby zweryfikować wartość nagłówka HTTP. Jeśli nagłówek HTTP routeTo zawiera wartość TargetEndpoint1, żądanie zostanie przekierowane do docelowego punktu końcowego o nazwie TargetEndpoint1 W przeciwnym razie żądanie przychodzące jest przekazywane do http://api.mycompany.com/v2

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL>
</RouteRule>

Trasy null

zerową regułę RouteRule można zdefiniować na potrzeby obsługi scenariuszy, w których wiadomość z żądaniem należy przekazać do punktu docelowego punktu końcowego. Jest to przydatne, gdy punkt końcowy proxy wykonuje wszystkie niezbędne przetwarzanie, np. przez JavaScript do wywołania usługi zewnętrznej lub pobierania danych z wyszukiwania do usług interfejsu API” klucz/wartość.

Na przykład poniższe zdefiniowanie trasy o wartości null:

<RouteRule name="GoNowhere"/>

Warunkowe trasy o wartości null mogą być przydatne. W poniższym przykładzie trasa o wartości null jest skonfigurowana tak jest wykonywane, gdy nagłówek HTTP request.header.X-DoNothing ma wartość inną niż null

<RouteRule name="DoNothingOnDemand">
  <Condition>request.header.X-DoNothing != null</Condition>
</RouteRule>

Pamiętaj, że reguły RouteRule można połączyć łańcuchami, więc warunkowa pusta trasa powinna mieć zwykle wartość 1 jest komponentem zbioru reguł trasy zaprojektowanych do obsługi routingu warunkowego.

Praktyczne wykorzystanie warunkowej trasy null wspiera buforowanie. Za pomocą wartości zmiennej określonej przez zasadę Cache możesz skonfigurować serwer proxy interfejsu API do wykonywania Trasa o wartości null w przypadku udostępniania wpisu z pamięci podręcznej.

<RouteRule name="DoNothingUnlessTheCacheIsStale">
  <Condition>lookupcache.LookupCache-1.cachehit is true</Condition>
</RouteRule>

TargetEndpoint

Pokazuje, jak klient wywołujący żądanie HTTP
  posprzedażna. Żądanie przechodzi przez punkt końcowy serwera proxy, a następnie przez docelowy punkt końcowy, zanim
  przetwarzane przez usługę HTTP. Odpowiedź przechodzi przez docelowe zakończenie, a następnie
  punktu końcowego serwera proxy, zanim zostanie zwrócony do klienta.

Docelowy punkt końcowy to wychodzący odpowiednik punktu ProxyEndpoint. Docelowy punkt końcowy działa jako do usługi backendu lub interfejsu API – wysyła on żądania i otrzymuje odpowiedzi.

Serwer proxy interfejsu API nie musi mieć żadnych punktów docelowych. Punkt pośredni ProxyEndpoints można skonfigurować tak, aby wywoływał adresy URL bezpośrednio. Serwer proxy interfejsu API bez punktu docelowego punktu końcowego zwykle zawiera punkt ProxyEndpoint, który bezpośrednio wywołuje usługę backendu albo skonfigurowano do wywoływania usługi za pomocą języka Java JavaScriptu.

Konfiguracja docelowego punktu końcowego

/targets/default.xml

Docelowy punkt końcowy definiuje połączenie wychodzące z Apigee Edge do innej usługi lub .

Oto przykładowa konfiguracja elementu TargetEndpoint:

<TargetEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <SSLInfo/>
  </HTTPTargetConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <ScriptTarget/>
  <LocalTargetConnection/>
</TargetEndpoint>

Konfiguracja docelowego punktu końcowego Elements

Element TargetEndpoint może wywołać element docelowy na jeden z tych sposobów:

  • HTTPTargetConnection w przypadku wywołań HTTP(S)
  • LocalTargetConnection na potrzeby łańcucha lokalnego serwera proxy
  • ScriptTarget w przypadku wywołań hostowanych przez Edge Skrypt Node.js

Skonfiguruj tylko 1 z tych elementów w docelowym punkcie końcowym.

Nazwa Opis Domyślny Wymagana?
TargetEndpoint
name Nazwa docelowego punktu końcowego, która musi być niepowtarzalna w obrębie serwera proxy interfejsu API konfiguracji. Nazwa elementu TargetEndPoint jest używana w regule trasy ProxyEndpoint do bezpośrednich żądań przetwarzania danych wychodzących. Znaki, których możesz używać w nazwie są ograniczone do tych typów treści: A-Za-z0-9._\-$ %. Nie dotyczy Tak
PreFlow Definiuje zasady przepływu wstępnego przepływu żądania lub odpowiedzi. Nie dotyczy Tak
Flows
Definiuje zasady w przepływach warunkowych żądania lub odpowiedzi.
Nie dotyczy Tak
PostFlow
Definiuje zasady przepływu PostFlow żądania lub odpowiedzi.
Nie dotyczy Tak
HTTPTargetConnection

Za pomocą elementów podrzędnych określa zasięg zasobów backendu przez HTTP.

Jeśli używasz HTTPTargetConnection, nie konfiguruj innych typów połączeń docelowych (ScriptTarget lub LocalTargetConnection).

URL Określa adres sieciowy usługi backendu, do której przekierowuje docelowy punkt końcowy wiadomości z prośbami. Nie dotyczy Nie
LoadBalancer

Definiuje co najmniej 1 konfigurację nazwanego serwera docelowego. Nazwany serwer docelowy konfiguracji można używać do równoważenia obciążenia definiującego 2 lub więcej konfiguracji punktów końcowych połączeń.

Za pomocą serwerów docelowych możesz też oddzielić konfiguracje serwera proxy API od konkretnych adresy URL punktów końcowych usługi backendu.

Patrz sekcja Wczytywanie z równoważeniem między serwerami backendu.

Nie dotyczy Nie
Properties Zestaw opcjonalnych ustawień konfiguracji HTTP można zdefiniować jako właściwości <TargetEndpoint> Nie dotyczy Nie
SSLInfo Opcjonalnie zdefiniuj ustawienia TLS/SSL w docelowym punkcie końcowym, aby kontrolować TLS/SSL połączenie między serwerem proxy interfejsu API a usługą docelową. Zobacz Konfigurowanie docelowego punktu końcowego TLS/SSL. Nie dotyczy Nie
LocalTargetConnection Za pomocą elementów podrzędnych określa zasób, z którym można uzyskać dostęp lokalnie, z pominięciem sieci takie jak równoważenie obciążenia i procesory wiadomości.

Aby określić zasób docelowy, dołącz element podrzędny APIProxy (z tagiem ProxyEndpoint) lub elementu podrzędnego Path.

Więcej informacji znajdziesz w artykule Chaining API — serwery proxy interfejsu API łańcuchowego razem.

Jeśli używasz połączenia LocalTargetConnection, nie konfiguruj innych typów połączeń docelowych (HTTPTargetConnection lub ScriptTarget).

APIProxy Określa nazwę serwera proxy interfejsu API, który ma być używany jako miejsce docelowe dla żądań. Docelowy serwer proxy musi być w tej samej organizacji i środowisku co serwer proxy wysyłający żądania. To jest jest alternatywą dla elementu Path. Nie dotyczy Nie
ProxyEndpoint Używane razem z APIProxy do określania nazwy punktu końcowego ProxyEndpoint docelowego serwera proxy. Nie dotyczy Nie
Path Określa ścieżkę punktu końcowego serwera proxy interfejsu API, który ma być używany jako miejsce docelowe dla żądań. Wartość docelowa serwer proxy musi być w tej samej organizacji i środowisku co serwer proxy wysyłający żądania. Ten jest alternatywą dla interfejsu APIProxy. Nie dotyczy Nie
FaultRules
Określa, jak docelowy punkt końcowy reaguje na błąd. Reguła błędu określa dwa elementy:
  • Warunek określający obsłużoną usterkę na podstawie wstępnie zdefiniowanego kategoria, podkategoria lub nazwa błędu
  • Co najmniej jedna zasada określająca działanie reguły błędu dla odpowiedni warunek

Patrz Obsługa błędów.

Nie dotyczy Nie
DefaultFaultRule

Usuwanie wszystkich błędów (systemowych, transportu, przesyłania wiadomości lub zasad), które nie są wyraźnie jest obsługiwana przez inną regułę błędu.

Patrz Obsługa błędów.

Nie dotyczy Nie
ScriptTarget
ResourceURL

Definiuje typ zasobu (węzeł) i nazwę głównego skryptu Node.js, który implementuje funkcję TargetEndpoint.

<ResourceURL>node://server.js</ResourceURL>

Skrypt musi zostać dołączony do plików zasobów serwera proxy interfejsu API. Zobacz Dodawanie Node.js do istniejącego serwera proxy API.

Jeśli używasz ScriptTarget, nie konfiguruj innych typów połączeń docelowych (HTTPTargetConnection lub LocalTargetConnection).

Nie dotyczy Tak
EnvironmentVariable

Opcjonalnie przekaż zmienne środowiskowe do głównego skryptu Node.js.

Patrz: Understanding Edge obsługę modułów Node.js.

Nie dotyczy Nie
Arguments

Opcjonalnie możesz przekazać argumenty do głównego skryptu Node.js.

Patrz: Understanding Edge obsługę modułów Node.js.

Nie dotyczy Nie

Konfiguracja docelowego punktu końcowego TLS/SSL

Docelowy punkt końcowy często musi zarządzać połączeniami HTTPS z heterogenicznymi backendami i infrastrukturze. Z tego względu obsługiwane są różne ustawienia konfiguracji TLS/SSL.

.

TLS/SSL Elementy konfiguracji docelowego punktu końcowego

Nazwa Opis Domyślny Wymagana?
SSLInfo
Enabled Wskazuje, czy w punkcie końcowym jest włączone TLS/SSL. Wartość domyślna to true, jeśli <URL> określa protokół HTTPS. i false, jeśli <URL> określa HTTP. true (prawda), jeśli <URL> określa HTTPS Nie
TrustStore Magazyn kluczy zawierający zaufane certyfikaty serwera. Nie dotyczy Nie
ClientAuthEnabled Ustawienie, które włącza uwierzytelnianie wychodzące klienta (dwukierunkowe TLS/SSL). fałsz Nie
KeyStore Magazyn kluczy zawierający klucze prywatne używane do uwierzytelniania klientów wychodzących Nie dotyczy Tak (jeśli zasada ClientAuthEnabled ma wartość Prawda)
KeyAlias Alias klucza prywatnego używanego do uwierzytelniania klienta wychodzącego Nie dotyczy Tak (jeśli zasada ClientAuthEnabled ma wartość Prawda)
Ciphers

Obsługiwane mechanizmy szyfrowania wychodzącego TLS/SSL. Jeśli nie podasz żadnych mechanizmów szyfrowania, zostaną użyte wszystkie mechanizmy szyfrowania na potrzeby JVM.

Aby ograniczyć mechanizmy szyfrowania, dodaj te elementy z ich listą:

<Ciphers>
 <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher>    
 <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher>
</Ciphers>
Nie dotyczy Nie
Protocols

Obsługiwane protokoły wychodzącego TLS/SSL. Jeśli nie podasz żadnych protokołów, wszystkie protokoły dostępne dla JVM będą dozwolone.

Aby ograniczyć protokoły, dodaj te elementy z listą obsługiwanych protokołów:

<Protocols>
 <Protocol>TLSv1.1</Protocol>
 <Protocol>TLSv1.2</Protocol>
</Protocols>
Nie dotyczy Nie
CommonName

Jeśli została określona, jest używana do weryfikacji nazwy pospolitej certyfikatu docelowego. Ta wartość jest prawidłowa tylko w przypadku konfiguracji TargetEndpoint i TargetServer. Nie jest poprawna dla konfiguracji VirtualHost.

Domyślnie podana wartość jest dopasowywana dokładnie do wspólnej nazwy certyfikatu docelowego. Możesz na przykład użyć *.myhost.com jako wartości rozszerzenia <CommonName>. będą pasować tylko i Sprawdź poprawność docelowej nazwy hosta, jeśli dokładna wartość *.myhost.com jest określona jako imię i nazwisko w certyfikat docelowy.

Opcjonalnie Apigee może przeprowadzić dopasowanie za pomocą symboli wieloznacznych, korzystając z atrybutu wildcardMatch.

Na przykład pospólna nazwa określona w certyfikacie docelowym jako abc.myhost.com jest dopasowywana i weryfikowana jeśli ciąg <CommonName> jest określony w następujący sposób:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

Nie dotyczy Nie

Przykładowy docelowy punkt końcowy z włączonym uwierzytelnianiem klienta wychodzącego

<TargetEndpoint name="default">
  <HttpTargetConnection>
        <URL>https://myservice.com</URL>
    <SSLInfo>
      <Enabled>true</Enabled>
      <ClientAuthEnabled>true</ClientAuthEnabled>
      <KeyStore>myKeystore</KeyStore>
      <KeyAlias>myKey</KeyAlias>
      <TrustStore>myTruststore</TrustStore>
    </SSLInfo>
  </HttpTargetConnection>
</TargetEndpoint>

Szczegółowe instrukcje znajdziesz w sekcji Konfigurowanie TLS z Edge do backendu (Cloud i Private Cloud).

Zastosowanie zmienne przepływu do dynamicznego ustawiania wartości TLS/SSL

Możesz też dynamicznie ustawić szczegóły TLS/SSL, aby spełniały wymagania elastycznego środowiska wykonawczego. Jeśli na przykład serwer proxy łączy się z 2 potencjalnie różnymi miejscami docelowymi (docelowym testowym i środowisko docelowe, serwer proxy interfejsu API może automatycznie wykrywać środowisko. oraz dynamicznie ustawiać odwołania do odpowiedniego magazynu kluczy i magazynu zaufania. Poniżej Artykuł na karcie Społeczność Apigee wyjaśnia szczegółowo ten scenariusz i udostępnia dostępny do wdrożenia interfejs API z przykładami proxy: https://community.apigee.com/articles/21424/dynamic-sslinfo-for-targetendpoint-using-variable.html.

W tym przykładzie pokazano, jak ustawimy tag <SSLInfo> w sekcji konfigurację docelowego punktu końcowego, wartości można podać w czasie działania, np. w JavaScripcie Callout, zasady JavaScript lub zasady przypisywania wiadomości. Używaj dowolnych zmiennych wiadomości zawierają wartości, które chcesz ustawić.

Zmienne są dozwolone tylko w poniższych elementach.

<SSLInfo>
    <Enabled>{myvars.ssl.enabled}</Enabled>
    <ClientAuthEnabled>{myvars.ssl.client.auth.enabled}</ClientAuthEnabled>
    <KeyStore>{myvars.ssl.keystore}</KeyStore>
    <KeyAlias>{myvars.ssl.keyAlias}</KeyAlias>
    <TrustStore>{myvars.ssl.trustStore}</TrustStore>
</SSLInfo>

Zastosowanie odniesienia do dynamicznego ustawiania wartości TLS/SSL

Podczas konfigurowania punktu końcowego, który korzysta z protokołu HTTPS, należy wziąć pod uwagę sytuację, w której Certyfikat TLS/SSL wygasa lub zmiana konfiguracji systemu wymaga zaktualizowania certyfikatu. W Edge for Private Cloud, jeśli konfigurujesz TLS/SSL za pomocą wartości statycznych lub używając zmiennych przepływu, może być konieczne ponowne uruchomienie procesorów wiadomości.

Więcej informacji znajdziesz w artykule Aktualizowanie protokołu TLS certyfikat.

Możesz jednak opcjonalnie skonfigurować docelowy punkt końcowy tak, aby używał odwołania do parametru do magazynu kluczy lub zaufania. Zaletą korzystania z pliku referencyjnego jest to, że można aktualizować odniesienie do innego magazynu kluczy lub magazynu zaufania, który umożliwia aktualizację certyfikatu TLS/SSL bez na wypadek konieczności ponownego uruchamiania procesorów wiadomości.

Poniżej widać przykładowy punkt końcowy, który korzysta z odwołania do magazynu kluczy:

<SSLInfo> 
    <Enabled>true</Enabled> 
    <ClientAuthEnabled>false</ClientAuthEnabled> 
    <KeyStore>ref://keystoreref</KeyStore> 
    <KeyAlias>myKeyAlias</KeyAlias> 
</SSLInfo>

Użyj poniższego wywołania interfejsu POST API, aby utworzyć odwołanie o nazwie keystoreref:

curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
-d '<ResourceReference name="keystoreref">
    <Refers>myTestKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

Odwołanie określa nazwę magazynu kluczy i jego typ.

Aby wyświetlić odniesienie, użyj następującego wywołania interfejsu GET API:

curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password

Aby później zmienić odwołanie tak, aby wskazywał inny magazyn kluczy, upewnij się, że alias tej samej nazwy, użyj następującego wywołania PUT:

curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
-d '<ResourceReference name="keystoreref">
    <Refers>myNewKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

TargetEndpoint z docelowym równoważeniem obciążenia

TargetEndpoints obsługuje równoważenie obciążenia na wielu nazwanych serwerach docelowych z wykorzystaniem 3 obciążeń algorytmach równoważenia obciążenia.

Szczegółowe instrukcje znajdziesz w artykule Równoważenie obciążenia w backendzie .

Zasady

Katalog /policies w serwerze proxy interfejsu API zawiera wszystkie zasady, które mogą być dołączany do Flows na serwerze proxy API.

Elementy konfiguracji zasad

Nazwa Opis Domyślny Wymagana?
Policy
name

Wewnętrzna nazwa zasady. Nazwa nie może zawierać znaków do: A-Za-z0-9._\-$ %. Interfejs zarządzania brzegowego wymusza jednak dodatkowe takich jak automatyczne usuwanie znaków innych niż alfanumeryczne.

Opcjonalnie możesz użyć elementu <DisplayName>, aby oznaczyć w edytorze proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

Nie dotyczy Tak
enabled

Aby egzekwować zasadę, ustaw wartość true.

Ustaw „Wyłącz” na: false zasady. Te zasady nie będą jest wymuszane nawet wtedy, gdy jest ono połączone z przepływem.

prawda Nie
continueOnError

Ustaw jako false, aby w przypadku niepowodzenia zasady zwracany był błąd. To jest oczekiwane działanie większości zasad.

Ustaw jako true, aby wykonywanie przepływu było kontynuowane nawet po zastosowaniu zasady niepowodzenie.

fałsz Nie
async

Uwaga: ten atrybut nie powoduje, że zasada jest wykonywana asynchronicznie. W większości przypadków pozostaw wartość domyślną false.

Gdy ma wartość true, wykonanie zasady jest przeciążane do innego w wątku głównym, pozostawiając w wątku głównym swobodę obsługi dodatkowych żądań. Gdy jesteś offline przetwarzanie zostanie zakończone, wątek główny powróci i zakończy obsługę wiadomości. przepływu danych. W niektórych przypadkach ustawienie opcji asynchronicznego na true poprawia działanie serwera proxy interfejsu API skuteczność reklam. Jednak przesadne używanie funkcji asynchronicznych może pogorszyć wydajność w przypadku zbyt dużej liczby wątków.

Aby skorzystać z asynchronicznego działania na serwerach proxy API, zapoznaj się z sekcją Obiektowy model JavaScript.

fałsz Nie

Załącznik zasad

Ten obraz przedstawia sekwencję wykonywania przepływów serwera proxy interfejsu API:

pokazuje klienta wywołującego usługę HTTP. Żądanie napotyka
  ProxyEndpoint i TargetEndpoint zawierające kroki wyzwalające zasady. Po
  Usługa HTTP zwraca odpowiedź, odpowiedź jest przetwarzana przez docelowy punkt końcowy, a następnie
  ProxyEndpoing przed zwróceniem do klienta. Tak jak w przypadku żądania, odpowiedź jest przetwarzana
  w odpowiednich krokach.

Jak pokazano powyżej:

Zasady są dołączone jako etapy przetwarzania w Przepływach. Nazwa zasady jest używana do: odnoszą się do zasady, która ma być egzekwowana jako krok przetwarzania. Format załącznika zasad to następujące:

<Step><Name>MyPolicy</Name></Step>

Zasady są egzekwowane w kolejności, w jakiej są dołączone do przepływu. Na przykład:

<Step><Name>FirstPolicy</Name></Step>
<Step><Name>SecondPolicy</Name></Step>

Konfiguracja załącznika zasad Elements

Nazwa Opis Domyślny Wymagana?
Step
Name Nazwa zasady, która ma być wykonywana zgodnie z tą definicją kroku. Nie dotyczy Tak
Condition Instrukcja warunkowa określająca, czy zasada jest egzekwowana. Jeśli zasada ma powiązany warunek, wówczas jest wykonywana tylko wtedy, gdy zwraca wartość prawda. Nie dotyczy Nie

Przepływy

ProxyEndpoint i TargetEndpoint definiują potok dla komunikatu żądania i odpowiedzi o przetwarzaniu danych. Potok przetwarzania składa się z przepływu żądań i odpowiedzi. Każda prośba przepływ i reagowanie jest podzielone na PreFlow, jeden lub więcej opcjonalnych „warunkowych”, lub z nazwą i PostFlow.

  • PreFlow: zawsze jest wykonywany. Wykonywane przed jakimikolwiek przepływami warunkowymi.
  • PostFlow: zawsze wykonywany. Wykonywany po dowolnych przepływach warunkowych.

Możesz też dodać interfejs PostClientFlow do punktu końcowego serwera proxy, który jest wykonywany po odpowiedź jest zwracana do aplikacji klienckiej wysyłającej żądanie. Tylko zasady MessageLogging i Można dołączyć rozszerzenie Google Stackdriver Logging w tym procesie. PostClientFlow zmniejsza czas oczekiwania na serwer proxy interfejsu API i udostępnia informacje rejestrowania, które nie jest obliczane do czasu zwrócenia odpowiedzi do klienta, np. client.sent.start.timestamp i client.sent.end.timestamp.Proces jest używany służy głównie do pomiaru przedziału czasu między sygnaturami czasowymi rozpoczęcia i zakończenia odpowiedzi .

Obejrzyj krótki film instruktażowy

Film: obejrzyj ten krótki film na temat korzystania z rejestrowania wiadomości PostClientFlow.

Oto przykład interfejsu PostClientFlow z załączonymi zasadami logowania wiadomości.

    ...
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
    <PostClientFlow>
        <Request/>
        <Response>
            <Step>
                <Name>Message-Logging-1</Name>
            </Step>
        </Response>
    </PostClientFlow>
    ...

Potok przetwarzania serwera proxy interfejsu API wykonuje przepływy w następującej kolejności:

Potok żądań:

  1. PreFlow żądania serwera proxy
  2. Przepływy warunkowe żądania serwera proxy (opcjonalnie)
  3. Żądanie serwera proxy po przepływie
  4. Wstępne przepływy żądań docelowych
  5. Przepływy warunkowe żądania docelowego (opcjonalnie)
  6. Żądanie docelowe po przepływie

Potok odpowiedzi:

  1. Reakcja docelowa w ramach wstępnego przepływu
  2. Przepływy warunkowe odpowiedzi docelowej (opcjonalnie)
  3. Docelowa odpowiedź po przepływie
  4. PreFlow Proxy Response
  5. Przepływy warunkowe odpowiedzi serwera proxy (opcjonalnie)
  6. Odpowiedź serwera proxy w PostFlow
  7. Odpowiedź PostClientFlow (opcjonalnie)

Tylko te przepływy z przyłączami zasad muszą być skonfigurowane w ProxyEndpoint lub Konfiguracje docelowego punktu końcowego. PreFlow i PostFlow trzeba określić tylko w ProxyEndpoint lub Konfiguracja docelowego punktu końcowego, gdy zasada musi być egzekwowana podczas PreFlow lub PostFlow o przetwarzaniu danych.

W przeciwieństwie do przepływów warunkowych kolejność elementów PreFlow i PostFlow nie jest taka sama jak ważne – serwer proxy interfejsu API będzie zawsze wykonywany w odpowiednim punkcie potoku, bez względu na to, gdzie się znajdują w konfiguracji punktu końcowego.

Przepływy warunkowe

ProxyEndpoints i TargetEndpoints obsługują nieograniczoną liczbę przepływów warunkowych (również nazywanych przepływami).

Serwer proxy interfejsu API testuje warunek określony w przepływie warunkowym oraz, jeśli warunek gdy zostanie osiągnięty, kroki przetwarzania w procesie warunkowym są wykonywane przez serwer proxy interfejsu API. Jeśli nie zostanie spełniony, kroki przetwarzania w przepływie warunkowym zostaną pominięte. Warunkowe przepływy są oceniane w kolejności zdefiniowanej na serwerze proxy interfejsu API i w przypadku pierwszego, którego warunek ma postać .

Definiując przepływy warunkowe, zyskujesz możliwość stosowania etapów przetwarzania na serwerze proxy API w oparciu o:

  • Identyfikator URI żądania
  • Czasownik HTTP (GET/PUT/POST/DELETE)
  • Wartość parametru zapytania, nagłówka i parametru formularza
  • wiele innych rodzajów warunków,

Na przykład poniższy przepływ warunkowy określa, że jest on wykonywany tylko wtedy, gdy ścieżka zasobu żądania to /accesstoken. Wszystkie żądania przychodzące z parametrem ścieżka /accesstoken powoduje wykonanie tego przepływu wraz ze wszystkimi zasadami które są powiązane z procesem. Jeśli ścieżka żądania nie zawiera sufiksu /accesstoken, przepływ nie zostanie wykonany (mimo że inny przepływ warunkowy może).

<Flows>
  <Flow name="TokenEndpoint">
    <Condition>proxy.pathsuffix MatchesPath "/accesstoken"</Condition>
    <Request>
      <Step>
        <Name>GenerateAccessToken</Name>
      </Step>
    </Request> 
  </Flow>
</Flows>   

Elementy konfiguracji przepływu

Nazwa Opis Domyślny Wymagana?
Flow potok przetwarzania żądań lub odpowiedzi zdefiniowany przez punkt końcowy serwera proxy lub TargetEndpoint
Name Unikalna nazwa przepływu. Nie dotyczy Tak
Condition Wyrażenie warunkowe oceniające na podstawie lub większej liczby zmiennych w celu zweryfikowania ich jako prawdziwego lub false (fałsz). Wszystkie przepływy inne niż wstępnie zdefiniowane typy PreFlow i PostFlow muszą definiować element podczas wykonywania skryptu. Nie dotyczy Tak
Request Potok powiązany z przetwarzaniem wiadomości żądania Nie dotyczy Nie
Response Potok powiązany z przetwarzaniem wiadomości z odpowiedzią Nie dotyczy Nie

Przetwarzanie etapu

Apigee Edge wymusza sekwencyjną kolejność przepływów warunkowych. Przepływy warunkowe wykonywać od góry do dołu. Pierwszy przepływ warunkowy, którego stan przyjmuje wartość Wykonuje się zadanie true i tylko 1 przepływ warunkowy jest wykonywany.

Na przykład w tej konfiguracji przepływu wszystkie żądania przychodzące, które nie zawierają sufiks ścieżki /first lub /second będzie powodować, że ThirdFlow do wykonania, egzekwując zasadę o nazwie Return404.

<Flows>
  <Flow name="FirstFlow">
    <Condition>proxy.pathsuffix MatchesPath "/first"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="SecondFlow">
    <Condition>proxy.pathsuffix MatchesPath "/second"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
      <Step><Name>SecondPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="ThirdFlow">
    <Request>
      <Step><Name>Return404</Name></Step>
    </Request>
  </Flow>
</Flows>

Zasoby

„Zasoby” (pliki zasobów do użytku przez serwery proxy API) to skrypty, kod i przekształcenia XSL które można dołączyć do przepływów za pomocą zasad. Pojawią się one w sekcji „Skrypty”. Sekcja interfejsu API edytora proxy w interfejsie zarządzania.

Listę obsługiwanych plików znajdziesz w sekcji Pliki zasobów typów zasobów.

Zasoby mogą być przechowywane przez serwer proxy interfejsu API, środowisko lub organizację. W każdym przypadku zasób jest przywoływany w zasadzie za pomocą nazwy. Usługi API rozpoznają nazwę przez przeniesienie z interfejsu API z serwera proxy do środowiska, na poziomie organizacji.

Do zasobu zapisanego na poziomie organizacji mogą odwoływać się zasady w dowolnym środowisku. Zasady w tym środowisku mogą odwoływać się do zasobów przechowywanych na poziomie środowiska. O do zasobu zapisanego na poziomie serwera proxy interfejsu API mogą odwoływać się wyłącznie zasady w tym serwerze proxy.