Известные проблемы с Apigee

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

В следующих разделах описываются известные проблемы с Apigee. В большинстве случаев перечисленные проблемы будут исправлены в будущем выпуске.

Разное Известные проблемы Edge

В следующих разделах описаны различные известные проблемы с Edge.

Район/Сводка Известные проблемы
Срок действия кэша приводит к неправильному значению cachehit

Когда переменная потока cachehit используется после политики LookupCache, из-за способа отправки точек отладки для асинхронного поведения LookupPolicy заполняет объект DebugInfo до выполнения обратного вызова, что приводит к ошибке.

Обходной путь: повторите процесс (сделайте второй звонок) еще раз сразу после первого звонка.

Установка для политики InvalidateCache PurgeChildEntries значения true работает неправильно.

Установка PurgeChildEntries в политике InvalidateCache должна очищать только значения элемента KeyFragment , но очищает весь кеш.

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

Одновременные запросы на развертывание прокси-сервера SharedFlow или API могут привести к несогласованному состоянию на сервере управления, где несколько версий отображаются как развернутые.

Это может произойти, например, когда одновременно выполняются конвейеры развертывания CI/CD с использованием разных версий. Чтобы избежать этой проблемы, избегайте развертывания прокси-серверов API или SharedFlows до завершения текущего развертывания.

Обходной путь: избегайте одновременного развертывания прокси-сервера API или SharedFlow.

Количество вызовов API, отображаемое в Edge API Analytics, может содержать повторяющиеся данные.

Edge API Analytics иногда может содержать повторяющиеся данные для вызовов API. В этом случае количество вызовов API, отображаемое в Edge API Analytics, выше, чем сопоставимые значения, отображаемые в сторонних аналитических инструментах.

Обходной путь: экспортируйте аналитические данные и используйте поле шлюза_flow_id для дедупликации данных.

Известные проблемы с пользовательским интерфейсом Edge

В следующих разделах описаны известные проблемы с пользовательским интерфейсом Edge.

Область Известные вопросы
Невозможно получить доступ к странице администрирования зоны Edge SSO из панели навигации после того, как организация сопоставлена ​​с зоной идентификации. Когда вы подключаете организацию к зоне идентификации , вы больше не можете получить доступ к странице администрирования зоны Edge SSO с левой панели навигации, выбрав «Администратор» > «Единый вход». В качестве обходного пути перейдите на страницу напрямую, используя следующий URL-адрес: https://apigee.com/sso.

Известные проблемы с интегрированным порталом

В следующих разделах описаны известные проблемы интегрированного портала.

Область Известные проблемы
СмартДокс
  • Apigee Edge поддерживает спецификацию OpenAPI 3.0, когда вы создаете спецификации с помощью редактора спецификаций и публикуете API с помощью SmartDocs на своем портале, хотя подмножество функций еще не поддерживается.

    Например, следующие функции спецификации OpenAPI 3.0 пока не поддерживаются:

    • allOf свойства для объединения и расширения схем
    • Удаленные ссылки

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

    Примечание . Поскольку редактор спецификаций менее строгий, чем SmartDocs, при отображении справочной документации API, вы можете получить разные результаты при использовании разных инструментов.

  • При использовании «Попробуйте этот API» на портале для заголовка Accept устанавливается значение application/json независимо от значения, установленного для consumes в спецификации OpenAPI.
  • 138438484: несколько серверов не поддерживаются.
Поставщик удостоверений SAML Единый выход из системы (SLO) с помощью поставщика удостоверений SAML не поддерживается для личных доменов. Чтобы включить личный домен с поставщиком удостоверений SAML, оставьте поле URL-адрес выхода пустым при настройке параметров SAML .
Администратор портала
  • Одновременное обновление портала (например, редактирование страниц, тем, CSS или сценариев) несколькими пользователями в настоящее время не поддерживается.
  • Если вы удалите страницу справочной документации API с портала, восстановить ее будет невозможно; вам потребуется удалить и повторно добавить продукт API, а также заново создать справочную документацию по API.
  • При настройке политики безопасности контента для полного применения изменений может потребоваться до 15 минут.
  • При настройке темы портала для полного применения изменений может потребоваться до 5 минут.
Возможности портала
  • Поиск будет интегрирован в интегрированный портал в будущей версии.

Известные проблемы с Edge для частного облака

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

