16.08.17 - Примечания к выпуску Apigee Edge для публичного облака

Вы просматриваете документацию Apigee Edge .
Перейти к документации Apigee X.
info

Во вторник, 30 августа 2016 года, мы выпустили новую версию Apigee Edge для публичного облака.

Новые функции и обновления

Ниже перечислены новые функции и обновления в этом выпуске.

Полезные данные JSON в назначении сообщения и вызове ошибки

При настройке полезной нагрузки JSON с помощью политики «Назначить сообщение» или «Вызвать ошибку» пользователям иногда приходилось прибегать к обходным путям, чтобы гарантировать правильное форматирование сообщения JSON во время выполнения, например начинать полезную нагрузку с обратной косой черты «\" или указывать variablePrefix и variableSuffix в элементе Payload, даже если в сообщении не использовались переменные.

Благодаря этому улучшению не требуется никаких обходных путей для обеспечения правильного форматирования JSON-сообщений, а переменные можно указывать с помощью фигурных скобок, не создавая недействительный JSON. Например, следующий код вставляет значение message.content в JSON-сообщение:

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

Если вы использовали обходной путь, ваш код продолжит работать как есть. Вы также можете использовать variablePrefix и variableSuffix вместо фигурных скобок для обозначения переменных.

См. элемент <Set><Payload> в справочных документах по политике назначения сообщений и политике вызова сбоя . (APIRT-1160)

Улучшения политики преобразования XML в JSON

Политика преобразования XML в JSON расширена следующими возможностями. Вы можете настроить политику следующим образом:

  • Обрабатывать некоторые элементы XML как массивы во время преобразования, помещая значения в квадратные скобки '[ ]' в документе JSON.
  • Удалить или исключить уровни иерархии XML-документа в конечном документе JSON.

Для получения дополнительной информации см. Политику преобразования XML в JSON (APIRT-1144).

Несколько подстановочных знаков в путях ресурсов продукта API

