Поделиться через


Настройка шлюза VMware Spring Cloud

Примечание.

Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.

Эта статья относится к:❌ Basic/Standard ✔️ Enterprise

В этой статье показано, как настроить шлюз VMware Spring Cloud для VMware Tanzu с планом Azure Spring Apps Enterprise.

VMware Spring Cloud Gateway — это коммерческий компонент VMware Tanzu на основе проекта Шлюза Spring Cloud с открытым исходным кодом. Шлюз VMware Spring Cloud для Tanzu обрабатывает перекрестные проблемы для команд разработки API, таких как единый вход (SSO), управление доступом, ограничение скорости, устойчивость и безопасность. Вы можете ускорить доставку API с помощью современных облачных шаблонов в выборе языка программирования для разработки API.

Экземпляр шлюза VMware Spring Cloud направляет трафик в соответствии с правилами. Он поддерживает масштабирование в/вне и вверх и вниз для удовлетворения динамической нагрузки трафика.

Шлюз VMware Spring Cloud включает следующие функции:

  • Динамическая конфигурация маршрутизации, независимо от отдельных приложений, которую можно применять и изменять без повторной компиляции
  • Фильтры маршрутов коммерческого API для переноса авторизованных утверждений веб-маркера JSON (JWT) в службы приложений
  • Авторизация сертификата клиента
  • Подходы к ограничению скорости
  • Конфигурация разбиения цепи
  • Поддержка доступа к службам приложений с помощью учетных данных проверки подлинности HTTP Basic

Чтобы интегрироваться с порталом API для VMware Tanzu, VMware Spring Cloud Gateway автоматически создает документацию OpenAPI версии 3 после любых добавлений или изменений конфигурации маршрута. Дополнительные сведения см. на портале API для VMware Tanzu.

Необходимые компоненты

Включение или отключение шлюза VMware Spring Cloud

Вы можете включить или отключить шлюз VMware Spring Cloud после создания экземпляра службы с помощью портал Azure или Azure CLI. Прежде чем отключить шлюз VMware Spring Cloud, необходимо отменить назначение конечной точки и удалить все конфигурации маршрутов.

Выполните следующие действия, чтобы включить или отключить шлюз VMware Spring Cloud с помощью портал Azure:

  1. Перейдите к ресурсу службы и выберите Spring Cloud Gateway.
  2. Выберите Управление.
  3. Установите или снимите флажок "Включить шлюз Spring Cloud" и нажмите кнопку "Сохранить".

Теперь можно просмотреть состояние шлюза Spring Cloud на странице Spring Cloud Gateway .

Снимок экрана: портал Azure, на котором показана страница Spring Cloud Gateway.

Перезапуск шлюза VMware Spring Cloud

После завершения действия перезапуска экземпляры VMware Spring Cloud Gateway перезагружаются на последовательной основе.

Выполните следующие действия, чтобы перезапустить шлюз VMware Spring Cloud с помощью портал Azure:

  1. Перейдите к ресурсу службы и выберите Spring Cloud Gateway.
  2. Выберите Перезапустить.
  3. Нажмите кнопку "ОК ", чтобы подтвердить перезагрузку.

Снимок экрана: портал Azure, на котором показана страница Spring Cloud Gateway с сообщением подтверждения о перезапуске шлюза.

Назначение общедоступной конечной точки шлюзу VMware Spring Cloud

В этом разделе описывается, как назначить общедоступную конечную точку шлюзу VMware Spring Cloud и настроить его свойства.

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

  1. Откройте экземпляр Azure Spring Apps.
  2. Выберите Spring Cloud Gateway на панели навигации и выберите " Обзор".
  3. Задайте для конечной точки значение "Да".

Через несколько минут URL-адрес настроенной конечной точки. Сохраните URL-адрес для дальнейшего использования.

Снимок экрана: портал Azure, на котором показана страница обзора шлюза Spring Cloud с переключателем для назначения конечной точки.

Настройка метаданных шлюза VMware Spring Cloud

Метаданные шлюза VMware Spring Cloud автоматически создают документацию по OpenAPI версии 3. Метаданные VMware Spring Cloud Gateway можно настроить для отображения групп маршрутов на портале API для VMware Tanzu. Дополнительные сведения см. на портале API для VMware Tanzu.