Область Известные проблемы
Edge for Private Cloud 4.53.00 440148595: Всплывающее предупреждение об окончании срока поддержки отображается слишком часто.

В Edge for Private Cloud версии 4.53.00 и более поздних версиях пользовательский интерфейс отображает всплывающее предупреждение о прекращении поддержки (EOL) . Это предупреждение появляется...
повторяющиеся и не предотвратимые или не уменьшающиеся по частоте.

В настоящее время у пользователей нет возможности отключить или уменьшить частоту появления этого предупреждения о завершении срока действия лицензии.

Edge for Private Cloud 4.53.01
443272053: Ошибки хранилища данных в граничных компонентах

В Edge for Private Cloud версии 4.53.00 и более поздних версиях определенный тип взаимодействия между Cassandra и компонентами приложения (сервер управления, обработчик сообщений или маршрутизатор) может вызывать ошибки хранилища данных. При возникновении такой ошибки в системных журналах соответствующего компонента приложения будут отображаться записи следующего вида:

com.datastax.driver.core.exceptions.ProtocolError: An unexpected protocol error occurred on host WW.XX.YY.ZZ:9042.

Эти ошибки возникают, когда компонент приложения не настроен на обработку предупреждений, генерируемых базой данных Cassandra. Вы можете смягчить эту проблему, избегая или подавляя предупреждения на узлах Cassandra. В большинстве случаев предупреждения генерируются из-за чрезмерного количества удаленных записей (tombstones). Вы можете использовать один из следующих вариантов или их комбинацию:

  1. Уменьшите значение gc_grace_seconds : Для таблицы, отображаемой в сообщении журнала, связанном с ошибкой, уменьшите значение gc_grace_seconds , выполнив следующую команду с помощью cqlsh :
    Below command sets gc_grace_seconds of kms.oauth_20_access_tokens to 1 day from default 10 days
    ALTER TABLE kms.oauth_20_access_tokens WITH gc_grace_seconds = '86400';
  2. Увеличьте пороговые значения для генерации предупреждений в Cassandra. Для этого воспользуйтесь следующими инструкциями:
    1. На узле Cassandra создайте или отредактируйте файл $APIGEE_ROOT/customer/application/cassandra.properties .
    2. Увеличьте пороговое значение предупреждения Tombstone с 10 000 до 100 000 или установите более высокие значения в зависимости от ситуации, добавив следующую строку:
      conf_cassandra_tombstone_warn_threshold=100000
    3. Убедитесь, что указанный выше файл принадлежит пользователю apigee и доступен для чтения:
      chown apigee:apigee $APIGEE_ROOT/customer/application/cassandra.properties
    4. Перезапустите приложение Cassandra на узле:
      apigee-service apigee-cassandra restart
    5. Повторите описанные выше шаги для каждого узла Cassandra по очереди.
42733857: Задержка при обновлении зашифрованных карт ключ-значение (KVM)

При работе с зашифрованными таблицами «ключ-значение» , содержащими большое количество записей, пользователи могут сталкиваться с задержками при добавлении или обновлении записей, будь то через API управления или элемент PUT в политике KeyValueMapOperations . Степень влияния на производительность, как правило, пропорциональна общему количеству записей, хранящихся в зашифрованной таблице «ключ-значение».

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

Вызовы Java

Клиентские Java-запросы, пытающиеся загрузить криптографический провайдер Bouncy Castle с именем "BC", могут завершиться неудачей, поскольку провайдер по умолчанию был изменен на Bouncy Castle FIPS для поддержки FIPS. Новое имя провайдера для использования — "BCFIPS" .

Edge for Private Cloud 4.53.00
Вызовы Java

Клиентские Java-запросы, пытающиеся загрузить криптографический провайдер Bouncy Castle с именем "BC", могут завершиться неудачей, поскольку провайдер по умолчанию был изменен на Bouncy Castle FIPS для поддержки FIPS. Новое имя провайдера для использования — "BCFIPS" .

Обновление Edge для частного облака 4.52.01 Mint

Эта проблема затрагивает только тех, кто использует MINT или у кого MINT включен в Edge для установок в частном облаке.

Затронутый компонент: edge-message-processor

