Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Во вторник, 30 августа 2016 года, мы выпустили новую версию Apigee Edge для публичного облака.
Новые функции и обновления
Ниже перечислены новые функции и обновления в этом релизе.
JSON-данные в функциях Assign Message и Raise Fault
Благодаря этому усовершенствованию больше не требуется никаких обходных путей для обеспечения правильного форматирования 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-минутным интервалом:
- Во-первых, обязательно настройте балансировщик нагрузки, маршрутизатор и обработчик сообщений таким образом, чтобы они завершали работу по истечении 3 минут.
- Затем настройте соответствующие прокси-серверы на тайм-аут в 3 минуты. Укажите значение в миллисекундах. Например:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <!-- api.timeout is in milliseconeds --> <Property name="api.timeout">180000</Property> </Properties> ... - Однако следует отметить, что увеличение системных таймаутов может привести к проблемам с производительностью, поскольку все прокси-серверы без параметра 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 некорректно проверяется при импорте (результаты не присваиваются выходным переменным, как указано в документации). |