Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как включить функции входящего трафика для приложения-контейнера. Входящий трафик — это параметр на уровне приложения. Изменения параметров входящего трафика применяются ко всем редакциям одновременно и не создают новые редакции.
Параметры входящего трафика
Вы можете задать следующие свойства шаблона входящего трафика:
| Свойство | Описание | Ценности | Обязательное поле |
|---|---|---|---|
allowInsecure |
Разрешает небезопасный трафик к приложению-контейнеру. Если задано значение true, HTTP-запросы на порт 80 не перенаправляются в порт 443 с помощью HTTPS, разрешая небезопасные подключения. |
false (по умолчанию) true включает небезопасные подключения |
нет |
clientCertificateMode |
Режим сертификата клиента для проверки подлинности mTLS.
Ignore указывает, что сервер удаляет сертификат клиента при переадресации.
Accept указывает, что сервер перенаправит сертификат клиента, но не требует сертификата клиента.
Require указывает, что для сервера требуется сертификат клиента. |
Required, , AcceptIgnore (по умолчанию) |
нет |
customDomains |
Привязки личного домена для имен узлов контейнерных приложений. Просмотр пользовательских доменов и сертификатов | Массив привязок | нет |
exposedPort |
(только tcp ingress) Tcp-порт прослушивает. В противном externaltrueслучае значение должно быть уникальным в среде "Приложения контейнеров". |
Номер порта от1.65535 (не может быть 80 или 443) |
нет |
external |
Разрешить входящий трафик приложению за пределами своей среды приложений контейнеров. |
true или false(по умолчанию) |
Да |
ipSecurityRestrictions |
Ограничения для входящих IP-адресов. См. раздел "Настройка ограничений входящего IP-адреса" | Массив правил | нет |
stickySessions.affinity |
Включает сходство сеансов. |
none (по умолчанию), sticky. |
нет |
targetPort |
Порт приложения-контейнера прослушивает входящие запросы. | Задайте для этого значения номер порта, используемый приложением-контейнером. Для входящего трафика HTTP конечная точка входящего трафика приложения всегда предоставляется через порт 443. |
Да |
traffic |
Разделение трафика между версиями разбиения веса. | Массив правил | нет |
transport |
Тип транспортного протокола. |
auto (по умолчанию) обнаруживает HTTP/1 или HTTP/2 http для HTTP/1 http2 для HTTP/2 tcp для TCP. |
нет |
Автоматическое обнаружение портов
Если в приложении-контейнере включена функция входящего трафика HTTP и вы не устанавливаете целевой порт, приложение Azure Container Apps автоматически обнаруживает целевой порт, сканируя все прослушиваемые порты контейнера. Если обнаружен только один порт, этот порт устанавливается в качестве целевого порта для приложения контейнера. Если обнаружено несколько портов, приложение-контейнер не настраивает автоматически целевой порт и необходимо вручную задать целевой порт.
- Автоматическое обнаружение портов работает только для HTTP-трафика, а не TCP-трафика.
- Если у вас есть пробы работоспособности HTTP, прослушивающие порты 80 или 443, эта конфигурация может повлиять на автоматическое обнаружение портов. Конфигурация входящего трафика по умолчанию использует пробы работоспособности TCP. Дополнительные сведения см. в статье о пробах работоспособности.
Подключение входящего трафика
Вы можете настроить входящий трафик для приложения контейнера с помощью Azure CLI, шаблона ARM или портала Azure.
Эта команда az containerapp ingress enable позволяет вход в ваше контейнерное приложение. Необходимо указать целевой порт, и при необходимости можно задать предоставленный порт, если тип транспорта .tcp
az containerapp ingress enable \
--name <app-name> \
--resource-group <resource-group> \
--target-port <target-port> \
--exposed-port <tcp-exposed-port> \
--transport <transport> \
--type <external>
--allow-insecure
az containerapp ingress enable Аргументы входящего трафика:
| Вариант | Свойство | Описание | Ценности | Обязательное поле |
|---|---|---|---|---|
--type |
внешний | Разрешить вход в приложение из любого места или ограничить входящий трафик во внутреннюю среду приложений контейнеров. |
external или internal |
Да |
--allow-insecure |
allowInsecure | Разрешить HTTP-подключения к приложению. | нет | |
--target-port |
целевой порт | Порт, который контейнер прослушивает на наличие входящих запросов. | Задайте для этого значения номер порта, используемый контейнером. Конечная точка входящего трафика приложения всегда предоставляется через порт 443. |
Да |
--exposed-port |
открытыйПорт | (только tcp ingress) Порт для входящего трафика TCP. Если external это trueтак, значение должно быть уникальным в среде приложений контейнеров, если входящий трафик является внешним. |
Номер порта от1.65535 (не может быть 80 или 443) |
нет |
--transport |
transport | Тип транспортного протокола. | автоматически (по умолчанию) обнаруживает HTTP/1 или HTTP/2 http для HTTP/1 http2 для HTTP/2 tcp для TCP. |
нет |
Включите входящий трафик для приложения-контейнера с помощью портала.
Вы можете включить входящий трафик при создании приложения контейнера или включить входящий трафик для существующего приложения контейнера.
- Чтобы настроить входящий трафик при создании приложения контейнера, выберите Ingress на вкладке Конфигурация приложений мастера создания приложения контейнера.
- Чтобы настроить входящий трафик для существующего приложения контейнера, выберите в меню "Параметры" страницы ресурсов приложения-контейнера входящеготрафика.
Разрешение входящего трафика для контейнерного приложения
При создании приложения контейнера можно настроить входящий трафик с помощью портал Azure.
- Установите для входящего трафиказначение "Включено".
- Настройте параметры входящего трафика для приложения-контейнера.
- Выберите "Ограничена средой приложений контейнеров" для внутреннего входящего трафика или приема трафика из любого места для внешнего входящего трафика.
- Выберите тип входящего трафика: HTTP или TCP (входящий трафик TCP доступен только в средах, настроенных с виртуальной сетью).
- Если для типа входящего трафика выбран HTTP, выберите транспорт: авто, HTTP/1 или HTTP/2.
- Выберите небезопасные подключения, если вы хотите разрешить HTTP-подключения к приложению.
- Введите целевой порт для приложения-контейнера.
- Если для параметра транспорта выбран TCP, введите предоставленный порт для приложения-контейнера. Доступный номер порта может быть
1.65535(не может быть80или443)
Страница параметров входящего трафика для приложения-контейнера также позволяет настроить ограничения IP-адресов. Сведения о настройке ограничения IP см. в разделе "Ограничения IP".
Включите входящий трафик для приложения-контейнера с помощью ingress свойства конфигурации.
external Задайте для свойства trueзначение и задайте свойства transporttargetPort.
-
externalЗадайте для свойства значение true для внешнего входящего трафика или false для внутреннего входящего трафика. -
transportЗадайте дляautoобнаружения HTTP/1 или HTTP/2 для HTTP/1,httpдля HTTP/2http2илиtcpTCP. -
targetPortЗадайте номер порта, используемый контейнером. Конечная точка входящего трафика приложения всегда предоставляется через порт443. - Задайте свойство,
exposedPortесли тип транспорта являетсяtcpпортом для входящего трафика TCP. Значение должно быть уникальным в среде приложений контейнеров, если входящий трафик является внешним. Номер порта от1.65535(не может быть80или443)
{
...
"configuration": {
"ingress": {
"external": true,
"transport": "tcp",
"targetPort": 80,
"exposedPort": 8080,
},
}
}
Отключение входящего трафика
Отключите входящий трафик для приложения контейнера с помощью az containerapp ingress команды.
az containerapp ingress disable \
--name <app-name> \
--resource-group <resource-group> \
Вы можете отключить входящий трафик для приложения-контейнера с помощью портала.
- Выберите входящего трафика в меню "Параметры " страницы приложения контейнера.
- Отмените выбор параметра входящего трафика.
- Выберите Сохранить.
Отключите входящий трафик для приложения-контейнера, опустив ingress свойство конфигурации полностью properties.configuration .
Использование других TCP-портов
Вы можете предоставлять дополнительные TCP-порты из приложения. Дополнительные сведения см. в статье о концепции входа.
Примечание.
Чтобы использовать эту функцию, вам потребуется расширение ИНТЕРФЕЙСА командной строки для приложений контейнеров. Запустите az extension add -n containerapp , чтобы установить последнюю версию расширения CLI для приложений контейнеров.
Вы можете добавить дополнительные TCP-порты через ИНТЕРФЕЙС командной строки, ссылаясь на YAML-файл с конфигурациями TCP-порта.
az containerapp create \
--name <app-name> \
--resource-group <resource-group> \
--yaml <your-yaml-file>
В следующем примере показан файл YAML, на который можно ссылаться в предыдущей команде CLI. Конфигурация дополнительных TCP-портов находится в разделе additionalPortMappings.
location: northcentralus
name: multiport-example
properties:
configuration:
activeRevisionsMode: Single
ingress:
additionalPortMappings:
- exposedPort: 21025
external: false
targetPort: 1025
allowInsecure: false
external: true
targetPort: 1080
traffic:
- latestRevision: true
weight: 100
transport: http
managedEnvironmentId: <env id>
template:
containers:
- image: maildev/maildev
name: maildev
resources:
cpu: 0.25
memory: 0.5Gi
scale:
maxReplicas: 1
minReplicas: 1
workloadProfileName: Consumption
type: Microsoft.App/containerApps
- Разверните раздел "Дополнительные TCP-порты" в колонке "Входящий трафик".
- Добавьте дополнительные TCP-порты, которые приложение принимает трафик в поле "Целевой порт ". Если вы оставляете открытый порт пустым , он использует то же значение, что и целевой порт.
- При необходимости измените поле трафика входящего трафика . Это поле настраивает, где трафик входящего трафика ограничен для каждого порта.
- По завершении щелкните Сохранить.
Следующий шаблон ARM содержит пример добавления дополнительных портов в приложения контейнеров. Добавьте каждый дополнительный порт под additionalPortMappings в разделе ingress для configuration в properties для приложения контейнера. В следующем примере показано, как добавить дополнительные порты:
{
...
"properties": {
...
"configuration": {
"ingress": {
...
"additionalPortMappings": [
{
"external": false
"targetPort": 80
"exposedPort": 12000
}
]
}
}
...
}