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

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

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

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

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

JSON-данные в функциях Assign Message и Raise Fault

При задании полезной нагрузки 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 Product

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

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

(MGMT-3273)

Криптографические функции в JavaScript

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

Проверка версии JAR-файла через вызов Java

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

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

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

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

Вы можете настроить API-прокси таким образом, чтобы они завершали работу по истечении указанного времени (со статусом 504 Gateway Timeout). Основной вариант использования — для клиентов частного облака, у которых 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 для политики ведения журнала сообщений выполняется так же, как и для TargetEndpoint прокси-сервера. Однако TLS/SSL в политике ведения журнала сообщений поддерживает только протокол TCP. (APIRT-1858)

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

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

Идентификатор выпуска Описание
SECENG-609 Вызовы во время выполнения не завершаются с ошибкой при удалении связанного хранилища доверенных сертификатов или при удалении действительного сертификата в хранилище доверенных сертификатов.
MGMT-3404 Просмотр/получение логов Node.js и развертывание прокси-серверов происходит очень медленно.
МГМТ-3400 Вызов API управления /userroles завершится неудачей, если имя пользователя, выполняющего вызов, содержит знак "+".
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1, при импорте пакета API Proxy, содержащего каталог resources/node/resources
MGMT-3364 OAuthV2: проверка redirect_uri
MGMT-3319 Функция отображения записей в хранилище, в одной из которых содержится нулевое значение, не работает для организаций (как использующих CPS, так и не использующих CPS).
MGMT-3226 Запросы на уровне организации/среды не должны извлекать все данные, что приводит к сбою API.
В версии Release_160302 была обнаружена ошибка, из-за которой отображение ресурсов на уровне организации/среды завершалось с ошибкой, если суммарный размер ресурсов превышал 16 МБ; данное исправление устраняет эту проблему.
AXAPP-2429 Использование API аналитики с параметром response_status_code приводит к ошибке доступа к данным.
AXAPP-2386 Исправить пустое содержимое отчетов в ежедневных отчетах по электронной почте в системе аналитики.
AXAPP-2347 Не получаю ежедневные электронные письма с аналитическими сводками.
APIRT-3141 В Java вызов метода `new ExecutionResult()` завершается ошибкой, поскольку конструктор сделан приватным.
APIRT-3140 Политика ServiceCallout не работает в вызовах API HEAD.
APIRT-3131 При использовании монетизации с внешним поставщиком аутентификации для API-прокси отображается некорректное значение createdBy.
APIRT-3121 Изменения в файле ресурсов организации не вступают в силу на 100%.
APIRT-3117 MP достиг 100% загрузки ЦП и прекратил обработку трафика.
APIRT-3016 При развертывании маршрутизатора возникают ошибки "Время ожидания вызова истекло".
APIRT-2975 Ошибка загрузки пакета сертификатов.
APIRT-2955 Не удается скрыть определенные атрибуты данных JSON-ответа для заголовка Content-Type, соответствующего стандарту FHIR, 'application/json+fhir'.
APIRT-2946 Политика OAuthV2-RefreshToken не скрывает атрибуты, даже если параметр display установлен на false.
APIRT-2908 После обновления виртуального хоста до версии TLS 1.2 необходимо принудительно использовать TLS 1.2 для внутренних вызовов API.
APIRT-2901 Сжатые ответы, возвращаемые из кэша, имеют двойное сжатие.
APIRT-2873 В MP-файлах возникает ошибка NullPointerException, связанная с VerifyAPIKey, после удаления продуктов/разработчиков/прокси.
APIRT-2871 Политики IOIntensive дважды появляются в Trace.
APIRT-2825 Грамматическая ошибка в ответе об ошибке accesstoken.
APIRT-2750 Высокая частота сбоев в работе транспорта наблюдается в определенных организациях.
APIRT-2685 Невозможно продолжить передачу данных из-за неизвестной ошибки.
APIRT-2647 Ошибка "Входной поток вернул ноль байтов" в непроизводственном/разработческом режимах.
APIRT-2630 Периодически возникают проблемы при попытке чтения значения из кэша.
APIRT-2620 Для некоторых блокирующих этапов используется отдельный пул потоков.
APIRT-2610 java.lang.ClassCastException with Response Cache policy
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 некорректно проверяется при импорте (результаты не присваиваются выходным переменным, как указано в документации).