В следующей таблице описываются доступные параметры метаданных:

Свойство Description
title Заголовок, описывающий контекст API, доступных в экземпляре шлюза VMware Spring Cloud. Значение по умолчанию — Spring Cloud Gateway for K8S.
description Подробное описание API, доступных в экземпляре шлюза VMware Spring Cloud. Значение по умолчанию — Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*..
documentation Расположение документации по API, доступной в экземпляре VMware Spring Cloud Gateway.
version Версия API, доступная в этом экземпляре шлюза VMware Spring Cloud. Значение по умолчанию — unspecified.
serverUrl Базовый URL-адрес для доступа к API на экземпляре шлюза VMware Spring Cloud. Это свойство является обязательным, если вы хотите интегрироваться с порталом API.

Для изменения свойств метаданных можно использовать портал Azure или Azure CLI.

Чтобы изменить метаданные в портал Azure, выполните следующие действия.

  1. Откройте экземпляр Azure Spring Apps.
  2. Выберите Spring Cloud Gateway на панели навигации и выберите "Конфигурация".
  3. Укажите значения свойств, перечисленных для API.
  4. Выберите Сохранить.

Снимок экрана: портал Azure, на котором показана вкладка конфигурации шлюза Spring Cloud с выделенным разделом API.

Настройка единого входа

VMware Spring Cloud Gateway поддерживает проверку подлинности и авторизацию через единый вход с помощью поставщика удостоверений OpenID. Поставщик поддерживает протокол обнаружения OpenID Connect. В следующей таблице описаны свойства единого входа:

Свойство Обязательное? Description
issuerUri Да Универсальный код ресурса (URI), который утверждается в качестве идентификатора издателя. Например, если issuerUri это https://example.comтак, выполняется https://example.com/.well-known/openid-configurationзапрос конфигурации поставщика OpenID. В ответе ожидается конфигурация поставщика OpenID.
clientId Да Идентификатор клиента OpenID Connect из поставщика удостоверений.
clientSecret Да Секрет клиента OpenID Connect от поставщика удостоверений.
scope Да Список областей для включения в маркеры идентификации JWT. Этот список должен основываться на областях, которые разрешает поставщик удостоверений.

Сведения о настройке единого входа с идентификатором Microsoft Entra см. в статье Настройка единого входа с помощью идентификатора Microsoft Entra для Spring Cloud Gateway и портала API.

Для изменения свойств единого входа можно использовать портал Azure или Azure CLI.

Чтобы изменить свойства единого входа в портал Azure, выполните следующие действия.

  1. Откройте экземпляр Azure Spring Apps.
  2. Выберите Spring Cloud Gateway на панели навигации и выберите "Конфигурация".
  3. Укажите значения свойств, перечисленных для единого входа.
  4. Выберите Сохранить.

Снимок экрана: портал Azure, на котором показана вкладка конфигурации Шлюза Spring Cloud с выделенным разделом для единого входа.

VMware Spring Cloud Gateway поддерживает только серверы авторизации, поддерживающие протокол обнаружения OpenID Connect. Кроме того, не забудьте разрешить перенаправление обратно в шлюз на внешнем сервере авторизации. Ознакомьтесь с документацией по серверу авторизации и добавьте https://<gateway-external-url>/login/oauth2/code/sso в список разрешенных URI перенаправления.

Если вы настроите неправильное свойство единого входа, например неправильный пароль, необходимо удалить все свойство единого входа и добавить правильную конфигурацию.

После настройки единого входа не забудьте задать ssoEnabled: true маршруты шлюза VMware Spring Cloud.

Настройка выхода единого входа

Экземпляры службы VMware Spring Cloud Gateway предоставляют конечную точку API по умолчанию для выхода из текущего сеанса единого входа. Путь к этой конечной точке ./scg-logout Выход приводит к одному из следующих результатов в зависимости от способа вызова конечной точки выхода:

  • Выход из сеанса и перенаправление к выходу поставщика удостоверений (IdP).
  • Выход из сеанса экземпляра службы.

Выход из сеанса поставщика удостоверений и единого входа

