Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Планы Basic, Standardи Enterprise вступили в период вывода из обращения 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Эта статья относится к:✅ Basic/Standard ✅ Enterprise
В Azure Spring Apps можно развернуть приложения в управляемой виртуальной сети. Эта настройка обеспечивает безопасный обмен данными между приложениями и другими ресурсами в виртуальной сети, например базами данных и другими службами. Приложения контейнеров Azure предлагают аналогичные функции, но с некоторыми различиями. В этой статье рассматриваются эти различия и приводятся рекомендации по созданию сред контейнеров Azure и управлению ими с помощью управляемых виртуальных сетей.
Предварительные требования
- Активная подписка Azure. Если у вас нет учетной записи Azure, вы можете создать бесплатную учетную запись Azure.
- Azure CLI.
Создание среды приложений контейнеров Azure с виртуальной сетью
В Azure Spring Apps необходимо настроить две подсети в виртуальной сети: одну для среды выполнения системы и другого для пользовательского приложения. Эта настройка обеспечивает изоляцию и безопасность как для системных компонентов, так и для пользовательских приложений. С другой стороны, приложения контейнеров Azure упрощают настройку сети, требуя только одну подсеть для инфраструктуры в виртуальной сети.
В Azure Container Apps инфраструктурная виртуальная сеть изолирована от виртуальной сети клиента, устраняя необходимость предоставления службе разрешений для доступа к виртуальной сети, как это требуется в Azure Spring Apps. Поддерживается два типа сред. Дополнительные сведения см. в разделе "Типы" сред контейнеров Azure. При использовании среды профилей рабочей нагрузки необходимо обновить виртуальную сеть, чтобы делегировать подсеть Microsoft.App/environments. Дополнительные сведения см. в разделе "Создание среды" в разделе "Предоставление виртуальной сети для среды приложений контейнеров Azure".
Кроме того, требования для небольших диапазонов подсетей отличаются между двумя службами.
Чтобы создать среду приложений контейнеров Azure с виртуальной сетью, используйте следующую команду Azure CLI:
az containerapp env create \
--resource-group $RESOURCE_GROUP \
--name $ENVIRONMENT \
--location "$LOCATION" \
--internal-only true \
--infrastructure-subnet-resource-id "$INFRASTRUCTURE_SUBNET"
Переменная $INFRASTRUCTURE_SUBNET — это идентификатор ресурса подсети в виртуальной сети клиента, которая предназначена для компонентов инфраструктуры и контейнеров пользовательского приложения. Дополнительные сведения см. в разделе "Создание среды" в разделе "Предоставление виртуальной сети для среды приложений контейнеров Azure".
Выбор использования пользовательской виртуальной сети в приложениях контейнеров Azure не означает, что ваше приложение-контейнер не может принимать общедоступные запросы. Если вы хотите полностью ограничить доступ только к виртуальной сети клиента, необходимо задать для параметра --internal-onlyзначение true . Этот параметр гарантирует, что общедоступные конечные точки не создаются. Дополнительные сведения см. в разделе "Уровень доступности" в среде "Приложения контейнеров Azure" и "Предоставление виртуальной сети во внутренней среде приложений контейнеров Azure".
Перенос приложения в приложения контейнеров Azure
После создания среды приложений контейнеров Azure следующим шагом является перенос приложения в приложения контейнеров Azure. Дополнительные сведения см. в разделе "Сопоставление концепций". Чтобы перенести каждое приложение контейнеров Azure, см. в статье Обзор миграции приложений и выполните выбор образа контейнера или артефакта для процесса миграции.
Изменение параметра входящего трафика
Приложения контейнеров Azure предлагают дополнительные возможности настройки параметров входящего трафика по сравнению с Azure Spring Apps. Дополнительные сведения см. в разделе "Настройка конфигурации входящего трафика" в Azure Spring Apps.
В следующей таблице перечислены свойства конфигурации между двумя службами:
| Функция | Azure Spring Apps | Приложения-контейнеры Azure |
|---|---|---|
| Сходство сеансов | ingressSettings.sessionAffinity |
ingress.stickySessions.affinity |
| Максимальный возраст файла cookie сеанса | ingressSettings.sessionCookieMaxAge |
EasyAuthConfig.login.cookieExpiration.timeToExpiration |
| Серверный протокол | ingressSettings.backendProtocol |
ingress.transport |
| Проверка подлинности клиента | ingressSettings.clientAuth |
ingress.clientCertificateMode |
| Время ожидания чтения входящего трафика | ingressSettings.readTimeoutInSeconds |
240 |
| Таймаут входящего трафика | ingressSettings.sendTimeoutInSeconds |
240 |
Приложения контейнеров Azure не позволяют пользователям указывать настраиваемое значение времени ожидания. Вместо этого он применяет встроенное время ожидания запроса для HTTP-запросов, которое ограничивается 240 секундами. Таким образом, если запрос превышает эту длительность, подключение автоматически завершается, чтобы обеспечить эффективное управление ресурсами и предотвратить монополизацию системы длительными запросами.
Приложения Azure Container Apps не поддерживают напрямую элемент конфигурации session-max-age. Однако вы можете управлять длительностью сеанса и поведением с помощью других связанных параметров. Например, можно использовать параметр cookieExpiration в EasyAuth конфигурации для управления продолжительности сеанса проверки подлинности. Этот параметр позволяет указать длительность, в течение которой файл cookie проверки подлинности остается допустимым.
Дополнительные сведения о параметрах входящего трафика, предоставляемых приложениями контейнеров Azure, см. в разделе "Входящий трафик" в приложениях контейнеров Azure.
Как Azure Spring Apps, так и приложения контейнеров Azure предлагают способы создания общедоступных конечных точек. В Azure Spring Apps каждое развертывание имеет уникальный URL-адрес для тестирования в ходе сине-зеленых развертываний. Аналогичным образом в приложениях контейнеров Azure метка редакции предоставляет уникальный URL-адрес, который можно использовать для маршрутизации трафика к определенной редакции, назначенной метке. Дополнительные сведения см. в разделе «Метки» документа «Обновление и развертывание изменений в приложениях контейнеров Azure».
В Azure Spring Apps система автоматически проверяет порт 1025 для приложений на планах "Базовый" и "Стандартный" и порт 8080 для приложений на плане "Корпоративный". Эти пробы помогают определить, готов ли контейнер приложения принять трафик. С другой стороны, приложения контейнеров Azure обеспечивают большую гибкость, позволяя пользователям указывать порт пробы --target-port самостоятельно с помощью параметра. Этот параметр дает пользователям больше контроля над конфигурацией и поведением приложения.
Чтобы обновить целевой порт входящего трафика для приложения-контейнера, можно использовать следующую команду Azure CLI:
az containerapp ingress update \
--resource-group <resource-group> \
--name <app-name> \
--target-port <target-port>
В следующем списке описываются все параметры:
-
--name: название вашего приложения-контейнера. -
--resource-group: группа ресурсов, содержащая ваше контейнерное приложение. -
--target-port: порт, на котором прослушивается ваше контейнерное приложение.
Дополнительные сведения см. в разделе "Включить входящий трафик" в разделе "Настройка входящего трафика для вашего приложения в Azure Container Apps".
Изменение параметра исходящего трафика (UDR)
Azure Spring Apps и Azure Container Apps предлагают способы управления исходящим трафиком с функцией принеси свою таблицу маршрутов — определяемых пользователем маршрутов (UDR) с Azure Firewall. Однако обратите внимание на следующие различия:
- Нет необходимости добавлять назначение ролей для поставщика ресурсов azure Container Apps.
- Выделенная подсеть для подсети среды выполнения службы "Приложения контейнеров Azure" не требуется.
- Приложения контейнеров Azure предоставляют более гибкий способ поддержки UDR. В Azure Container Apps нет необходимости в явном виде устанавливать параметр
--outbound-typeнаuserDefinedRoutingпри развертывании Azure Spring Apps.
Дополнительные сведения см. в разделе "Управление исходящим трафиком в приложениях контейнеров Azure" с помощью определяемых пользователем маршрутов.
В приложениях контейнеров Azure только профили рабочей нагрузки типа среды поддерживают UDR. Кроме того, приложения контейнеров Azure поддерживают исходящий трафик через шлюз NAT и создание частных конечных точек в среде приложения контейнера.
Чтобы создать среду приложений контейнеров Azure, которая поддерживает UDR, используйте следующую команду:
az containerapp env create \
--resource-group $RESOURCE_GROUP \
--name $ENVIRONMENT \
--location "$LOCATION" \
--enable-workload-profiles \
--infrastructure-subnet-resource-id "$INFRASTRUCTURE_SUBNET"
Установите параметр --enable-workload-profiles в значение true, чтобы включить профили рабочих нагрузок.
Защита виртуальных сетей с помощью групп безопасности сети
Как Azure Spring Apps, так и приложения контейнеров Azure обеспечивают надежную поддержку, что позволяет эффективно управлять и защищать исходящий трафик с помощью групп безопасности сети (NSG). Основные различия лежат в конкретных конфигурациях.
Дополнительные сведения см. в статье "Защита пользовательской виртуальной сети в приложениях контейнеров Azure с помощью групп безопасности сети".
Изменение параметров DNS
Как Azure Spring Apps, так и приложения контейнеров Azure поддерживают использование пользовательских DNS-серверов в виртуальной сети клиента. Рекомендуется добавить IP-адрес 168.63.129.16 Azure DNS в качестве вышестоящего DNS-сервера в пользовательский DNS-сервер.
Дополнительные сведения см. в статье DNS для виртуальных сетей в средах приложений контейнеров Azure.
В настоящее время приложения контейнеров Azure в среде типа "только потребление" не поддерживают сброс изменений в настройках DNS, как это делает Azure Spring Apps. Дополнительные сведения см. в статье Об изменениях параметров DNS Flush в Azure Spring Apps. Однако тип профиля рабочей нагрузки среды автоматически обновляет параметры DNS каждые 5 минут.
Приложения контейнеров Azure поддерживают развертывание с частной зоной DNS. Дополнительные сведения см. в разделе «Развертывание с помощью частного DNS» из «Предоставление виртуальной сети в среде приложений контейнеров Azure». Этот подход обеспечивает более гибкий способ связывания частной зоны DNS, чем использование Azure Spring Apps. Для получения дополнительной информации см. раздел "Связывание частной зоны DNS с Azure Spring Apps" в "Доступ к приложению в Azure Spring Apps в виртуальной сети".
Доступ к приложению в приложениях контейнеров Azure в виртуальной сети клиента
Приложения контейнеров Azure предоставляют как общедоступный доступ к сети, так и функции частной конечной точки для предоставления приложений Интернету или защиты их в частной сети. Аналогичным образом Azure Spring Apps поддерживает эти функции, как описано в следующих статьях: