Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Конфигурации маршрутов HTTP поддерживают пользовательские домены, позволяя маршрутизировать трафик из собственных доменных имен в приложения контейнеров.
Предпосылки
- Существующая среда приложений контейнеров Azure
- Личный домен, принадлежащий вам
- SSL-сертификат для вашего домена (если только не используется автоматические сертификаты)
- Приложения-контейнеры, развернутые в вашей среде
Конфигурация личного домена
С помощью поставщика DNS, на котором размещен домен, создайте соответствующие записи DNS для личного домена.
Если вы используете корневой домен (например,
contoso.com), создайте следующие записи DNS:Тип записи Хозяин Ценность А @IP-адрес среды приложений контейнеров. ТЕКСТ asuidКод проверки домена. Если вы используете поддомен (например,
www.contoso.com), создайте следующие записи DNS:Тип записи Хозяин Ценность А Поддомен (например, www)IP-адрес среды приложений контейнеров. ТЕКСТ asuid.{subdomain}(например,asuid.www)Код проверки домена.
Замечание
IP-адрес среды "Приложения контейнеров" и код проверки домена можно найти в параметрах пользовательского DNS-суффикса среды "Приложения контейнеров".
Не привязывайте личный домен к среде "Приложения контейнеров" или к приложению-контейнеру. Домены привязаны только к одному приложению, маршруту или среде.
Конфигурация маршрута
Обновите файл YAML для контейнерных приложений, чтобы включить customDomains раздел. Включите bindingType и certificateId в соответствии с следующими критериями.
| значение bindingType | Описание |
|---|---|
| Нетрудоспособный | Сертификат не указан. Домен доступен только по протоколу HTTP, и HTTPS недоступен. |
| Автомобиль | Сертификат необязателен. Если управляемый сертификат уже создан для этого домена, он добавляется в маршрут автоматически. В противном случае домен изначально доступен только по протоколу HTTP. Чтобы создать управляемый сертификат для этого домена, создайте новый управляемый сертификат после создания маршрута. После создания сертификата он автоматически добавляется в маршрут. |
| SniEnabled | Требуется сертификат. |
| Тип сертификата | Формат certificateId |
|---|---|
| Отсутствует | Не указывайте |
| Управляется | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/managedCertificates/{CertificateFriendlyName} |
| Неуправляемые | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/certificates/{CertificateFriendlyName} |
Замечание
Чтобы добавить сертификат в среду, используйте один из следующих методов:
- Чтобы добавить управляемый сертификат container Apps, используйте команду az containerapp env certificate create CLI.
- Чтобы принести собственный существующий сертификат, используйте команду az containerapp env certificate upload CLI.
Не привязывайте сертификат к приложению контейнера.
В следующем примере показано, как настроить конфигурацию маршрута.
customDomains:
- name: "<CUSTOM_DOMAIN_ENDPOINT>"
certificateId: "<CERTIFICATE_ID>"
bindingType: "SniEnabled" # Can also be "Disabled", "Auto"
rules:
- description: "Routing to App1"
routes:
- match:
prefix: "/1"
action:
prefixRewrite: "/"
targets:
- containerApp: "<APP1_CONTAINER_APP_NAME>"
- description: "Routing to App2"
routes:
- match:
prefix: "/2"
action:
prefixRewrite: "/"
- match:
prefix: "/"
targets:
- containerApp: "<APP2_CONTAINER_APP_NAME>"
Эта конфигурация определяет два правила маршрутизации для трафика HTTP.
| Недвижимость | Описание |
|---|---|
customDomains.name |
Имя домена, которое вы хотите использовать (например, "app.contoso.com") |
customDomains.certificateId |
Идентификатор ресурса вашего сертификата (не требуется с bindingType: "Auto") |
customDomains.bindingType |
Как обрабатывается SSL: "SniEnabled" (указание имени сервера), "Отключено" (только HTTP) или "Auto" (автоматический сертификат) |
description |
Человеко-читаемая метка для правила |
routes.match.prefix |
Префикс пути URL для сопоставления. Например: /api. |
routes.action.prefixRewrite |
На что заменить совпавший префикс перед пересылкой. |
targets.containerApp |
Имя приложения-контейнера, в котором отправляется соответствующий запрос маршрута. |
Эти правила позволяют другим путям в пользовательском домене направляться в разные приложения-контейнеры, а также изменять путь запроса, прежде чем он достигнет целевого приложения.
Другие, не перечисленные свойства, которые могут повлиять на ваши маршруты, включают следующее.
| Недвижимость | Описание |
|---|---|
route.match.path |
Точное определение пути сопоставления. |
route.match.pathSeparatedPrefix |
Сопоставляет маршруты по границам "/" вместо текста. Например, если задано значение /product, оно будет соответствовать /product/1, но не /product1. |
route.match.caseSensitive |
Определяет, соответствуют ли шаблоны маршрутов конфиденциальности регистра. |
target.label |
Маршрут к определенной помеченной ревизии в контейнерном приложении. |
target.revision |
Маршрут к конкретной версии в контейнерном приложении. |
Работа с конфигурацией маршрута
Используйте следующие команды для управления конфигурацией маршрута.
Перед выполнением следующих команд обязательно замените заполнители, окруженные тегами <>, на собственные значения.
Создание конфигурации маршрута
Используйте az containerapp env http-route-config create для создания новой конфигурации маршрута.
az containerapp env http-route-config create \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME> \
--yaml <CONTAINER_APPS_CONFIG_FILE>
Перечисление конфигураций маршрутов
Используется az containerapp env http-route-config list для перечисления всех определенных конфигураций маршрутов.
az containerapp env http-route-config list \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME>
Обновление конфигурации маршрута
Используется az containerapp env http-route-config update для обновления существующей конфигурации маршрута.
az containerapp env http-route-config update \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME> \
--yaml <CONTAINER_APPS_CONFIG_FILE>
Отображение определенной конфигурации маршрута
Используется az containerapp env http-route-config show для просмотра сведений о конфигурации маршрута.
az containerapp env http-route-config show \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME>
Удаление конфигурации маршрута
Используйте az containerapp env http-route-config delete для удаления конфигурации маршрута.
az containerapp env http-route-config delete \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME>
Проверка маршрутизации HTTP
После настройки личного домена с маршрутизацией на основе правил:
Перейдите в личный домен в браузере. Например:
https://app.contoso.com/1.Убедитесь, что запрос направляется в первое приложение контейнера.
Измените путь на
/2. Например:https://app.contoso.com/2.Убедитесь, что запрос теперь перенаправлен на второе контейнерное приложение.
Связанный контент
- Маршрутизация на основе правил в приложениях контейнеров Azure
- Имена пользовательских доменов и бесплатные управляемые сертификаты
- Справочник по Azure CLI для конфигурации маршрута HTTP
Подсказка
Есть проблемы? Сообщите нам на GitHub, открыв запрос в репозитории Azure Container Apps.