Проблема: Если у вас включена монетизация и вы устанавливаете версию 4.52.01 с нуля или обновляете систему с предыдущих версий Private Cloud, вы столкнетесь с проблемой обработки сообщений. Будет наблюдаться постепенное увеличение количества открытых потоков, что приведет к исчерпанию ресурсов. В файле system.log компонента edge-message-processor отображается следующее исключение:

Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread
Уязвимость Apigee HTTP/2

Недавно в нескольких реализациях протокола HTTP/2 была обнаружена уязвимость типа «отказ в обслуживании» (DoS) (CVE-2023-44487), в том числе в Apigee Edge for Private Cloud. Эта уязвимость может привести к DoS-атаке на функциональность управления API Apigee. Для получения более подробной информации см. бюллетень безопасности Apigee GCP-2023-032 .

Компоненты маршрутизатора и сервера управления Edge for Private Cloud подключены к интернету и потенциально могут быть уязвимы. Хотя протокол HTTP/2 включен на порту управления других компонентов Edge for Private Cloud, ни один из этих компонентов не подключен к интернету. На компонентах, не относящихся к Edge, таких как Cassandra, Zookeeper и другие, протокол HTTP/2 не включен. Мы рекомендуем выполнить следующие шаги для устранения уязвимости Edge for Private Cloud:

Выполните следующие действия, если вы используете Edge Private Cloud версии 4.51.00.11 или более новой:

  1. Обновите сервер управления:

    1. На каждом узле сервера управления откройте /opt/apigee/customer/application/management-server.properties
    2. Добавьте эту строку в файл свойств:
      conf_webserver_http2.enabled=false
    3. Перезапустите компонент сервера управления:
      apigee-service edge-management-server restart
  2. Обновите обработчик сообщений:

    1. На каждом узле обработчика сообщений откройте /opt/apigee/customer/application/message-processor.properties .
    2. Добавьте эту строку в файл свойств:
      conf_webserver_http2.enabled=false
    3. Перезапустите компонент обработки сообщений:
      apigee-service edge-message-processor restart
  3. Обновите роутер:

    1. На каждом узле маршрутизатора откройте /opt/apigee/customer/application/router.properties
    2. Добавьте эту строку в файл свойств:
      conf_webserver_http2.enabled=false
    3. Перезапустите компонент обработки сообщений:
      apigee-service edge-router restart
  4. Обновить QPID:

    1. На каждом узле QPID откройте /opt/apigee/customer/application/qpid-server.properties
    2. Добавьте эту строку в файл свойств:
      conf_webserver_http2.enabled=false
    3. Перезапустите компонент обработки сообщений:
      apigee-service edge-qpid-server restart
  5. Обновить PostgreSQL:

    1. На каждом узле PostgreSQL откройте /opt/apigee/customer/application/postgres-server.properties .
    2. Добавьте эту строку в файл свойств:
      conf_webserver_http2.enabled=false
    3. Перезапустите компонент обработки сообщений:
      apigee-service edge-postgres-server restart

Выполните следующие действия, если вы используете Edge для частного облака версий старше 4.51.00.11:

  1. Обновите сервер управления:

    1. На каждом узле сервера управления откройте /opt/apigee/customer/application/management-server.properties
    2. Добавьте в файл свойств следующие две строки:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Перезапустите компонент сервера управления:
      apigee-service edge-management-server restart
  2. Обновите обработчик сообщений:

    1. На каждом узле обработчика сообщений откройте /opt/apigee/customer/application/message-processor.properties .
    2. Добавьте в файл свойств следующие две строки:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Перезапустите компонент обработки сообщений:
      apigee-service edge-message-processor restart
  3. Обновите роутер:

    1. На каждом узле маршрутизатора откройте /opt/apigee/customer/application/router.properties
    2. Добавьте в файл свойств следующие две строки:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Перезапустите компонент обработки сообщений:
      apigee-service edge-router restart
  4. Обновить QPID:

    1. На каждом узле QPID откройте /opt/apigee/customer/application/qpid-server.properties
    2. Добавьте в файл свойств следующие две строки:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Перезапустите компонент обработки сообщений:
      apigee-service edge-qpid-server restart
  5. Обновить PostgreSQL:

    1. На каждом узле PostgreSQL откройте /opt/apigee/customer/application/postgres-server.properties .
    2. Добавьте в файл свойств следующие две строки:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Перезапустите компонент обработки сообщений:
      apigee-service edge-postgres-server restart