При отправке GET запроса в /scg-logout конечную точку конечная точка отправляет 302 ответ перенаправления на URL-адрес выхода поставщика удостоверений. Чтобы получить конечную точку, чтобы вернуть пользователя в путь к экземпляру службы шлюза, добавьте параметр перенаправления в GET запрос с конечной /scg-logout точкой. Например, вы можете использовать значение ${server-url}/scg-logout?redirect=/home.

Значение параметра перенаправления должно быть допустимым путем в экземпляре службы VMware Spring Cloud Gateway. Вы не можете перенаправить внешний URL-адрес.

Ниже описан пример реализации функции в микрослужбах:

  1. Получите конфигурацию маршрута для маршрутизации запроса на выход в приложение. Пример см. в конфигурации маршрута в репозитории спасения животных на GitHub.

  2. Добавьте в приложение любую логику выхода. В конце концов вам потребуется GET запрос к конечной точке шлюза /scg-logout , как показано в return значении getActionButton метода в репозитории спасения животных.

Выход из сеанса единого входа

При отправке запроса в GET /scg-logout конечную точку с помощью XMLHttpRequest302 перенаправления можно проглотить и не обрабатываться в обработчике ответа. В этом случае пользователь будет выходить только из сеанса единого входа в экземпляре службы VMware Spring Cloud Gateway. Пользователь по-прежнему будет иметь допустимый сеанс поставщика удостоверений. Как правило, если пользователь пытается войти снова, он автоматически отправляется в шлюз, как прошедший проверку подлинности из поставщика удостоверений.

Необходимо настроить маршрут для маршрутизации запроса выхода в приложение, как показано в следующем примере. Этот код делает сеанс единого входа только для шлюза.

