16.08.17 – informacje o wersji Apigee Edge dla Public Cloud

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

We wtorek 30 sierpnia 2016 r. udostępniliśmy nową wersję Apigee Edge dla chmury publicznej.

Nowe funkcje i aktualizacje

Poniżej znajdziesz nowe funkcje i aktualizacje w tej wersji.

Ładunki JSON w zasadach Assign Message i Raise Fault

Podczas ustawiania ładunku JSON za pomocą zasady Assign Message lub Raise Fault użytkownicy musieli czasami stosować obejścia, aby zapewnić prawidłowe formatowanie wiadomości JSON w czasie działania, np. rozpoczynać ładunek od ukośnika odwrotnego „\” lub określać wartości variablePrefix i variableSuffix w elemencie Payload, nawet jeśli w wiadomości nie były używane żadne zmienne.

Dzięki temu ulepszeniu nie trzeba stosować żadnych obejść, aby zapewnić prawidłowe formatowanie wiadomości JSON, a zmienne można określać za pomocą nawiasów klamrowych bez tworzenia nieprawidłowego kodu JSON. Na przykład poniższy kod wstawia wartość message.content do wiadomości JSON:

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

Jeśli używasz obejścia, Twój kod będzie nadal działać bez zmian. Zamiast nawiasów klamrowych możesz też używać wartości variablePrefix i variableSuffix, aby wskazywać zmienne.

Więcej informacji znajdziesz w dokumentacji referencyjnej dotyczącej elementu <Set><Payload> w zasadzie Assign Message i Raise Fault. (APIRT-1160)

Ulepszenia zasady XML to JSON

Zasada XML to JSON została ulepszona o te funkcje: Możesz skonfigurować zasadę tak, aby:

  • traktować niektóre elementy XML jako tablice podczas konwersji, co powoduje umieszczenie wartości w nawiasach kwadratowych „[ ]” w dokumencie JSON;
  • usuwać poziomy hierarchii dokumentu XML w końcowym dokumencie JSON.

Więcej informacji znajdziesz w artykule XML to JSON policy. (APIRT-1144)

Wiele symboli wieloznacznych w ścieżkach zasobów produktu API