При определении путей к ресурсам в API Product можно использовать подстановочные знаки в нескольких местах пути к ресурсам. Например, /team/*/invoices/** допускает вызовы API с любым значением после /team и любыми путями к ресурсам после invoices/ . Допустимым URI для вызова API будет proxyBasePath/team/finance/invoices/company/a .

Если после этого релиза ваши существующие пути к ресурсам API-продукта перестанут работать должным образом, задайте следующее свойство в вашей организации, чтобы вернуться к предыдущему поведению: features.enableStandardWildCardMatchForAPIProductResources = true

(МГМТ-3273)

Криптофункции в JavaScript

Доступен новый набор высокопроизводительных crypto функций JavaScript для создания, получения и обновления следующих has-объектов: MD5, SHA-1, SHA256, SHA512. Криптографический объект также позволяет получать дату в различных форматах. Подробнее см. в разделе «Объектная модель JavaScript » (APIRT-2886).

Проверка версии JAR-файла Java Callout

При загрузке ресурса Java JAR на прокси-сервер API возвращается код состояния HTTP 400 (вместо 500), если версия ресурса Java несовместима с поддерживаемой Edge версией Java, указанной в разделе «Поддерживаемое программное обеспечение и поддерживаемые версии» . (MGMT-3420)

Проверка ресурсов прокси-API

Если у вас есть файлы ресурсов прокси-API (например, JAR-файлы JavaScript или Java), хранящиеся в среде или организации, фреймворк валидации больше не требует включения этих ресурсов на уровне прокси-API в пакет прокси для импорта и прохождения валидации. Валидация ресурсов теперь выполняется во время развертывания, а не во время импорта. (MGMT-1430)

Настройте тайм-аут для отдельных API-прокси

Вы можете настроить прокси API на тайм-аут по истечении заданного времени (со статусом тайм-аута шлюза 504). Основной вариант использования — клиенты частного облака, у которых прокси API требуют больше времени для выполнения. Например, вам нужно, чтобы определенные прокси-серверы работали по тайм-ауту 3 минуты. Вы можете использовать новое свойство api.timeout в конфигурации прокси API. Вот как это можно сделать в примере с 3 минутами:

  1. Во-первых, обязательно настройте балансировщик нагрузки, маршрутизатор и обработчик сообщений на тайм-аут через 3 минуты.
  2. Затем настройте соответствующие прокси-серверы на тайм-аут в 3 минуты. Укажите значение в миллисекундах. Например:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. Однако обратите внимание, что увеличение системных тайм-аутов может привести к проблемам с производительностью, поскольку все прокси без настройки api.timeout используют новые, более высокие тайм-ауты балансировщика нагрузки, маршрутизатора и обработчика сообщений. Поэтому настройте другие API-прокси, которым не требуются более длительные тайм-ауты, на использование более низких тайм-аутов. Например, следующий код устанавливает для API-прокси тайм-аут через 1 минуту:
    <Property name="api.timeout">60000</Property>

Клиенты облачных сервисов, которые не могут изменять тайм-ауты Edge, также могут настроить тайм-аут прокси-API, если он короче стандартного тайм-аута процессора сообщений Edge, составляющего 57 секунд.

Значение нельзя заполнить переменной. Это свойство описано в справочнике свойств конечной точки (APIRT-1778).

Политика регистрации сообщений TLS/SSL

Параметры <KeyStore> и <TrustStore> можно задать в конфигурации SSLInfo в политике ведения журнала сообщений , что позволяет использовать одно- и двусторонний протокол TLS/SSL с ведением журнала. Настройка SSLInfo в политике ведения журнала сообщений выполняется так же, как и в целевой конечной точке прокси-сервера. Однако ведение журнала сообщений TLS/SSL поддерживает только протокол TCP. (APIRT-1858)

Исправлены ошибки

В этом выпуске исправлены следующие ошибки. Этот список предназначен в первую очередь для пользователей, проверяющих, были ли исправлены их обращения в службу поддержки. Он не предназначен для предоставления подробной информации всем пользователям.

Идентификатор выпуска Описание
SECENG-609 Вызовы времени выполнения не приводят к сбою при удалении связанного хранилища доверенных сертификатов или при удалении действительного сертификата в хранилище доверенных сертификатов.
МГМТ-3404 Просмотр/извлечение журналов Node.js и развертывание прокси-серверов выполняются очень медленно.
МГМТ-3400 Вызов API управления /userroles завершается ошибкой, если в имени пользователя, выполняющего вызов, есть знак «+».
МГМТ-3368 java.lang.ArrayIndexOutOfBoundsException: 1 при импорте пакета API Proxy, содержащего каталог resources/node/resources
МГМТ-3364 OAuthV2: проверка redirect_uri
МГМТ-3319 Список записей в хранилище, в одной из которых есть нулевое значение, не работает для организаций (CPS и не-CPS)
МГМТ-3226 Запросы на уровне организации/среды не должны извлекать все данные, приводя к сбою API.
В версии 160302 была ошибка, из-за которой вывод списка ресурсов на уровне организации/среды завершался сбоем, если совокупный размер ресурсов превышал 16 МБ. Данное исправление устраняет эту ошибку.
AXAPP-2429 Аналитический API, использующий response_status_code, возвращает ошибку доступа к данным
AXAPP-2386 Исправление пустого содержимого отчетов в ежедневных аналитических отчетах по электронной почте
AXAPP-2347 Не получаю ежедневные аналитические сводки по электронной почте
APIRT-3141 Вызовы Java Callouts завершаются ошибкой при вызове new ExecutionResult(), поскольку конструктор был сделан закрытым.
APIRT-3140 Политика ServiceCallout не работает в вызовах API HEAD
APIRT-3131 Неправильное значение createdBy отображается для API Proxy при использовании монетизации с внешним поставщиком аутентификации.
APIRT-3121 Внесенные изменения в файл ресурсов организации неэффективны на 100%.
APIRT-3117 MP достиг 100% загрузки ЦП и прекратил обслуживание трафика
APIRT-3016 Ошибки маршрутизатора «Время ожидания вызова истекло» при развертывании
APIRT-2975 Ошибка загрузки пакета сертификатов
APIRT-2955 Невозможно замаскировать определенные атрибуты данных ответа JSON для заголовка Content-Type «application/json+fhir» жалобы FHIR.
APIRT-2946 Политика OAuthV2-RefreshToken не скрывает атрибуты, хотя для параметра display задано значение false
APIRT-2908 После обновления TLS1.2 на виртуальном хосте требуется принудительное использование TLS1.2 для внутренних вызовов API.
APIRT-2901 Сжатые в Gzip ответы, возвращаемые из кэша, подвергаются двойному сжатию.
APIRT-2873 MP выдают исключение NullPointerException, связанное с VerifyAPIKey, после удаления продуктов/разработчиков/прокси.
APIRT-2871 Политики IOIntensive дважды появляются в Trace
APIRT-2825 Грамматическая ошибка в ответе об ошибке accesstoken
APIRT-2750 В определенных организациях наблюдаются высокие сбои в работе транспорта
APIRT-2685 Трафик не может проходить из-за неизвестной ошибки.
APIRT-2647 Ошибка «Базовый входной поток вернул ноль байтов» с nonprod/dev
APIRT-2630 Периодически возникающие проблемы при попытке чтения значения из кэша
APIRT-2620 Отдельный пул потоков для некоторых блокирующих шагов
APIRT-2610 java.lang.ClassCastException с политикой кэширования ответов
APIRT-2608 Ошибка анализа заголовков Last-Modified в политиках кэширования ответов
APIRT-2605 Переменные «организация» и «среда» не должны перезаписываться политиками.
APIRT-2566 Политика OAuthV2 возвращает некорректный заголовок WWW-Authenticate
APIRT-2491 Обновление TargetServer не удалось из-за тайм-аута RPC между управлением и mps
APIRT-2386 Пустая строковая область создается в API-продукте с пустыми разрешенными областями OAuth.
APIRT-2383 Политики преобразования XSL, похоже, не регистрируют никаких данных при возникновении ошибки.
APIRT-2364 Переменные потока ошибок OAuth не обновляются при возникновении ошибки
APIRT-2216 События, отправленные сервером, — поток событий, в котором возникли проблемы в рабочей среде
APIRT-2079 Вызов отладки cURL не останавливается после истечения времени ожидания созданного сеанса
APIRT-1495 Защита от угроз XML не обнаруживает fhir Content-Type
APIRT-347 Политика XSL не проверяется должным образом при импорте (не назначает результаты выходным переменным, как описано в документации)