Wyświetlasz dokumentację Apigee Edge.
Zapoznaj się z dokumentacją Apigee X. info
W czwartek 24 marca 2016 r. udostępniliśmy nową wersję Apigee Edge Private Cloud.
Od poprzedniej kwartalnej wersji Edge for Private Cloud (4.15.07.00) opublikowano te wersje, które są uwzględnione w tej wersji z nowymi funkcjami:
- Chmura: 15.07.08, 15.07.22, 15.08.05, migracja Nginx, 15.09.02, 15.09.30, 16.01.20
- Private Cloud: 4.15.07.01, 4.15.07.03
Aby dowiedzieć się, jak sprawdzić, czy konkretna wersja chmury jest uwzględniona w Twojej wersji Edge for Private Cloud, przeczytaj artykuł Informacje o numeracji wersji.
Elementy wycofane
Chmura prywatna 4.15.07.03
| Interfejs API | Opis |
|---|---|
| Sprawdzanie kolejki QPID |
Nie możesz już używać interfejsu API do sprawdzania kolejek QPID
Nie możesz już sprawdzać kolejek utworzonych na serwerze QPID, wydając te polecenia CURL:
curl http:// <qpid_IP>:8083/v1/servers/self/queues
Ten interfejs API został wycofany.
|
Analytics: widok panelu raportów niestandardowych z wieloma raportami (Cloud 15.09.30)
Funkcja Panel raportów niestandardowych, która umożliwia wyświetlanie maksymalnie 4 raportów niestandardowych, zostanie wycofana i usunięta w przyszłej wersji. (MGMT-2673). Wszystkie inne aspekty raportów niestandardowych będą nadal dostępne.
Nie można zastąpić długości nazwy organizacji w chmurze prywatnej
Nie możesz już zastąpić długości nazwy organizacji wynoszącej 20 znaków, ustawiając:
-
APIGEE_ORG_NAME_LENGTH=25
-
APIGEE_ENV_NAME_LENGTH=25
Nowe funkcje i ulepszenia
Poniżej znajdziesz nowe funkcje i ulepszenia w tej wersji. Oprócz poniższych ulepszeń ta wersja zawiera też wiele ulepszeń dotyczących użyteczności, wydajności, bezpieczeństwa i stabilności.
Chmura prywatna
Dodaliśmy obsługę systemów RedHat, CentOS i Oracle w wersji 6.7–7.2.
Ta wersja dodaje obsługę systemów RedHat Enterprise Linux, CentOS i Oracle Linux w wersjach od 6.7 do 7.2.
Pełną listę wymagań systemowych znajdziesz w artykule Obsługiwane oprogramowanie i wersje.
Instalacja oparta na RPM
Ta wersja Edge korzysta z mechanizmu instalacji opartego na RPM, co znacznie upraszcza procedury instalacji i migracji.
Nowy katalog podstawowy
Zmieniła się struktura katalogów w wersji Edge 4.16.01. W poprzednich wersjach Edge instalacja odbywała się w katalogu podstawowym:
/<install-dir>/apigee4
Ścieżka instalacji może być dowolna, domyślnie jest to /opt. Na przykład:
/opt/apigee4
W przypadku wersji 4.16.01 musisz zainstalować Edge w tym katalogu:
/opt/apigee
Zwróć też uwagę, że katalog apigee4 został zmieniony na apigee.
Nie ma to wpływu na lokalizację katalogu danych. Może się znajdować w folderze /opt/apigee lub w innym miejscu.
Nowe wymaganie dotyczące hosta wirtualnego
Skrypt migracji Edge wykonuje większość zadań wymaganych do przeniesienia istniejącego routera Netty do Nginx. W ramach uaktualniania musisz jednak przed migracją zadbać o to, aby wszystkie definicje hostów wirtualnych zawierały alias hosta.
Więcej informacji o dodawaniu aliasu hosta do istniejącego hosta wirtualnego znajdziesz w przewodniku instalacji dostępnym na stronie FTP Apigee: ftp://ftp.apigee.com/.
Kod z konfiguracją
W Edge w wersji 4.16.01 do konfigurowania komponentów Edge nie używa się już plików .properties w katalogu /<install-dir>/apigee4/conf. Od wersji 4.16.01 komponenty Edge nadal konfiguruje się za pomocą plików .properties, ale znajdują się one teraz w tym katalogu:
/opt/apigee/customer/application
W przypadku każdego komponentu Edge zainstalowanego w węźle w tym katalogu będzie znajdować się plik .properties. Aby skonfigurować komponent, edytuj odpowiedni plik .properties, aby zmienić wartość istniejącej właściwości lub dodać nową właściwość i jej wartość. Jeśli plik nie istnieje, możesz go utworzyć.
W przeciwieństwie do poprzednich wersji Edge pliki .properties w Edge 4.16.01 nie zawierają wszystkich właściwości komponentu. Jedną ze zmian w tej wersji jest to, że pliki .properties zawierają tylko zastąpienia domyślnych wartości właściwości.
Zaletą tej architektury jest to, że podczas migracji do nowszej wersji Edge instalator Edge nigdy nie zastępuje plików w folderze /opt/apigee/customer/application. Eliminuje to ryzyko przypadkowego zastąpienia ustawień przez Edge.
Podczas migracji instalator Edge sprawdza istniejące pliki .properties i kopiuje zmiany w domyślnych wartościach właściwości do katalogu /opt/apigee/token. Dlatego po migracji nie musisz wprowadzać żadnych zmian.
Więcej informacji znajdziesz w Przewodniku po operacjach Apigee Edge, który jest dostępny na stronie FTP Apigee:ftp://ftp.apigee.com/.
Skrypty konfiguracji brzegowej zostały zastąpione
Skrypty konfiguracyjne używane w poprzednich wersjach Edge zostały usunięte i zastąpione przez:
- Polecenia uruchamiane za pomocą narzędzi Apigee, takich jak apigee-service, apigee-all, apigee-setup, apigee-provision lub apigee-migrate.
Na przykład skrypty all-start.sh i all-stop.sh zostały zastąpione tymi poleceniami:
> /opt/apigee/apigee-service/bin/apigee-all start
> /opt/apigee/apigee-service/bin/apigee-all stop - Polecenia uruchamiane bezpośrednio w komponentach Edge. Na przykład w poprzednich wersjach
używasz skryptu chpasswd-openldap.sh do zmiany hasła OpenLDAP. Został on zastąpiony tym poleceniem, które uruchamiasz w komponencie apigee-openldap:
> /opt/apigee/apigee-service/bin/apigee-service apigee-openldap change-ldap-password -o oldPword -n newPword
Więcej informacji o tym, jak teraz przeprowadzać konfigurację za pomocą poleceń, znajdziesz w Przewodniku po operacjach Apigee Edge, który jest dostępny na stronie FTP Apigee: ftp://ftp.apigee.com/.
Nowy router brzegowy
Ta wersja Edge dla chmury prywatnej zawiera nową architekturę routera opartą na routerze Nginx. Router Nginx zastępuje router Netty używany w wersjach Edge starszych niż 4.16.01.
Routery Nginx mają takie same wymagania sprzętowe i dotyczące portów jak router Netty, więc nie trzeba wprowadzać zmian w dotychczasowych węzłach.
Więcej informacji znajdziesz w Dodatku A: Informacje o routerze Nginx w Przewodniku instalacji Edge, który jest dostępny na stronie FTP Apigee: ftp://ftp.apigee.com/.
Usunięto system równoważenia obciążenia BaaS
Wewnętrzny system równoważenia obciążenia został usunięty z portalu API BaaS. Teraz musisz używać własnego systemu równoważenia obciążenia między portalem API BaaS a 3 węzłami stosu API BaaS.
Zamiast systemu równoważenia obciążenia możesz użyć DNS z równoważeniem cyklicznym. W tym scenariuszu tworzysz wpis DNS z wieloma rekordami A odpowiadającymi adresom IP stosu BaaS. Podczas wyszukiwania DNS serwer DNS automatycznie zwraca wartości rekordu A w kolejności okrężnej.
Nowa dokumentacja opisująca, jak dodawać węzły Cassandra i ZooKeeper oraz jak dodawać centrum danych do istniejącego centrum danych
Plik ZIP z dokumentacją na stronie FTP Apigee zawiera teraz dokument „Scaling Edge for Private Cloud” (Skalowanie Edge dla chmury prywatnej), w którym opisano, jak dodawać węzły Cassandra i ZooKeeper oraz jak dodawać centrum danych do istniejącego centrum danych.
Orgtool removed
Narzędzie orgtool może wysyłać zapytania do instalacji Edge, aby uzyskać informacje o organizacji. To narzędzie zostało już usunięte. Informacje o organizacji możesz teraz uzyskiwać za pomocą interfejsu Edge lub wywołań interfejsu API.
Jak wykonywać zadania w wersji 4.16.01
W tabeli poniżej pokazujemy, jak wykonywałeś(-aś) zadania w wersji 4.15.07.03, a jak wykonujesz je teraz w wersji 4.16.01. Więcej informacji znajdziesz w Przewodniku po operacjach dotyczącym Edge, który jest dostępny na stronie FTP Apigee: ftp://ftp.apigee.com/.
| Działanie | 4.15.07.0x | 4.16.01 |
|---|---|---|
|
Katalog instalacyjny |
/<inst_dir>/apigee4 | /opt/apigee |
|
Katalog logów |
/<inst_dir>/apigee4/var/log | /opt/apigee/var/log/comp |
|
Instalowanie komponentu |
/<inst_root>/apigee4/share/installer/apigee-setup.sh -p comp -f configFile |
/opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile |
|
Wszystkie: uruchamianie, zatrzymywanie, ponowne uruchamianie, stan, wersja |
/<inst_root>/apigee4/bin/all-start.sh |
/<inst_root>/apigee/apigee-service/bin/apigee-all start|stop|restart|status|version |
|
Uruchamianie, zatrzymywanie, ponowne uruchamianie, stan i wersja komponentu |
/<inst_root>/apigee4/bin/apigee-service comp start|stop|restart|status |
/<inst_root>/apigee/apigee-service/bin/apigee-service comp start|stop|restart|status|version |
|
Tworzenie i przywracanie kopii zapasowej |
/<inst_root>/apigee4/bin/backup.sh |
/<inst_root>/apigee/apigee-service/bin/apigee-service comp backup /<inst_root>/apigee/apigee-service/bin/apigee-service comp restore |
|
Testowanie instalacji |
/<inst_root>/apigee4/test/test-sa.sh |
|
|
Rejestracja |
/<inst_root>/apigee4/bin/setup-org.sh |
|
|
Dodawanie organizacji, środowiska i hosta wirtualnego w jednym kroku |
/<inst_root>/apigee4/bin/setup-org.sh |
/<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile |
|
Dodawanie organizacji |
/<inst_root>/apigee4/bin/create-org.sh |
/<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision create-org -f configFile |
|
Dodaj env |
/<inst_root>/apigee4/bin/add-env.sh |
/<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision add-env -f configFile |
|
Dodaj użytkownika |
Wywołanie interfejsu API |
wywołanie interfejsu API lub /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision create-user -f configFile |
|
Migruj |
/<install_root>/apigee4/share/installer/apigee-upgrade.sh -c comp |
|
Wersja alfa narzędzia do monitorowania i panelu
Ta wersja zawiera wersję alfa nowego narzędzia do monitorowania i panelu Edge. To narzędzie pozwala sprawdzić stan różnych komponentów (routerów, procesorów wiadomości, ZooKeepera, Cassandry) oraz kody błędów HTTP w różnych organizacjach i środowiskach w Twoim wdrożeniu. Możesz też zrobić zrzut danych z panelu i udostępnić go zespołowi Apigee, aby ułatwić rozwiązanie problemów.
Dokumentacja, w tym instrukcje instalacji, jest zawarta w pliku ZIP dokumentacji Edge 4.16.01 dostępnym na serwerze FTP Apigee: ftp://ftp.apigee.com/.
Zanim jednak zainstalujesz i zaczniesz używać panelu, musisz wypełnić umowę o ocenę Apigee, która znajduje się w pliku ZIP z dokumentem, i odesłać ją do Apigee, wysyłając e-maila na adres orders@apigee.com.
Edge Platform
Zmiana stylu interfejsu zarządzania (Cloud 15.09.30)
Odświeżyliśmy wygląd i sposób obsługi kilku stron w interfejsie zarządzania. (MGMT-2627)
Usługi API
Przeprojektowany kreator proxy interfejsu API (Cloud 16.01.20)
Kreator proxy interfejsu API został przeprojektowany. Gdy na stronie Serwery proxy API w interfejsie zarządzania klikniesz „+ Serwer proxy API”, nowy kreator przeprowadzi Cię przez proces tworzenia serwera proxy API. Dostępne są wszystkie ustawienia z poprzedniego kreatora proxy interfejsu API. (MGMT-1376)
Tworzenie proxy interfejsu API za pomocą dokumentów OpenAPI (Swagger) (Cloud 16.01.20)
W ramach nowego kreatora przeprojektowanego serwera proxy interfejsu API możesz teraz utworzyć serwer proxy interfejsu API na podstawie dokumentu OpenAPI (Swagger). Na pierwszej stronie kreatora serwera proxy interfejsu API kliknij Użyj OpenAPI, gdy wybierzesz Serwer proxy zwrotny, Aplikacja Node.js lub Brak celu. W wyświetlonym polu wpisz adres URL dokumentu OpenAPI. Więcej informacji znajdziesz w artykule Tworzenie prostego serwera proxy interfejsu API. (MGMT-1376)
Obsługa WSDL 1.2 w przypadku serwerów proxy SOAP (Cloud 16.01.20)
Apigee Edge obsługuje WSDL 1.2 podczas tworzenia proxy interfejsu API do wywoływania usług SOAP. (MGMT-2835)
Zmienne SSLInfo w konfiguracjach TargetEndpoint (Cloud 16.01.20)
W elemencie TargetEndpoint serwera proxy interfejsu API możesz dynamicznie ustawiać szczegóły protokołu SSL/TLS, aby obsługiwać elastyczne wymagania środowiska wykonawczego. W poniższym przykładzie sposobu ustawienia SSLInfo w konfiguracji TargetEndpoint wartości mogą być dostarczane w czasie działania przez wywołanie Java Callout, zasadę JavaScript lub zasadę Assign Message. Użyj zmiennych wiadomości, które zawierają wartości, które chcesz ustawić.
<TargetEndpoint> ... <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> ... </TargetEndpoint>
Ta funkcja jest opisana w tych dokumentach:
- Dokumentacja konfiguracji proxy API
- Dynamiczne informacje SSLInfo dla TargetEndpoint z użyciem odwołania do zmiennej
(APIRT-1475)
Obsługa algorytmu RSA_SHA256 w zasadach asercji SAML (Cloud 16.01.20)
Zasady asercji SAML obsługują teraz algorytm RSA_SHA256 oprócz RSA_SHA1. (APIRT-1779)
Weryfikacja przesłanych certyfikatów (Cloud 16.01.20)
Aby zapobiec przesyłaniu do magazynów kluczy i magazynów zaufanych certyfikatów wygasłych lub nieprawidłowych, interfejs Management API weryfikuje certyfikaty podczas przesyłania. Certyfikaty są weryfikowane pod kątem rozmiaru (nie może przekraczać 50 KB) i formatu (musi być to PEM lub DER). Sprawdzana jest też data wygaśnięcia certyfikatu. Aby zastąpić domyślną weryfikację daty ważności (nie weryfikować daty ważności certyfikatu podczas przesyłania), użyj tego parametru zapytania: ?ignoreExpiryValidation=true
Więcej informacji znajdziesz w sekcjach Przesyłanie pliku JAR do magazynu kluczy i Przesyłanie certyfikatu do zaufanego magazynu. (SECENG-516) i (APIRT-2213)
Automatyczne odświeżanie strony logów Node.js (Cloud 16.01.20)
Podczas wyświetlania logów Node.js w edytorze proxy strona Logi Node.js jest automatycznie odświeżana okresowo, aby wyświetlać nowe dostępne logi. Kliknij „Zatrzymaj automatyczne odświeżanie”, aby wyłączyć automatyczne odświeżanie. (MGMT-1692)
Nagłówek HTTP X-Forwarded-For (Cloud 15.09.30)
Aby zwiększyć bezpieczeństwo, Edge domyślnie usuwa nagłówek żądania HTTP X-Forwarded-For, który może zawierać co najmniej 1 adres IP. Nowe domyślne działanie oznacza, że adres IP klienta otrzymywany przez Edge będzie adresem IP otrzymanym podczas ostatniego zewnętrznego uzgadniania TCP, a nie adresem, który można potencjalnie sfałszować, aby ominąć zasadę kontroli dostępu.
Aby zmienić to domyślne zachowanie i umożliwić adresom X-Forwarded-For dostęp do serwerów proxy interfejsu API, musisz ustawić w swojej organizacji właściwość feature.enableMultipleXForwardCheckForACL=true.
Dostęp JavaScriptu do właściwości zasad (Cloud 15.07.08)
Gdy używasz JavaScriptu w przepływach proxy interfejsu API, możesz uzyskać dostęp do właściwości zdefiniowanych w zasadach JavaScript. Jest to szczególnie przydatne, jeśli w kodzie JavaScript chcesz używać dobrze znanych zmiennych. Załóżmy, że Twoja zasada JavaScriptu zawiera tę definicję właściwości:
<Properties>
<Property name='source'>response.content</Property>
</Properties>W kodzie JavaScript możesz uzyskać dostęp do odpowiedzi na wiadomość, odwołując się do właściwości „source”, na przykład tak:
var source = properties.get('source'); // returns: response.content
lub
var source = properties.source
lub
var source = properties['source']
Więcej informacji znajdziesz w zasadach dotyczących JavaScriptu. (APIRT-1460)
Audyty na poziomie organizacji (Cloud 15.07.08)
Administratorzy organizacji mogą sprawdzać historię działań podejmowanych na poziomie organizacji. W interfejsie zarządzania wybierz Administracja > Historia organizacji. Więcej informacji znajdziesz w artykule Audyty: interfejs API, historia produktu i organizacji. (MGMT-2232)
Samodzielne usuwanie się administratora organizacji z roli (Cloud 15.07.08)
Administratorzy organizacji mogą usunąć się z roli administratora organizacji w interfejsie zarządzania. W tym celu kliknij Administracja > Użytkownicy organizacji i obok swojego imienia i nazwiska kliknij Usuń. (MGMT-934)
Wskaźnik postępu importowania pakietu proxy interfejsu API (Cloud 15.07.08)
Podczas przesyłania dużego pakietu proxy interfejsu API w interfejsie zarządzania wyświetlana jest animacja „trwa praca”, która informuje, że importowanie jest w toku. Uniemożliwia to interakcję z interfejsem zarządzania do czasu zakończenia importowania. (MGMT-1285)
Zachowanie i konfiguracja pamięci podręcznej (Cloud 15.07.22)
Aby zapewnić lepsze zarządzanie pamięcią podręczną i jej wykorzystanie, ustawienia „Maksymalna liczba elementów w pamięci” w zasobach pamięci podręcznej środowiska zostały wycofane w wersji Edge Cloud 15.06.10. W wersji Edge Cloud z 15.07.22 to ustawienie zostało usunięte z interfejsu tworzenia pamięci podręcznej w sekcji Konfiguracja środowiska w interfejsie zarządzania Apigee Edge.
Łączna liczba elementów we wszystkich zasobach pamięci podręcznej (w tym w pamięci domyślnej) zależy od łącznej ilości pamięci przydzielonej do pamięci podręcznej. Domyślnie łączna ilość pamięci przydzielonej do buforowania w pamięci na danym procesorze wiadomości wynosi 40% łącznej dostępnej pamięci. Elementy będą usuwane z pamięci podręcznej tylko wtedy, gdy będzie w niej za mało miejsca lub gdy wygaśnie ich ważność. (MGMT-2413, APIRT-1140)
Konfiguracja serwera docelowego w interfejsie zarządzania (Cloud 15.07.22)
Na stronie Interfejsy API > Konfiguracja środowiska w interfejsie zarządzania możesz teraz dodawać, edytować i usuwać serwery docelowe.
Dodatkowo strona została przeprojektowana, aby można było tworzyć, dodawać i usuwać pamięci podręczne bezpośrednio na niej, a nie na nowej stronie. Kilka właściwości pamięci podręcznej, w tym „Maksymalna liczba elementów w pamięci”, nie jest już dostępnych w interfejsie, ponieważ ustawienie tych właściwości nie ma już wpływu na działanie pamięci podręcznej w czasie działania. (MGMT-280)
SSL z rejestrowaniem wiadomości w syslogu (Cloud 15.07.22)
Zasady rejestrowania wiadomości obsługują wysyłanie syslog do dostawców usług zarządzania logami innych firm za pomocą protokołu SSL/TLS. W konfiguracji zasad użyj tego kodu jako bezpośredniego elementu podrzędnego elementu nadrzędnego:
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>Więcej informacji znajdziesz w zasadach dotyczących rejestrowania wiadomości. (APIRT-942)
Interfejs zarządzania (Cloud 15.07.22)
Zespół inżynierów Apigee wprowadził w interfejsie zarządzania różne drobne poprawki błędów i ulepszenia dotyczące obsługi.
cURL w Trace (Cloud 15.09.02)
Podczas śledzenia wywołania serwera proxy interfejsu API, które wysyła żądanie do serwera docelowego, możesz wyświetlić żądanie do serwera docelowego jako polecenie cURL. Na diagramie mapy transakcji wybierz etap „Żądanie wysłane do serwera docelowego”, a następnie w okienku Szczegóły fazy w kolumnie „Żądanie wysłane do serwera docelowego” kliknij przycisk „Pokaż Curl”. (MGMT-2589)
Znaki specjalne maskowania danych (Cloud 15.09.02)
Podczas maskowania danych w celu ukrycia danych wrażliwych w ładunkach JSON można teraz maskować znaki specjalne, takie jak $, *, i {. (APIRT-1727)
Mapy klucz-wartość w interfejsie zarządzania (Cloud 15.09.30)
Możesz teraz tworzyć mapy klucz-wartość (KVM) w zakresie środowiska i zarządzać nimi w interfejsie zarządzania Edge. Mapy klucz-wartość o zakresie środowiska zawierają pary klucz-wartość, które są dostępne dla każdego serwera proxy interfejsu API w środowisku, np. testowym lub produkcyjnym. W menu interfejsu zarządzania kliknij Interfejsy API > Konfiguracja środowiska > wybierz odpowiednie środowisko > karta Mapy klucz-wartość. Więcej informacji znajdziesz w artykule Tworzenie i edytowanie map par klucz-wartość środowiska. (MGMT-1393)
Domyślny czas wygaśnięcia zasady PopulateCache w interfejsie zarządzania (Cloud 15.09.30)
Podczas dodawania zasady PopulateCache w edytorze proxy interfejsu API element <TimeoutInSec> określający czas wygaśnięcia pamięci podręcznej jest wstępnie wypełniany wartością 3600 sekund (1 godzina). Wcześniejsza wartość domyślna wynosiła 300 sekund (5 minut). (MGMT-2622)
Usługi dla deweloperów
Skuteczność strony produktu API, brak aplikacji związanych z programistami (Cloud 16.01.20)
Gdy wyświetlasz produkt API w interfejsie zarządzania, pojawiają się aplikacje związane z tym produktem. Aby poprawić wydajność interfejsu, lista aplikacji deweloperskich nie jest wyświetlana podczas edytowania produktu API. (MGMT-2869)
Kolumna Klucz na stronie Aplikacje dewelopera (Cloud 15.08.05)
W organizacjach z dużą liczbą aplikacji deweloperskich (tysiące) wyświetlanie kolumny Klucz na stronie Aplikacje deweloperskie (pokazującej liczbę kluczy na aplikację) może pogorszyć wydajność wyświetlania. Aby poprawić wydajność wyświetlania w tej sytuacji, skontaktuj się z zespołem pomocy Apigee i poproś o ustawienie tej właściwości na poziomie organizacji: features.appsNoCredentialsEnabled = true. Ta właściwość usuwa kolumnę Klucz. Pamiętaj jednak, że usunięcie kolumny Klucz spowoduje też utratę możliwości wyszukiwania według klucza klienta i klucza tajnego. (MGMT-2486)
Spinner postępu na stronie Dane dewelopera (Cloud 15.09.30)
Gdy strona Szczegóły dewelopera jest wczytywana w interfejsie zarządzania, w sekcji Aplikacje wyświetla się wskaźnik postępu, jeśli aplikacje są nadal wczytywane. Poprawia to poprzednie zachowanie, w którym sekcja Aplikacje była pusta podczas wczytywania aplikacji. (MGMT-2667)
Zarabianie
Edytowanie nazw pakietów interfejsu API (Cloud 16.01.20)
Nazwę pakietu API możesz zaktualizować w dowolnym momencie cyklu życia zarabiania, nawet wtedy, gdy pakiet API zawiera opublikowany plan taryfowy. (DEVRT-2177)
Liczby dziesiętne dozwolone w atrybutach niestandardowych (Cloud 16.01.20)
W przypadku korzystania z planu „Cennik z atrybutem niestandardowym” atrybut niestandardowy w nagłówku wiadomości, który jest używany jako mnożnik transakcji, może teraz być wartością dziesiętną z maksymalnie 4 miejscami po przecinku. Więcej informacji o tym typie planu znajdziesz w artykule Określanie szczegółów atrybutu niestandardowego cennika (DEVRT-2191).
Nazwa i identyfikator planu cenowego w raportach podsumowujących (Cloud 15.09.02)
Podczas generowania raportu podsumowującego przychody za pomocą interfejsu Management API możesz dodać do raportu kolumny „Nazwa planu cenowego” i „Identyfikator planu cenowego”. Aby to zrobić, dodaj „RATEPLAN” jako atrybut groupBy w wywołaniu interfejsu API, zgodnie z opisem w sekcji Tworzenie raportów. (Pamiętaj, że ta funkcja nie jest jeszcze dostępna w interfejsie raportu o zarabianiu). W raportach szczegółowych kolumny z nazwą i identyfikatorem dotychczasowego planu taryfowego znajdują się teraz na początku raportu wraz z innymi kolumnami grupującymi. (DEVRT-1740)
Usługi analityczne
Funkcja sum( ) w przypadku danych o czasie odpowiedzi (Cloud 16.01.20)
W raportach niestandardowych Analytics i wywołaniach interfejsu API funkcja agregująca „suma” jest teraz dostępna w przypadku danych Target Response Time, Total Response Time i end_point_response_time. Na przykład w interfejsie API /stats (http://docs.apigee.com/management/apis/get/organizations/%7Borg_name%7D/environments/%7Benv_name%7D/stats/%7Bdimension_name%7D-0) możesz teraz używać tego parametru zapytania „select”: ?select=sum(total_response_time). (AXAPP-2006)
Raport Analiza czasu oczekiwania: nazwy proxy interfejsu API posortowane (Cloud 16.01.20)
W interfejsie raportu Analiza opóźnień (tylko w przypadku planów Apigee Edge Enterprise) proxy interfejsu API są wymienione alfabetycznie na liście rozwijanej Proxy. (MGMT-2858)
Aplikacje dewelopera w panelu wyświetlane według nazwy wyświetlanej (Cloud 16.01.20)
Na wykresie słupkowym Aplikacje dewelopera w interfejsie zarządzania aplikacje dewelopera są wymienione według nazwy wyświetlanej, a nie nazwy wewnętrznej. (MGMT-2853)
Nowy widżet daty i godziny w raportach niestandardowych (Cloud 16.01.20)
Ulepszyliśmy widżet selektora daty i godziny na stronie raportów niestandardowych w interfejsie zarządzania. (MGMT-2881)
Szczegółowe informacje o mieście na mapie geograficznej (Cloud 15.07.22)
Mapa geograficzna w Analytics zawiera szczegółowe informacje o miastach w Stanach Zjednoczonych i Kanadzie. Gdy klikniesz stan lub prowincję na mapie, wyświetli się lista miast, z których pochodziły połączenia. (MGMT-2282)
Znaki | (pionowa kreska) i = w raportach niestandardowych Analytics (Cloud 15.09.02)
Definicje raportów niestandardowych Analytics obsługują symbole | (pionowa kreska) i =. Wcześniej w przypadku tych symboli trzeba było używać kodowania %7C i %3D. (MGMT-2504)
Wymiar Suffix ścieżki serwera proxy (Cloud 15.09.30)
W raportach niestandardowych Analytics i wywołaniach interfejsu API dostępny jest nowy wymiar Suffix ścieżki serwera proxy (proxy_pathsuffix). Sufiks ścieżki serwera proxy to część adresu URL serwera proxy interfejsu API, która występuje po ścieżce podstawowej, np. ścieżka utworzona dla przepływów warunkowych. (AXAPP-1902)
Raporty zawierają identyfikatory deweloperów, a nie wyświetlane nazwy (Cloud 15.09.30)
Podczas wykonywania wywołań interfejsu Edge Analytics API za pomocą interfejsu /stats, który zwraca deweloperów, wraz z identyfikatorem dewelopera zwracana jest nazwa wyświetlana dewelopera. Wcześniej zwracany był tylko identyfikator dewelopera. (AXAPP-1759)
Usunięte błędy
W tej wersji naprawiliśmy te błędy:
Chmura prywatna 4.16.01
W tabeli poniżej znajdziesz listę błędów, które zostały naprawione od wersji Edge for Private Cloud 4.16.01. Aby uzyskać te poprawki, postępuj zgodnie z instrukcjami aktualizacji instalacji 4.16.01 do najnowszych pakietów RPM i plików pomocniczych, jak opisano w artykule Aktualizowanie Apigee Edge 4.16.01.x do najnowszej wersji 4.16.01.
| Identyfikator problemu | Opis | Numer kompilacji |
|---|---|---|
| PRC-736 |
Biblioteka apigee-lib nie wymaga już kompilatora GCC |
apigee-lib-4.16.01-0.0.901 |
| PRC-735 |
Narzędzie apigee-validate nie kończy już działania z błędem, ponieważ interfejs Yahoo Weather API wymaga OAuth |
apigee-validate-4.16.01-0.0.910 |
| PRC-739 |
Zezwalaj użytkownikom na wyodrębnianie kopii w dowolnym folderze systemu plików |
apigee-mirror-4.16.01-0.0.904
|
| PRC-756 |
Skrypt BaaS Usergrid check_cassandra_availability.sh nie używa już polecenia nc |
baas-usergrid-2.1.0-0.0.112 |
| PRC-778 |
Informacje o klastrze Zookeeper nie są już tracone po uaktualnieniu |
apigee-migrate-4.16.01-0.0.873 |
| PRC-787 |
Interfejs API BaaS obsługuje teraz uwierzytelnianie Cassandra |
baas-usergrid-2.1.1-0.0.122 |
| PRC-804 |
Możliwość określania lokalizacji plików dziennika |
apigee-service-4.16.05-0.0.435 |
| PRC-840 |
Uszkodzone linki symboliczne w przypadku komponentów Edge |
edge-gateway-4.16.01-0.0.538 |
| EDGEUI-538 EDGEUI-524 |
Zawieszanie generowania serwera proxy SOAP podczas importowania pliku WSDL/ Problem z generowaniem serwera proxy interfejsu API z pliku WSDL |
edge-ui-4.16.01-0.0.3650 |
| EDGEUI-543 |
Nie można zaimportować pliku WSDL z adresu URL, gdy jest to adres lokalny |
edge-ui-4.16.01-0.0.3650 |
| APIRT-2719 APIRT-2918 |
target.url jest teraz ustawiany podczas wywoływania docelowych wywołań |
edge-gateway-4.16.01-0.0.538 |
Cloud 16.01.20
| Identyfikator problemu | Opis |
|---|---|
| MGMT-2964 | Nowy edytor proxy nie akceptuje komentarzy w tagu Przepływy |
| MGMT-2957 | Dodanie nowego poda do organizacji powoduje, że stan wdrożenia pakietu dla routerów w nowym podzie jest zwracany jako błąd. |
| MGMT-2937 | Błędy „Niewystarczające uprawnienia” w przypadku ról niestandardowych |
| MGMT-2875 | Generowanie WSDL SOAP ma nieprawidłowe nagłówki dla SOAP 1.2 |
| MGMT-2739 | Raport Aplikacje dewelopera, karta Analytics nie zawiera wykresu anomalii |
| MGMT-2735 | Odświeżanie logów Node.js nigdy się nie kończy |
| MGMT-2734 | Przycisk Zapisz nie jest aktywowany po wystąpieniu błędu podczas próby zapisania wdrożonego pakietu |
| MGMT-2729 | Aktualizacja portu serwera docelowego w interfejsie powoduje usunięcie informacji SSL |
| MGMT-2702 | Luka w zabezpieczeniach w przeglądarkach Firefox i IE Usunięto lukę w zabezpieczeniach, która mogła wystąpić z powodu błędów w przeglądarkach Firefox i IE nieprawidłowo zezwalających na żądania z innych witryn. |
| MGMT-2681 | Edytor serwera proxy: gdy w warunku używasz dopasowania wyrażenia regularnego, Nawigator przepływu nie wyświetla czasownika. |
| MGMT-2361 | Wdrażanie serwerów proxy nie powiodło się z powodu błędu RPCException: Call timed out |
| MGMT-1662 | Wdrażanie serwera proxy interfejsu API kończy się niepowodzeniem podczas publikowania Apigee w chmurze publicznej |
| DEVRT-2286 | Interfejs sync-organization Monetization API nie działa Interfejs API używany do synchronizowania danych Apigee Edge z danymi o przychodach został naprawiony w najnowszej aktualizacji wersji 16.01.20. |
| DEVRT-2173 | Chcesz zmienić nazwę pakietu, ale nie możesz go edytować z powodu aktywnego abonamentu |
| DEVRT-1661 | Blokada programisty za wysyłanie żądań do interfejsu API przed datą rozpoczęcia planu cenowego, ale blokada nigdy nie jest zwalniana Jeśli programista interfejsu API zaakceptuje miesięczny plan cenowy o stałej cenie, plan cenowy z zakresami wolumenu lub plan cenowy pakietowy, który zaczyna się w przyszłości, a następnie wyśle żądania do interfejsu API przed określoną datą rozpoczęcia, zostanie zablokowany i nie będzie mógł wysyłać kolejnych żądań. Gdy nadejdzie data rozpoczęcia obowiązywania planu cenowego, blokada zostanie usunięta. |
| DEVRT-1643 | Uszkodzenie wersji roboczej planu taryfowego po zapisaniu |
| AXAPP-1991 | Rezygnacja z podsumowania Apigee Analytics i e-maile nie przestają przychodzić |
| AXAPP-1946 | Czyszczenie Analytics nie zwalnia miejsca na dysku |
| AXAPP-1708 | Interfejs API Analytics podaje różne liczby dla tej samej statystyki w zależności od sposobu zadania pytania |
| AXAPP-1293 | Nazwy nieistniejących aplikacji dewelopera w e-mailu z podsumowaniem Analytics |
| APIRT-2518 | Problemy z połączeniem z backendem HTTPS za pomocą zasad JavaScript |
| APIRT-2398 | Nieprawidłowy lub wygasły kod autoryzacji jest liczony jako błąd Apigee |
| APIRT-2397 | steps.assignmessage.SetVariableFailed jest traktowany jako błąd Apigee |
| APIRT-2396 | Błędy IllegalArgumentException i ArrayIndexOutofBoundsException w OAuth są traktowane jako błędy Apigee |
| APIRT-2362 | Błąd kompilacji JavaScript |
| APIRT-2322 | Nieprawidłowy identyfikator klienta błędnie zgłoszony jako błąd Apigee |
| APIRT-2159 | Dodawanie identyfikatora message_id do prefiksu logowania |
| APIRT-2145 | Wysoki odsetek nieudanych transakcji w przypadku interfejsu Facebook API Usunęliśmy weryfikację wartości nagłówka zaczynających się od dwukropka „:”. |
| APIRT-2137 | MP: kodowanie przesyłania fragmentami i kod 205 z długością treści 0 |
| APIRT-2124 | Router Nginx nie aktualizuje puli MP w przypadku nowo dodanych MP |
| APIRT-2117 | Zasady logowania wiadomości nie uwzględniają aktualizacji DNS |
| APIRT-2110 | Router przekazuje tylko 1 nagłówek X-Forwarded-For |
| APIRT-2062 | Pamięć podręczna odpowiedzi nie działa prawidłowo, gdy warunek SkipCacheLookup jest spełniony |
| APIRT-2061 | Procesor wiadomości nie przesyła wiadomości do QPID |
| APIRT-2052 | Duża liczba połączeń w stanie CLOSE_WAIT z powodu braku odpowiedzi z portu zarządzania |
| APIRT-2024 | Nginx bez systemu równoważenia obciążenia nie wypełnia prawidłowo nagłówków HTTP X-Forwarded-For Do informacji o wersji 150930 i zasad kontroli dostępu dodano informację o wycofaniu nagłówka X-Forwarded-For. |
| APIRT-1933 | Ładowarki klas specyficzne dla serwera proxy nadal delegują do ładowarki klas MP |
| APIRT-1877 | Nie można maskować odpowiedzi XML, które mają przestrzenie nazw |
| APIRT-1838 | Apigee-127: VerifyAPIKey zwraca tylko 1 produkt API, gdy istnieje wiele produktów |
| APIRT-1827 | Obserwujemy niski limit jednoczesnego strumieniowania |
| APIRT-1820 | Sporadyczne opóźnienia (> 1%) w środowisku Private Cloud w wersji 4.15.04 |
| APIRT-707 | Błąd NPE w czasie działania, jeśli element <GenerateResponse> znajduje się w zasadach VerifyAccessToken |
Cloud 15.07.08
| Identyfikator problemu | Opis |
|---|---|
| MGMT-2381 | Nie można wdrożyć plików proxy za pomocą nowego edytora plików proxy |
| MGMT-2374 | Przed zapisaniem elementu BasePath w ProxyEndpoint należy usunąć z niego spacje |
| MGMT-2355 | Interfejs nieprawidłowo oblicza uprawnienia dla wielu ról, jeśli jedna z nich jest rolą orgadmin |
| MGMT-2324 | Importowanie modelu Swaggera powoduje utworzenie nieprawidłowych węzłów SmartDocs |
| MGMT-1518 | Interfejs użytkownika pokazuje, że serwer proxy został wdrożony, mimo że wdrożenie na procesorach wiadomości się nie powiodło |
| MGMT-1489 | Produkt API nie generuje prawidłowych zasobów |
| DOC-1246 | Sprzeczne informacje w dokumentacji dotyczące tokenów dostępu |
| DEVRT-1661 |
Pole NextRecurringFeeDate jest puste, gdy deweloper zaakceptuje plan stawek za funkcje |
Cloud 15.07.22
| Identyfikator problemu | Opis |
|---|---|
| TBD-73 | Statyczny adres IP dla ruchu przychodzącego do Apigee |
| MGMT-2422 | Nie można edytować aplikacji firmowej |
| MGMT-2419 | Użytkownik z rolą „Użytkownik” otrzymuje błędy uprawnień podczas logowania |
| MGMT-2341 | Filtr raportu niestandardowego nieprawidłowo tworzy zapytanie |
| MGMT-2207 | JSONThreatProtection - ArrayElementCount nie działa, jeśli element zawiera wartość niepierwotną W zasadach ochrony przed zagrożeniami w JSON element ArrayElementCount nie ograniczał dokładnie liczby elementów dozwolonych w tablicach. Naprawiliśmy ten problem. |
| MGMT-2158 | Nie można zaimportować WSDL, jeśli dane wyjściowe odwołują się do części bez typu |
Cloud 15.08.05
| Identyfikator problemu | Opis |
|---|---|
| wiele | W edytorze proxy interfejsu API naprawiono kilka drobnych błędów. |
Cloud 15.09.02
| Identyfikator problemu | Opis |
|---|---|
| wiele | W edytorze proxy interfejsu API naprawiono kilka drobnych błędów. |
| MGMT-2618 | Częste problemy z wdrażaniem |
| MGMT-2588 | Strona historii deweloperów wykonuje kod HTML – trwałe wykorzystanie luki XSS |
| MGMT-2543 | Nowy edytor proxy modyfikuje kod XML w elemencie <Payload> zasady AssignMessage, co powoduje nieprawidłowe działanie dotychczasowych proxy interfejsu API |
| MGMT-2521 | Śledzenie sesji czasami się zawiesza |
| MGMT-2519 | Interfejs konfiguracji środowiska nie działa |
| AXAPP-1814 | Zmienne niestandardowe (zasady dotyczące zbierania statystyk) nie są tworzone w środowisku produkcyjnym, gdy włączony jest kurator zk |
| APIRT-1927 | Nieprawidłowy host wirtualny powoduje, że router nie wczytuje konfiguracji środowiska |
| APIRT-1863 | Nieudane wdrożenie z powodu spacji w pakiecie |
| APIRT-1823 | Wywołania interfejsu API z treścią POST zawierającą znaki & (ampersand) zawieszają się |
| APIRT-1789 | Procesory wiadomości w przypadku niektórych organizacji napotykają błędy związane z brakiem pamięci |
| APIRT-1776 | Wywoływanie funkcji „print” w zasadach JavaScriptu powoduje nadmierne rejestrowanie |
| APIRT-1766 | Przekroczenie limitu czasu w przypadku WebSockets |
| APIRT-1600 | ConcurrentModificationException w routerze W logach routera regularnie pojawiały się liczne wystąpienia błędu ConcurrentModification. Powodem tego było dodawanie połączeń do listy usuwania, gdy usuwano z niej starsze połączenia. Naprawiliśmy ten problem. |
| APIRT-1491 | Wyjątek 503 – usługa niedostępna |
| APIRT-1421 | Zasady JavaCallout przetwarzane z przerwami i długo |
| DEVRT-1843 | Interfejs Mint powinien lepiej obsługiwać aktualizowanie atrybutów niestandardowych w TRP |
| DEVRT-1472 | Aktualizacja dewelopera spowodowała błąd serwera 500 |
Cloud 15.09.30
| Identyfikator problemu | Opis |
|---|---|
| MGMT-2687 | Raporty niestandardowe zawieszają przeglądarkę, gdy zawierają ponad 14 tys. elementów wymiarowych |
| MGMT-2677 | Zarabianie: strona Deweloperzy w interfejsie zarządzania zawiesza się w przypadku tysięcy deweloperów, a w organizacji nie jest włączone stronicowanie |
| MGMT-2674 | Interfejs Edge próbuje pobrać dane z internetu podczas logowania użytkownika |
| MGMT-2658 | Problemy z interfejsem serwera zarządzania zależne od wersji OPDK podczas uaktualniania wersji proxy interfejsu API |
| MGMT-2616 | Nowy edytor serwera proxy interfejsu API nie obsługuje prawidłowo encji XML |
| MGMT-2541 | Identyfikator zewnętrznego systemu uwierzytelniania dodany jako administrator systemu z symbolem „+” w haśle jest uszkodzony |
| MGMT-2510 | Menu nie wyświetla wszystkich deweloperów należących do organizacji |
| MGMT-2508 | Ikona uszkodzonego linku w zasadach wyświetlana nieprawidłowo |
| MGMT-2334 | Nie można uzyskać dostępu do zasobów z drugiego punktu końcowego serwera proxy |
| MGMT-1967 | Aplikacje dewelopera o tej samej wyświetlanej nazwie wykazują w analityce ten sam ruch |
| DEVRT-1839 | Zarabianie: lista wyboru krajów w interfejsie zarządzania jest nieprawidłowo posortowana |
| AXAPP-1887 | Warunki filtrowania nie działają zgodnie z dokumentacją |
| AXAPP-1869 | Usunięcie użytkownika z organizacji powinno spowodować anulowanie subskrypcji e-maili z analityką |
| AXAPP-1533 | Mapa geograficzna w Analytics wyświetla błąd „Nieprawidłowe wywołanie interfejsu API” |
| APIRT-2061 | Procesor wiadomości nie przesyła wiadomości do QPID |
| APIRT-2052 | Duża liczba połączeń w stanie CLOSE_WAIT z powodu braku odpowiedzi z portu zarządzania |
| APIRT-2024 | Nginx bez systemu równoważenia obciążenia nieprawidłowo wypełnia nagłówki HTTP X-Forwarded-For |
| APIRT-1838 | Apigee-127: VerifyAPIKey zwraca tylko 1 produkt API, gdy istnieje wiele produktów |
Chmura prywatna 4.15.07.03
| Identyfikator problemu | Opis |
|---|---|
| APIRT-1600 | Wyjątek ConcurrentModificationException w logach routera |
| APIRT-1734 | Aktualizacje plików zasobów bez przestoju na poziomie organizacji lub środowiska |
| APIRT-1820 | Sporadyczne opóźnienia (> 1%) w środowisku Private Cloud w wersji 4.15.04 |
| APIRT-2159 | Dodawanie identyfikatora message_id do prefiksu logowania |
| APIRT-2160 | Wykluczanie uzgadniania połączenia za pomocą protokołu SSL z danych request_processing_latency w Analytics |
| AXAPP-1882 | Wątek obserwatora konsumenta łączy się z niewłaściwą kolejką w aktywnym/aktywnym wdrożeniu |
| AXAPP-1946 | Dane są przenoszone do tabeli faktów nadrzędnych zamiast do tabeli faktów podrzędnych, gdy strefa czasowa jest inna niż UTC |
| MGMT-1590 | Usunięto lukę w zabezpieczeniach |
| MGMT-1662 | Nieudane wdrożenie podczas publikowania |
| MGMT-2361 | Wdrażanie serwerów proxy nie powiodło się z powodu błędu RPCException: Call timed out |
| MGMT-2397 | Widok kodu nieprawidłowo analizuje znaki końca wiersza |
| MGMT-2466 | Sprawdzanie klastra w porównaniu z procesorem wiadomości pokazuje niedostępny router jako połączonego członka |
| OPDK-1981 | Skrypt backup-cassandra.sh nie tworzy kopii zapasowej przestrzeni kluczy systemowych |
| OPDK-1982 | Przed uaktualnieniem skrypt apigee-upgrade.sh musi sprawdzić wersję tabeli SSTable Cassandra |
Chmura prywatna 4.15.07.01
| Identyfikator problemu | Opis |
|---|---|
| OPDK-1927 | Brak tabel w przypadku uaktualnienia zarabiania; tworzenie zduplikowanych indeksów |
| OPDK-1878 | Zmiana nazwy punktu dostępu bramy podczas konfiguracji powoduje problemy |
| OPDK-1886 | Węzeł nie może uzyskać dostępu do lokalnych adresów IP, takich jak 192.168.x.y |
| MGMT-2521 | Śledzenie sesji czasami się zawiesza |
| MGMT-2543 | Nowy edytor proxy modyfikuje kod XML w elemencie <Payload> zasady AssignMessage, co powoduje nieprawidłowe działanie dotychczasowych proxy interfejsu API |
| MGMT-2599 | Nowy edytor serwera proxy przywraca prefiks przestrzeni nazw po jego usunięciu |
| MGMT-2702 | Luka w zabezpieczeniach między witrynami w przypadku przeglądarek Firefox i IE |
| APIRT-1074 | Nieprawidłowa obsługa skompresowanych treści, gdy wysyłany jest nagłówek Connection: Close bez nagłówków Content-Length lub Transfer-Encoding |
Znane problemy
W tej wersji występują te znane problemy.
| Identyfikator problemu | Opis |
|---|---|
| APIRT-2742 | Integracja JMX Edge nie jest dostępna w przypadku Edge for Private Cloud 4.16.01, ponieważ wprowadzono serwer Nginx, który zastąpił router Netty. |
| APIRT-2978 |
Nie udało się uruchomić Nginx lub nie udało się uruchomić routera Jeśli router brzegowy nie uruchomi Nginx lub nie uruchomi się wcale, jak pokazano w pliku /opt/apigee/var/log/edge-router/logs/system.log, usuń wszystkie pliki w katalogu /opt/nginx/conf.d i ponownie uruchom router: > rm -f /opt/nginx/conf.d/* > /opt/apigee/apigee-service/bin/apigee-service edge-router restart |
| DOC-1687 | Ze względu na znany konflikt zależności pakietów agent Katello używany w Satellite Server 6 nie zainstaluje się prawidłowo na hostach Apigee Edge z demonem Qpid. |
| PRC-1118 |
Błąd podczas uruchamiania polecenia „apigee-service apigee-postgresql pg-data-purge” Jeśli po uruchomieniu polecenia „apigee-service apigee-postgresql pg-data-purge” zobaczysz błąd w formie: BŁĄD: musisz być właścicielem relacji Edytuj plik /opt/apigee/apigee-postgresql-4.16.05-0.0.894/lib/actions/pg-data-purge i ustaw tę właściwość na „apigee”: POSTGRES_USER=apigee |