Podczas definiowania ścieżek zasobów w produkcie API możesz umieszczać symbole wieloznaczne w wielu miejscach a ścieżki zasobu. Na przykład /team/*/invoices/** umożliwia wywoływanie interfejsu API z dowolną wartością po /team i dowolnymi ścieżkami zasobów po invoices/. Dozwolony URI w wywołaniu interfejsu API byłby proxyBasePath/team/finance/invoices/company/a.

Jeśli po tej wersji ścieżki zasobów istniejącego produktu API przestaną działać zgodnie z oczekiwaniami, ustaw w organizacji tę właściwość, aby przywrócić poprzednie działanie: features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

Funkcje kryptograficzne w JavaScript

Dostępny jest nowy zestaw wydajnych funkcji JavaScriptu crypto do tworzenia, pobierania i aktualizowania tych obiektów skrótu: MD5, SHA-1, SHA256, SHA512. Obiekt crypto umożliwia też pobieranie daty w różnych formatach. Więcej informacji znajdziesz w artykule Model obiektów JavaScript. (APIRT-2886)

Sprawdzanie wersji pliku JAR wywołania Java

Jeśli wersja zasobu Java jest niezgodna z obsługiwaną przez Edge wersją Javy, która jest wymieniona w artykule Obsługiwane oprogramowanie i obsługiwane wersje, podczas przesyłania zasobu JAR Java do proxy interfejsu API zwracany jest kod stanu HTTP 400 (zamiast 500). (MGMT-3420)

Weryfikacja zasobów proxy interfejsu API

Jeśli masz pliki zasobów proxy interfejsu API (np. pliki JAR JavaScriptu lub Javy) przechowywane w zakresie środowiska lub organizacji, framework weryfikacji nie wymaga już, aby te zasoby były też uwzględniane na poziomie proxy interfejsu API w pakiecie proxy, aby import przeszedł weryfikację. Weryfikacja zasobów odbywa się teraz w czasie wdrażania, a nie importu. (MGMT-1430)

Konfigurowanie limitu czasu dla poszczególnych proxy interfejsu API

Możesz skonfigurować proxy interfejsu API tak, aby po określonym czasie przekraczały limit czasu (ze stanem 504 Gateway Timeout ). Głównym przypadkiem użycia jest sytuacja, gdy klienci Private Cloud mają proxy interfejsu API, których wykonanie trwa dłużej. Załóżmy na przykład, że chcesz, aby określone proxy przekraczały limit czasu po 3 minutach. W konfiguracji proxy interfejsu API możesz użyć nowej właściwości api.timeout. Oto jak to zrobić w przypadku 3-minutowego limitu czasu:

  1. Najpierw skonfiguruj moduł równoważenia obciążenia, router i procesor wiadomości tak, aby przekraczały limit czasu po 3 minutach.
  2. Następnie skonfiguruj odpowiednie proxy tak, aby przekraczały limit czasu po 3 minutach. Określ wartość w milisekundach. Na przykład:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. Pamiętaj jednak, że zwiększenie limitów czasu systemu może spowodować problemy z wydajnością, ponieważ wszystkie proxy bez ustawienia api.timeout będą używać nowych, dłuższych limitów czasu modułu równoważenia obciążenia, routera i procesora wiadomości. Skonfiguruj więc inne proxy interfejsu API, które nie wymagają dłuższych limitów czasu tak aby używały krótszych limitów czasu. Na przykład ten kod ustawia limit czasu proxy interfejsu API na 1 minutę:
    <Property name="api.timeout">60000</Property>

Klienci korzystający z chmury, którzy nie mogą modyfikować limitów czasu Edge, mogą też skonfigurować limit czasu proxy interfejsu API, o ile jest on krótszy niż standardowy limit czasu procesora wiadomości Edge wynoszący 57 sekund.

Nie możesz wypełnić wartości zmienną. Ta właściwość jest opisana w dokumentacji referencyjnej właściwości punktu końcowego. (APIRT-1778)

TLS/SSL w zasadzie Message Logging

<KeyStore> i <TrustStore> można ustawić w konfiguracji SSLInfo w zasadzie Message Logging policy, co umożliwia jednokierunkowe i dwukierunkowe połączenie TLS/SSL z usługą logowania. SSLInfo w zasadzie Message Logging konfiguruje się tak samo jak w przypadku TargetEndpoint proxy. Jednak TLS/SSL w zasadzie Message Logging obsługuje tylko protokół TCP. (APIRT-1858)

Naprawione błędy

W tej wersji naprawiono te błędy. Ta lista jest przeznaczona głównie dla użytkowników, którzy chcą sprawdzić, czy ich zgłoszenia zostały rozwiązane. Nie zawiera ona szczegółowych informacji dla wszystkich użytkowników.

Identyfikator problemu Opis
SECENG-609 Wywołania w czasie działania nie kończą się niepowodzeniem podczas usuwania powiązanego magazynu zaufanych certyfikatów ani gdy usunięty zostanie prawidłowy certyfikat w magazynie zaufanych certyfikatów
MGMT-3404 Wyświetlanie i pobieranie logów Node.js oraz wdrażanie proxy trwa bardzo długo
MGMT-3400 Wywołanie interfejsu /userroles API zarządzania kończy się niepowodzeniem, jeśli nazwa użytkownika wywołującego zawiera znak "+"
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1 podczas importowania pakietu proxy interfejsu API który zawiera katalog resources/node/resources
MGMT-3364 OAuthV2: sprawdzanie redirect_uri
MGMT-3319 Wyświetlanie listy wpisów w skarbcu, który zawiera wartość null w jednym z wpisów, nie działa w przypadku organizacji (CPS i non-CPS)
MGMT-3226 Wykonywanie zapytań na poziomie organizacji lub środowiska nie powinno powodować pobierania wszystkich danych, co powoduje awarię interfejsu API W wersji 160302 występował błąd, który powodował, że wyświetlanie listy zasobów na poziomie organizacji lub środowiska kończyło się niepowodzeniem, jeśli łączny rozmiar zasobów przekraczał 16 MB. Ta poprawka rozwiązuje ten problem.
AXAPP-2429 Interfejs Analytics API używający response_status_code zwraca błąd dostępu do danych error
AXAPP-2386 Naprawianie pustej treści raportów w codziennych raportach e-mailowych Analytics
AXAPP-2347 Nie otrzymuję codziennych e-maili z podsumowaniem danych Analytics
APIRT-3141 Wywołania Java kończą się niepowodzeniem podczas wywoływania new ExecutionResult() , ponieważ konstruktor został ustawiony jako prywatny
APIRT-3140 Zasada ServiceCallout nie działa w wywołaniach interfejsu API HEAD
APIRT-3131 W przypadku korzystania z monetyzacji z zewnętrznym dostawcą uwierzytelniania w przypadku proxy interfejsu API wyświetlana jest nieprawidłowa wartość createdBy
APIRT-3121 Zmiana pliku zasobu organizacji nie jest w 100% skuteczna
APIRT-3117 Procesor wiadomości osiągnął 100% wykorzystania procesora i przestał obsługiwać ruch
APIRT-3016 Błędy „Przekroczono limit czasu połączenia” routera podczas wdrażania
APIRT-2975 Nie udało się przesłać pakietu certyfikatów
APIRT-2955 Nie można zamaskować niektórych atrybutów danych odpowiedzi JSON w przypadku nagłówka Content-Type zgodnego z FHIR „application/json+fhir”
APIRT-2946 Zasada OAuthV2-RefreshToken nie ukrywa atrybutów, mimo że wyświetlanie jest ustawione na false
APIRT-2908 Po aktualizacji protokołu TLS1.2 w przypadku hosta wirtualnego wymagane jest wymuszanie protokołu TLS1.2 w przypadku wewnętrznego wywołania interfejsu API
APIRT-2901 Odpowiedzi skompresowane za pomocą gzip zwracane z pamięci podręcznej są kompresowane podwójnie
APIRT-2873 Po usunięciu produktów, deweloperów lub proxy procesory wiadomości zgłaszają wyjątek NullPointerException związany z zasadą VerifyAPIKey
APIRT-2871 Zasady IOIntensive pojawiają się 2 razy w śledzeniu
APIRT-2825 Błąd gramatyczny w odpowiedzi na błąd tokena dostępu
APIRT-2750 W określonej organizacji występuje duża liczba błędów ruchu
APIRT-2685 Ruch nie może przepływać z powodu nieznanego błędu
APIRT-2647 Błąd „Underlying input stream returned zero bytes” (Podstawowy strumień wejściowy zwrócił zero bajtów) w przypadku środowiska nonprod/dev
APIRT-2630 Sporadyczne problemy podczas próby odczytania wartości z pamięci podręcznej
APIRT-2620 Oddzielna pula wątków w przypadku niektórych kroków blokujących
APIRT-2610 java.lang.ClassCastException w przypadku zasady Response Cache
APIRT-2608 Błąd analizowania nagłówków Last-Modified w zasadach Response Cache
APIRT-2605 Nie należy zezwalać na nadpisywanie zmiennych „organization” i „environment” za pomocą zasad
APIRT-2566 Zasada OAuthV2 zwraca nieprawidłowy nagłówek WWW-Authenticate
APIRT-2491 Nie udało się zaktualizować serwera docelowego z powodu przekroczenia limitu czasu RPC między zarządzaniem a procesorami wiadomości
APIRT-2386 W produkcie API z pustymi dozwolonymi zakresami OAuth tworzony jest pusty zakres ciągu znaków
APIRT-2383 Zasady transformacji XSL nie rejestrują żadnych danych w przypadku błędu
APIRT-2364 Zmienne przepływu błędów OAuth nie są aktualizowane w przypadku błędu
APIRT-2216 Zdarzenia wysyłane przez serwer – strumień zdarzeń ma problemy w środowisku produkcyjnym
APIRT-2079 Wywołanie cURL DEBUG nie zatrzymuje się po upływie limitu czasu utworzonej sesji
APIRT-1495 Ochrona przed zagrożeniami XML nie wykrywa typu treści fhir
APIRT-347 Zasada XSL nie jest prawidłowo weryfikowana podczas importowania (nie przypisuje wyników do zmiennych wyjściowych zgodnie z dokumentacją)