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

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

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

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

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

Полезные нагрузки JSON в сообщениях Assign Message и Raise Fault

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

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

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

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

Ознакомьтесь с элементом <Set><Payload> в справочной документации по правилу Assign Message и правилу Raise Fault. (APIRT-1160)

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

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

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

Подробнее о правилах преобразования XML в JSON… (APIRT-1144)

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

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

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

(MGMT-3273)

Функции шифрования в JavaScript

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

Проверка версии JAR-файла уточнения Java

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

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

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

Как настроить время ожидания для отдельных прокси API

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

  1. Сначала настройте балансировщик нагрузки, маршрутизатор и процессор сообщений так, чтобы время ожидания истекало через три минуты.
  2. Затем настройте соответствующие прокси-серверы так, чтобы время ожидания составляло три минуты. Укажите значение в миллисекундах. Пример:
    <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 время ожидания в одну минуту:
    <Property name="api.timeout">60000</Property>

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

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

TLS/SSL для ведения журнала сообщений Правила

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

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

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

Идентификатор проблемы Описание
SECENG-609 Вызовы во время выполнения не завершаются ошибкой при удалении связанного хранилища доверенных сертификатов или при удалении действительного сертификата из хранилища доверенных сертификатов
MGMT-3404 Просмотр и получение журналов Node.js, а также развертывание прокси-серверов выполняется очень медленно
MGMT-3400 Вызов API управления /userroles завершается неудачно, если в имени пользователя, выполняющего вызов, есть знак "+"
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1 при импорте пакета прокси API, содержащего каталог resources/node/resources
MGMT-3364 OAuthV2: проверка redirect_uri
MGMT-3319 Не удается получить список записей в хранилище, если в одной из записей есть нулевое значение (для организаций с базовой платформой и без нее)
MGMT-3226 При запросе на уровне организации или среды не должны извлекаться все данные, из-за чего API может не работать.
В версии 160302 была ошибка, из-за которой не удавалось получить список ресурсов на уровне организации или среды, если их общий размер превышал 16 МБ. Эта ошибка исправлена.
AXAPP-2429 Analytics API с использованием response_status_code возвращает ошибку доступа к данным
AXAPP-2386 Как устранить проблему с пустыми отчетами в ежедневных письмах от Аналитики
AXAPP-2347 Не приходят ежедневные сводки аналитики
APIRT-3141 Вызовы Java завершаются ошибкой при вызове new ExecutionResult() , поскольку конструктор стал закрытым
APIRT-3140 Правило ServiceCallout не работает в вызовах API HEAD
APIRT-3131 Неверное значение createdBy для прокси API при использовании монетизации с внешним поставщиком услуг аутентификации
APIRT-3121 Изменения в файле ресурса организации не применяются на 100%
APIRT-3117 Медиапроигрыватель достиг 100% загрузки ЦП и перестал обрабатывать трафик
APIRT-3016 Ошибки "Превышено время ожидания вызова" маршрутизатора при развертывании
APIRT-2975 Не удалось загрузить пакет сертификатов
APIRT-2955 Не удается деидентифицировать некоторые атрибуты данных ответа JSON для заголовка Content-Type, соответствующего стандарту FHIR, 'application/json+fhir'
APIRT-2946 Правило OAuthV2-RefreshToken не скрывает атрибуты, даже если для параметра display задано значение false
APIRT-2908 После обновления TLS1.2 на виртуальном хосте необходимо принудительно использовать TLS1.2 для внутренних вызовов API
APIRT-2901 Ответы, сжатые с помощью gzip и полученные из кеша, сжимаются дважды
APIRT-2873 После удаления продуктов, разработчиков и прокси-серверов в модулях обработки сообщений возникает исключение NullPointerException, связанное с VerifyAPIKey
APIRT-2871 Правила IOIntensive дважды появляются в трассировке
APIRT-2825 Грамматическая ошибка в ответе об ошибке accesstoken
APIRT-2750 Большое количество сбоев трафика в определенной организации
APIRT-2685 Неизвестная ошибка, из-за которой не может передаваться трафик
APIRT-2647 Ошибка"Базовый входной поток вернул ноль байтов" в непроизводственной/разработческой среде
APIRT-2630 Периодические проблемы при попытке прочитать значение из кеша
APIRT-2620 Отдельный пул потоков для некоторых блокирующих шагов
APIRT-2610 java.lang.ClassCastException с правилом кеширования ответов
APIRT-2608 Ошибка при обработке заголовков Last-Modified в правилах кеширования ответов
APIRT-2605 Переменные"organization" и "environment" нельзя перезаписывать с помощью правил
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
APIRT-347 Правила XSL не проходят проверку при импорте (результаты не присваиваются выходным переменным, как описано в документации)