Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
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> в справочной документации по правилу 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. Вот как это сделать на примере трехминутного видео:
- Сначала настройте балансировщик нагрузки, маршрутизатор и процессор сообщений так, чтобы время ожидания истекало через три минуты.
- Затем настройте соответствующие прокси-серверы так, чтобы время ожидания составляло три минуты. Укажите значение в миллисекундах. Пример:
<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 время ожидания в одну минуту:
<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 не проходят проверку при импорте (результаты не присваиваются выходным переменным, как описано в документации) |