const req = new XMLHttpRequest();
req.open("GET", "/scg-logout);
req.send();

Настройка общего доступа к ресурсам между источниками

Совместное использование ресурсов между источниками (CORS) позволяет запрашивать ограниченные ресурсы на веб-странице из другого домена за пределами домена, из которого был обработан первый ресурс. В следующей таблице описаны доступные параметры конфигурации CORS.

Свойство Description
allowedOrigins Разрешенные источники для создания межсайтовых запросов.
allowedOriginPatterns Разрешенные шаблоны источников для выполнения запросов между сайтами
allowedMethods Разрешенные методы HTTP для межсайтовых запросов.
allowedHeaders Разрешенные заголовки в межсайтовых запросах
maxAge Сколько времени в секундах клиенты кэшируют ответ из предварительного запроса
allowCredentials Поддерживаются ли учетные данные пользователя при межсайтовых запросах.
exposedHeaders Заголовки HTTP-ответов, которые будут предоставляться для межсайтовых запросов.

Убедитесь, что у вас есть правильная конфигурация CORS, если вы хотите интегрировать с порталом API. Дополнительные сведения см. в разделе "Назначение общедоступной конечной точки шлюзу VMware Spring Cloud ".

Использование масштабирования служб

Вы можете настроить выделение ресурсов для экземпляров шлюза VMware Spring Cloud, включая виртуальный ЦП, память и число экземпляров.

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

В следующей таблице описано использование ресурсов по умолчанию.

Наименование компонента Число экземпляров Количество виртуальных ЦП на экземпляр Объем памяти на экземпляр
Шлюз VMware Spring Cloud 2 1 ядро 2 ГиБ
Оператор шлюза VMware Spring Cloud 2 1 ядро 2 ГиБ

Настройка TLS между шлюзом и приложениями

Чтобы повысить безопасность и защитить конфиденциальную информацию от перехвата неавторизованными сторонами, можно включить протокол TLS между VMware Spring Cloud Gateway и приложениями.

Перед настройкой TLS необходимо иметь приложение с поддержкой TLS и сертификат TLS. Чтобы подготовить сертификат TLS, создайте сертификат из доверенного центра сертификации (ЦС). Сертификат проверяет удостоверение сервера и устанавливает безопасное подключение.

После запуска приложения с поддержкой TLS в Azure Spring Apps отправьте сертификат в Azure Spring Apps. Дополнительные сведения см . в разделе "Импорт сертификата " в разделе "Использование TLS/SSL-сертификатов" в приложении в Azure Spring Apps.

При обновлении сертификата до Azure Spring Apps можно настроить сертификат TLS для шлюза и включить проверку сертификата. Сертификат можно настроить в портал Azure или с помощью Azure CLI.

Чтобы настроить сертификат в портал Azure, выполните следующие действия.

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации.
  2. На странице Spring Cloud Gateway выберите управление сертификатами.
  3. Выберите "Включить проверку сертификата".
  4. Выберите сертификат TLS в сертификатах.
  5. Выберите Сохранить.

На обновление конфигурации может потребоваться несколько минут. После завершения настройки вы получите уведомление.

Подготовка конфигурации маршрута

Необходимо указать протокол в качестве HTTPS в конфигурации маршрута. Следующий объект JSON указывает VMware Spring Cloud Gateway использовать протокол HTTPS для всего трафика между шлюзом и приложением.

  1. Создайте файл с именем test-tls-route.json со следующим содержимым:

    {
        "routes": [
          {
            "title": "Test TLS app",
            "predicates": [
              "Path=/path/to/your/app",
              "Method=GET"
            ]
          }
         ],
        "uri": "https://<app-custom-domain-name>"
    }
    
  2. Используйте следующую команду, чтобы применить правило к приложению:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name test-tls-app \
        --routes-file test-tls-route.json
    

Теперь можно проверить, включено ли приложение TLS с конечной точкой шлюза. Дополнительные сведения см. в разделе "Настройка маршрутов" в разделе "Использование шлюза Spring Cloud".

Ротация сертификатов

По истечении срока действия сертификатов необходимо сменить сертификаты в VMware Spring Cloud Gateway, выполнив следующие действия.

  1. Создайте новые сертификаты из доверенного ЦС.
  2. Импортируйте сертификаты в Azure Spring Apps. Дополнительные сведения см . в разделе "Импорт сертификата " в разделе "Использование TLS/SSL-сертификатов" в приложении в Azure Spring Apps.
  3. Синхронизируйте сертификаты с помощью портал Azure или Azure CLI.

VMware Spring Cloud Gateway перезапускается, чтобы шлюз использовал новый сертификат для всех подключений.

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

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации.
  2. На странице Spring Cloud Gateway нажмите кнопку "Перезапустить", а затем подтвердите операцию.

Настройка параметров автомасштабирования

Вы можете задать режимы автомасштабирования для шлюза VMware Spring Cloud.

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

  • Параметр масштабирования вручную поддерживает фиксированное число экземпляров. Вы можете масштабировать до не более 10 экземпляров. Это значение изменяет количество отдельных запущенных экземпляров шлюза Spring Cloud.
  • Параметр настраиваемого автомасштабирования масштабируется по любому расписанию на основе любых метрик.

В портал Azure выберите способ масштабирования. На следующем снимках экрана показан параметр настраиваемого автомасштабирования и параметры режима:

Снимок экрана: портал Azure, на котором показана страница параметров автомасштабирования с выделенным параметром

Дополнительные сведения о доступных метриках см . в разделе "Параметры пользовательских метрик " в разделе "Метрики" для Azure Spring Apps.

Настройка кэша ответов

Конфигурация кэша ответов позволяет определить кэш ответа HTTP, который можно применять глобально или на уровне маршрута.

Глобальное включение кэша ответов

После глобального включения кэша ответов кэш отклика автоматически включается для всех применимых маршрутов.

Чтобы включить кэш ответов глобально, выполните следующие действия.

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации.
  2. На странице Spring Cloud Gateway выберите "Конфигурация".
  3. В разделе "Кэш ответов" выберите "Включить кэш ответов", а затем задайте область для экземпляра.
  4. Задайте размер и время жизни для кэша ответов.
  5. Выберите Сохранить.

Чтобы отключить кэш ответов, выполните следующие действия.

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации.
  2. На странице Spring Cloud Gateway выберите "Конфигурация".
  3. В разделе "Кэш ответов" снимите флажок "Включить кэш ответов".
  4. Выберите Сохранить.

Включение кэша ответов на уровне маршрута

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

{
   "filters": [
      "<other-app-level-filter-of-route>",
   ],
   "routes": [
      {
        "predicates": [
            "Path=/api/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache=3m, 1MB"
         ],
      }
   ]
}

Дополнительные сведения см. в разделе LocalResponseCache о том, как использовать фильтры маршрутов шлюза VMware Spring Cloud с планом Azure Spring Apps Enterprise и LocalResponseCache в документации по VMware.

Вместо настройки size и timeToLive для каждого LocalResponseCache фильтра можно настроить эти параметры на уровне Spring Cloud Gateway. Этот параметр позволяет использовать LocalResponseCache фильтр без первоначального указания этих значений, сохраняя гибкость, чтобы переопределить их позже.

Выполните следующие действия, чтобы включить кэш ответов на уровне маршрута и задать size и timeToLive:

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации.
  2. На странице Spring Cloud Gateway выберите "Конфигурация".
  3. В разделе "Кэш ответов" выберите "Включить кэш ответов", а затем задайте область "Маршрут".
  4. Задайте размер и время жизни для кэша ответов.
  5. Выберите Сохранить.

Выполните следующие действия, чтобы отключить кэш ответов на уровне маршрута, который очищает size и timeToLive:

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации.
  2. На странице Spring Cloud Gateway выберите "Конфигурация".
  3. В разделе "Кэш ответов" снимите флажок "Включить кэш ответов".
  4. Выберите Сохранить.

В следующем примере показано, как использовать LocalResponseCache фильтр при size установке на timeToLive уровне шлюза Spring Cloud:

{
   "filters": [
      "<other-app-level-filter-of-route>",
   ],
   "routes": [
      {
        "predicates": [
            "Path=/api/path1/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache"
         ],
      },
      {
        "predicates": [
            "Path=/api/path2/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache=3m, 1MB"
         ],
      }
   ]
}

Настройка переменных среды

Служба Azure Spring Apps управляет и настраивает шлюз VMware Spring Cloud. Кроме вариантов использования, которые настраивают мониторинг производительности приложений (APM) и уровень журнала, обычно не требуется настраивать VMware Spring Cloud Gateway с переменными среды.

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

Чтобы настроить переменные среды в портал Azure, выполните следующие действия.

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации и выберите "Конфигурация".
  2. Заполните пары "ключ-значение" для переменных среды в разделах "Свойства и секреты ". В раздел "Секреты" можно включить переменные с конфиденциальной информацией.
  3. Выберите Сохранить, чтобы сохранить изменения.

После обновления переменных среды VMware Spring Cloud Gateway перезапускается.

Настройка мониторинга производительности приложений

Чтобы отслеживать VMware Spring Cloud Gateway, можно настроить APM. В следующей таблице перечислены пять типов агентов APM Java, предоставляемых шлюзом VMware Spring Cloud, а также необходимые переменные среды.

Агент Java Обязательные переменные среды
Application Insights APPLICATIONINSIGHTS_CONNECTION_STRING
Dynatrace DT_TENANT
DT_TENANTTOKEN
DT_CONNECTION_POINT
New Relic NEW_RELIC_LICENSE_KEY
NEW_RELIC_APP_NAME
AppDynamics APPDYNAMICS_AGENT_APPLICATION_NAME
APPDYNAMICS_AGENT_TIER_NAME
APPDYNAMICS_AGENT_NODE_NAME
APPDYNAMICS_AGENT_ACCOUNT_NAME
APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY
APPDYNAMICS_CONTROLLER_HOST_NAME
APPDYNAMICS_CONTROLLER_SSL_ENABLED
APPDYNAMICS_CONTROLLER_PORT
Эластичная APM ELASTIC_APM_SERVICE_NAME
ELASTIC_APM_APPLICATION_PACKAGES
ELASTIC_APM_SERVER_URL

Другие поддерживаемые переменные среды см. в следующих источниках:

Чтобы включить мониторинг APM в шлюзе VMware Spring Cloud, можно создать конфигурацию APM на уровне экземпляра службы и привязать ее к Spring Cloud Gateway. Таким образом, можно удобно настроить APM только один раз и привязать один и тот же APM к Spring Cloud Gateway и к вашим приложениям.

Выполните следующие действия, чтобы настроить APM с помощью портал Azure:

  1. Настройте APM на уровне экземпляра службы с именем, типом и свойствами APM. Дополнительные сведения см. в разделе "Управление API" на уровне экземпляра службы (рекомендуется) в разделе "Настройка сертификатов интеграции APM и ЦС".

    Снимок экрана: портал Azure, на котором показана страница редактора APM Azure Spring Apps.

  2. Выберите Spring Cloud Gateway на панели навигации и выберите APM.

  3. Выберите имя APM в списке ссылочных имен APM. Список содержит все имена APM, настроенные на шаге 1.

  4. Выберите "Сохранить", чтобы привязать имена ссылок APM к Spring Cloud Gateway. Шлюз перезапускается, чтобы включить мониторинг APM.

Управление APM в VMware Spring Cloud Gateway (не рекомендуется)

Вы можете использовать портал Azure или Azure CLI для настройки APM в VMware Spring Cloud Gateway. Кроме того, можно указать типы агентов Java APM для использования и соответствующие переменные среды APM, которые они поддерживают.

Выполните следующие действия, чтобы настроить APM с помощью портал Azure:

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации и выберите "Конфигурация".
  2. Выберите тип APM в списке APM , чтобы отслеживать шлюз.
  3. Заполните пары "ключ-значение" для переменных среды APM в разделах "Свойства и секреты ". Переменные можно поместить с конфиденциальной информацией в секреты.
  4. Выберите Сохранить, чтобы сохранить изменения.

На обновление конфигурации может потребоваться несколько минут. После завершения настройки вы получите уведомление.

Примечание.

Azure Spring Apps обновляет агент APM и развертывает приложения с той же частотой, чтобы обеспечить совместимость агентов между Шлюзом VMware Spring Cloud и Azure Spring Apps.

По умолчанию Azure Spring Apps выводит журналы агента STDOUTJava APM в . Эти журналы включены в журналы шлюза VMware Spring Cloud. Вы можете проверить версию агента APM, используемую в журналах. Эти журналы можно запросить в Log Analytics, чтобы устранить неполадки.

Чтобы агенты APM работали правильно, увеличьте объем ЦП и памяти шлюза VMware Spring Cloud.

Настройка уровней ведения журнала

Уровни журналов шлюза VMware Spring Cloud можно настроить следующим образом, чтобы получить дополнительные сведения или уменьшить количество журналов:

  • Уровни журнала можно задать для TRACE, DEBUG, , INFO, WARNERRORили OFF. Уровень журнала по умолчанию для шлюза VMware Spring Cloud.INFO
  • Вы можете отключить журналы, задав для этого уровни журналов OFF.
  • Если для уровня журнала задано WARNзначение , ERRORили OFFвам может потребоваться изменить его для INFO запроса поддержки от команды Azure Spring Apps. Это изменение приводит к перезапуску шлюза VMware Spring Cloud.
  • Если задан TRACE уровень журнала или DEBUGможет повлиять на производительность шлюза VMware Spring Cloud. Попробуйте избежать этих параметров в рабочей среде.
  • Вы можете задать уровни журналов для root средства ведения журнала или для определенных средств ведения журнала, например io.pivotal.spring.cloud.gateway.

Следующие средства ведения журнала могут содержать ценные сведения об устранении неполадок на TRACE уровне и DEBUG уровнях.

Ведение журнала Description
io.pivotal.spring.cloud.gateway Фильтры и предикаты, включая пользовательские расширения
org.springframework.cloud.gateway Шлюз API
org.springframework.http.server.reactive Взаимодействие с HTTP-сервером
org.springframework.web.reactive Реактивные потоки шлюза API
org.springframework.boot.autoconfigure.web Автоматическая настройка шлюза API
org.springframework.security.web Сведения о проверке подлинности и авторизации
reactor.netty Реактор Netty

Чтобы получить ключи переменной среды, добавьте logging.level. префикс и задайте уровень журнала, настроив среду logging.level.{loggerName}={logLevel}. В следующих примерах показаны шаги для портал Azure и Azure CLI.

Чтобы настроить уровни журнала в портал Azure, выполните следующие действия.

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации и выберите "Конфигурация".
  2. Заполните пары "ключ-значение" для переменных среды уровней журнала в разделах "Свойства и секреты ". Если уровень журнала является конфиденциальной информацией в вашем случае, его можно включить с помощью раздела "Секреты ".
  3. Выберите Сохранить, чтобы сохранить изменения.

Снимок экрана: портал Azure, в которой показаны переменные среды Шлюза Spring Cloud для настройки уровней журнала.

Обновление конфигурации надстройки

Функция настройки надстройки позволяет настраивать определенные свойства шлюза VMware Spring Cloud с помощью строки формата JSON. Эта функция полезна, если необходимо настроить свойства, которые не предоставляются через REST API.

Конфигурация надстройки — это объект JSON с парами "ключ-значение", которые представляют нужную конфигурацию. В следующем примере показана структура формата JSON:

{
    "<addon-key-name>": {
        "<addon-key-name>": "<addon-value>"
        ...
    },
    "<addon-key-name>": "<addon-value>",
    ...
}

В следующем списке показаны поддерживаемые конфигурации надстроек для имен ключей надстройки и типов значений. Этот список изменяется при обновлении версии шлюза VMware Spring Cloud.

  • Конфигурация единого входа:

    • Имя ключа: sso

    • Тип значения: Object

    • Свойства

      • RolesAttributeName (Строка): указывает имя атрибута, содержащего роли, связанные с сеансом единого входа.
      • InactiveSessionExpirationInMinutes (Целое число): указывает время окончания срока действия в минутах для неактивных сеансов единого входа. Значение означает, что сеанс никогда 0 не истекает.
    • Пример:

      {
          "sso": {
              "rolesAttributeName": "roles",
              "inactiveSessionExpirationInMinutes": 1
          }
      }
      
  • Конфигурация метаданных:

    • Имя ключа: api

    • Тип значения: Object

    • Свойства

      • groupId (Строка): уникальный идентификатор группы API, доступной в экземпляре VMware Spring Cloud Gateway. Значение может содержать только строчные буквы и цифры.
    • Пример:

      {
          "api": {
              "groupId": "id1"
          }
      }
      
  • Конфигурация pod

    • Имя ключа: PodOverridesкоторый используется для указания переопределения конфигурации pod по умолчанию.

    • Тип значения: Object

    • Свойства

      • Containers: этот массив содержит конфигурацию для отдельных контейнеров в модуле pod. В настоящее время поддерживается только именованный gateway контейнер.
        • Name: указывает имя контейнера. Контейнер должен быть назван gateway.
        • Lifecycle: PreStop является перехватчиком жизненного цикла, который выполняется при завершении контейнера. Этот перехватчик позволяет выполнять любую необходимую очистку перед остановкой контейнера.
      • TerminationGracePeriodSeconds: указывает время, когда Kubernetes ожидает завершения модуля pod корректно, прежде чем принудительно убить его.
    • Пример:

      {
          "PodOverrides": {
              "Containers": [
                  {
                      "Name": "gateway",
                      "Lifecycle": {
                          "PreStop": {
                              "Exec": {
                                  "Command": [
                                      "/bin/sh",
                                      "-c",
                                      "sleep 20"
                                  ]
                              }
                          }
                      }
                  }
              ],
              "TerminationGracePeriodSeconds": 120
          }
      }
      

      Когда модуль pod, содержащий этот контейнер, завершается, PreStop перехватчик выполняет команду /bin/sh -c 'sleep 20', что приводит к спячему контейнеру в течение 20 секунд. Эта пауза дает контейнеру некоторое время для выполнения любых текущих задач или очистки перед его остановкой.

      Параметр TerminationGracePeriodSeconds предоставляет в общей сложности 120 секунд, чтобы модуль pod завершился корректно, в том числе время, затраченное на любые перехватчики жизненного цикла, например PreStop.

Чтобы обновить конфигурацию надстройки, выполните следующие действия.

  1. В экземпляре Azure Spring Apps выберите Spring Cloud Gateway на панели навигации и выберите "Конфигурация".
  2. Укажите значение JSON для Addon Configs.
  3. Выберите Сохранить.

Следующие шаги