16.08.17 – informacje o wersji Apigee Edge dla Public Cloud

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

We wtorek 30 sierpnia 2016 r. udostępniliśmy nową wersję Apigee Edge na chmurę publiczną.

Nowe funkcje i aktualizacje

Oto nowe funkcje i aktualizacje wprowadzone w tej wersji.

Ładunki JSON w komunikatach Assign Message i Raise Fault

Podczas ustawiania ładunku JSON za pomocą zasad Przypisz wiadomość lub Zgłoś błąd 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 wstecznego „\” lub określać elementy 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ć 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ć zmiennych variablePrefix i variableSuffix, aby wskazywać zmienne.

Zobacz element <Set><Payload> w dokumentacji referencyjnej zasad przypisywania wiadomościzasad zgłaszania błędu. (APIRT-1160)

Ulepszenia zasad XML do JSON

Zasady XML do JSON zostały rozszerzone o te funkcje: Możesz skonfigurować zasady tak, aby:

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

Więcej informacji znajdziesz w artykule Zasady dotyczące konwersji XML na JSON. (APIRT-1144)

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

Podczas definiowania ścieżek zasobów w produkcie interfejsu API możesz uwzględnić symbole wieloznaczne w wielu miejscach ścieżki zasobu. Na przykład /team/*/invoices/** zezwala na wywołania interfejsu API z dowolną wartością po /team i dowolnymi ścieżkami zasobów po invoices/. Dozwolony identyfikator URI w wywołaniu interfejsu API to 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 swojej 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 funkcji JavaScriptu crypto o wysokiej wydajności, które umożliwiają tworzenie, pobieranie i aktualizowanie tych obiektów skrótu: MD5, SHA-1, SHA256, SHA512. Obiekt crypto umożliwia też uzyskanie daty w różnych formatach. Więcej informacji znajdziesz w modelu obiektu JavaScript. (APIRT-2886)

Sprawdzanie wersji pliku JAR wywołania Javy

Podczas przesyłania zasobu JAR w języku Java do serwera proxy interfejsu API zwracany jest kod stanu HTTP 400 (zamiast 500), jeśli wersja zasobu Java jest niezgodna z wersją Javy obsługiwaną przez Edge, która jest wymieniona w obsługiwanym oprogramowaniu i obsługiwanych wersjach. (MGMT-3420)

Weryfikacja zasobów proxy interfejsu API

Jeśli pliki zasobów serwera proxy interfejsu API (takie jak pliki JAR w JavaScript lub Java) są przechowywane w zakresie środowiska lub organizacji, platforma weryfikacyjna nie wymaga już, aby te zasoby były też uwzględniane na poziomie serwera proxy interfejsu API w pakiecie serwera proxy na potrzeby importu, aby przejść weryfikację. Weryfikacja zasobów odbywa się teraz w momencie wdrażania, a nie importowania. (MGMT-1430)

Konfigurowanie limitu czasu dla poszczególnych proxy interfejsu API

Możesz skonfigurować proxy interfejsu API tak, aby po określonym czasie wygasł (ze stanem 504 – przekroczenie limitu czasu bramy). Głównym przypadkiem użycia jest sytuacja, w której klienci chmury prywatnej mają serwery proxy interfejsu API, których wykonanie trwa dłużej. Załóżmy na przykład, że chcesz, aby określone serwery proxy wygasły po 3 minutach. W konfiguracji proxy interfejsu API możesz użyć nowej właściwości api.timeout. Oto jak to zrobić na przykładzie 3-minutowego filmu:

  1. Najpierw skonfiguruj system równoważenia obciążenia, router i procesor wiadomości tak, aby po 3 minutach przekraczały limit czasu.
  2. Następnie skonfiguruj odpowiednie serwery proxy, 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 serwery proxy bez ustawienia api.timeout używają nowych, wyższych limitów czasu modułu równoważenia obciążenia, routera i procesora wiadomości. Dlatego skonfiguruj inne proxy interfejsów API, które nie wymagają dłuższych limitów czasu oczekiwania, tak aby używały krótszych limitów. Na przykład ten kod ustawia limit czasu dla serwera 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 serwera 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 tym artykule. (APIRT-1778)

TLS/SSL do rejestrowania wiadomości Zasady

Wartości <KeyStore><TrustStore> można ustawić w konfiguracji SSLInfozasadach rejestrowania wiadomości, co umożliwia dwukierunkowe i jednokierunkowe połączenia TLS/SSL z usługą rejestrowania. Element SSLInfo w zasadach logowania wiadomości konfiguruje się tak samo jak w  TargetEndpoint serwera proxy. Jednak TLS/SSL rejestrowania wiadomości obsługuje tylko protokół TCP. (APIRT-1858)

Usunięte błędy

W tej wersji naprawiliśmy 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 jest on przeznaczony do dostarczania szczegółowych informacji wszystkim użytkownikom.

Identyfikator problemu Opis
SECENG-609 Wywołania w czasie działania nie kończą się niepowodzeniem podczas usuwania powiązanego magazynu zaufanych certyfikatów lub gdy z magazynu zaufanych certyfikatów zostanie usunięty ważny certyfikat
MGMT-3404 Wyświetlanie i pobieranie logów Node.js oraz wdrażanie serwerów proxy jest bardzo powolne
MGMT-3400 Wywołanie interfejsu API zarządzania /userroles kończy się niepowodzeniem, jeśli nazwa użytkownika, który wywołuje interfejs API, zawiera znak „+”
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1 podczas importowania pakietu serwera proxy interfejsu API, który zawiera katalog resources/node/resources
MGMT-3364 OAuthV2: redirect_uri check
MGMT-3319 Wyświetlanie wpisów na liście w skarbcu, który zawiera wpis z wartością null, nie działa w przypadku organizacji (CPS i non-CPS)
MGMT-3226 Zapytania na poziomie organizacji lub środowiska nie powinny pobierać wszystkich danych, co powoduje błąd interfejsu API
W wersji 160302 występował błąd, który powodował, że lista zasobów na poziomie organizacji lub środowiska nie działała, jeśli łączny rozmiar zasobów przekraczał 16 MB. Ta poprawka rozwiązuje ten problem.
AXAPP-2429 Interfejs Analytics API zwraca błąd dostępu do danych za pomocą kodu response_status_code
AXAPP-2386 Rozwiązywanie problemu z pustymi raportami w codziennych raportach e-mail Analytics
AXAPP-2347 Nie otrzymuję codziennych e-maili z podsumowaniem danych analitycznych
APIRT-3141 Wywołania Java Callouts kończą się niepowodzeniem podczas wywoływania funkcji new ExecutionResult() , ponieważ konstruktor został oznaczony jako prywatny
APIRT-3140 Zasady ServiceCallout nie działają w wywołaniach interfejsu API HEAD
APIRT-3131 Nieprawidłowy użytkownik utworzenia serwera proxy interfejsu API w przypadku korzystania z zarabiania z zewnętrznym dostawcą uwierzytelniania
APIRT-3121 Zmiana w pliku zasobów organizacji nie jest w 100% skuteczna
APIRT-3117 MP osiągnął 100% wykorzystania procesora i przestał obsługiwać ruch
APIRT-3016 Błędy „Przekroczono limit czasu połączenia” w routerze w przypadku wdrożeń
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 „application/json+fhir” zgodnego z FHIR
APIRT-2946 Zasada OAuthV2-RefreshToken nie ukrywa atrybutów, mimo że wyświetlanie jest ustawione na wartość false
APIRT-2908 Po zaktualizowaniu protokołu TLS 1.2 na hoście wirtualnym wymagane jest wymuszenie protokołu TLS 1.2 w przypadku wewnętrznych wywołań interfejsu API
APIRT-2901 Odpowiedzi skompresowane za pomocą gzipa zwracane z pamięci podręcznej są podwójnie skompresowane
APIRT-2873 Moduły przetwarzania komunikatów zgłaszają wyjątek NullPointerException związany z zasadą VerifyAPIKey po usunięciu produktów/programistów/serwerów proxy
APIRT-2871 Zasady IOIntensive pojawiające się w śladzie dwukrotnie
APIRT-2825 Błąd gramatyczny w odpowiedzi na błąd tokena dostępu
APIRT-2750 Wysoka liczba błędów w ruchu w określonej organizacji
APIRT-2685 Nie można przekierowywać ruchu z powodu nieznanego błędu
APIRT-2647 Błąd „Underlying input stream returned zero bytes” w przypadku środowiska nonprod/dev
APIRT-2630 Sporadyczne problemy podczas próby odczytania wartości z pamięci podręcznej
APIRT-2620 Osobna pula wątków dla niektórych kroków blokujących
APIRT-2610 java.lang.ClassCastException z zasadami pamięci podręcznej odpowiedzi
APIRT-2608 Błąd analizowania nagłówków Last-Modified w zasadach pamięci podręcznej odpowiedzi
APIRT-2605 Nie zezwalaj na zastępowanie zmiennych „organization” i „environment” za pomocą zasad
APIRT-2566 Zasada OAuthV2 zwraca nieprawidłowo sformatowany nagłówek WWW-Authenticate
APIRT-2491 Nie udało się zaktualizować serwera docelowego z powodu przekroczenia limitu czasu RPC między zarządzaniem a mps
APIRT-2386 W produkcie API z pustym polem Dozwolone zakresy OAuth tworzony jest zakres pustego ciągu
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 DEBUG cURL nie zatrzymuje się po upłynięciu limitu czasu utworzonej sesji
APIRT-1495 Ochrona przed zagrożeniami w XML nie wykrywa typu treści fhir
APIRT-347 Zasady XSL nie są prawidłowo weryfikowane podczas importowania (nie przypisują wyników do zmiennych wyjściowych zgodnie z dokumentacją).