Обновление PostgreSQL при переходе на версию 4.52.

Apigee-postgresql испытывает проблемы при обновлении с версии Edge for Private Cloud 4.50 или 4.51 до версии 4.52. Проблемы в основном возникают, когда количество таблиц превышает 500.

Вы можете проверить общее количество таблиц в PostgreSQL, выполнив следующий SQL-запрос:

select count(*) from information_schema.tables

Временное решение: При обновлении Apigee Edge с версии 4.50.00 или 4.51.00 до 4.52.00 обязательно выполните предварительный шаг перед обновлением Apigee-postgresql.

Политика LDAP

149245401: Настройки пула соединений LDAP для JNDI, заданные через ресурс LDAP, не отображаются, и значения по умолчанию JNDI приводят к созданию одноразовых соединений каждый раз. В результате соединения открываются и закрываются каждый раз для одноразового использования, создавая большое количество соединений в час с сервером LDAP.

Временное решение:

Для изменения свойств пула подключений LDAP выполните следующие действия, чтобы применить глобальное изменение ко всем политикам LDAP.

  1. Создайте файл конфигурационных свойств, если он еще не существует:
    /opt/apigee/customer/application/message-processor.properties
  2. Добавьте в файл следующее (замените значения свойств Java Naming and Directory Interface (JNDI) в соответствии с требованиями вашей конфигурации ресурсов LDAP).
    bin_setenv_ext_jvm_opts="-Dcom.sun.jndi.ldap.connect.pool.maxsize=20
    -Dcom.sun.jndi.ldap.connect.pool.prefsize=2
    -Dcom.sun.jndi.ldap.connect.pool.initsize=2
    -Dcom.sun.jndi.ldap.connect.pool.timeout=120000
    -Dcom.sun.jndi.ldap.connect.pool.protocol=ssl"
  3. Убедитесь, что файл /opt/apigee/customer/application/message-processor.properties принадлежит пользователю apigee:apigee.
  4. Перезапустите каждый обработчик сообщений.

Чтобы убедиться, что свойства JNDI вашего пула соединений вступают в силу, вы можете выполнить команду tcpdump для наблюдения за поведением пула соединений LDAP с течением времени.

Высокая задержка обработки запросов

139051927: Высокие задержки обработки прокси-серверов, обнаруженные в обработчике сообщений, затрагивают все API-прокси. Симптомы включают задержки обработки на 200-300 мс по сравнению с обычным временем ответа API и могут возникать случайным образом даже при низкой скорости обработки (TPS). Это может произойти, когда обработчик сообщений устанавливает соединения более чем с 50 целевыми серверами.

Основная причина: Обработчики сообщений хранят кэш, который сопоставляет URL-адрес целевого сервера с объектом HTTPClient для исходящих соединений с целевыми серверами. По умолчанию этот параметр установлен на 50, что может быть слишком низким для большинства развертываний. Когда развертывание включает в себя несколько комбинаций организаций/сред и большое количество целевых серверов, превышающее в общей сложности 50, URL-адреса целевых серверов постоянно удаляются из кэша, вызывая задержки.

Проверка: Чтобы определить, является ли причиной задержки вытеснение URL-адресов целевого сервера, выполните поиск в системных журналах обработчика сообщений по ключевым словам "onEvict" или "Eviction". Их наличие в журналах указывает на то, что URL-адреса целевого сервера вытесняются из кэша HTTPClient, поскольку размер кэша слишком мал.

Временное решение: Для версий Edge for Private Cloud 19.01 и 19.06 вы можете отредактировать и настроить кэш HTTPClient в файле /opt/apigee/customer/application/message-processor.properties :

conf/http.properties+HTTPClient.dynamic.cache.elements.size=500

Затем перезапустите обработчик сообщений. Внесите те же изменения во все обработчики сообщений.

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

Примечание: В версии Edge for Private Cloud 50.00 значение по умолчанию равно 500.

Несколько записей для карт ключ-значение

157933959: Одновременная вставка и обновление одной и той же карты ключ-значение (KVM) на уровне организации или среды приводит к несогласованности данных и потере обновлений.

Примечание: это ограничение относится только к Edge для частного облака. Edge для публичного облака и гибридного облака это ограничение не распространяется.

В качестве обходного решения в Edge для частного облака создайте KVM в области действия apiproxy .