Разрешение имен (DNS) в Служба приложений

Приложение использует DNS при вызове зависимых ресурсов. Ресурсы могут быть службами Azure, такими как Key Vault, служба хранилища или SQL Azure, но это также могут быть веб-API, от которые зависит ваше приложение. Если вы хотите вызвать например myservice.com, вы используете DNS для разрешения имени IP-адреса. В этой статье описывается, как Служба приложений обрабатывает разрешение имен и как определяет, какие DNS-серверы следует использовать. В статье также описаны параметры, которые можно использовать для настройки разрешения DNS.

Как работает разрешение имен в Служба приложений

Если вы не интегрируете приложение с виртуальной сетью и пользовательскими DNS-серверами, приложение использует Azure DNS. При интеграции приложения с виртуальной сетью приложение использует конфигурацию DNS виртуальной сети. По умолчанию для виртуальной сети также используется Azure DNS. Через виртуальную сеть также можно связаться с частными зонами Azure DNS и использовать их для разрешения частных конечных точек или разрешения частных доменных имен.

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

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

Настройка DNS-серверов

Отдельное приложение позволяет переопределить конфигурацию DNS, указав dnsServers свойство в объекте dnsConfiguration свойства сайта. Можно указать до пяти настраиваемых DNS-серверов. Настраиваемые DNS-серверы можно настроить с помощью Azure CLI:

az resource update --resource-group <group-name> --name <app-name> --resource-type "Microsoft.Web/sites" --set properties.dnsConfiguration.dnsServers="['168.63.129.16','xxx.xxx.xxx.xxx']"

Параметры приложения DNS

Служба приложений имеет существующие параметры приложения для настройки поведения DNS-серверов и разрешения имен. Свойства сайта переопределяют параметры приложения, если они существуют. Свойства сайта имеют преимущество аудита с помощью Политика Azure и проверки во время настройки. Рекомендуется использовать свойства сайта.

Вы по-прежнему можете использовать существующий WEBSITE_DNS_SERVER параметр приложения, и вы можете добавить настраиваемые DNS-серверы с помощью любого параметра. Если вы хотите добавить несколько DNS-серверов с помощью параметра приложения, необходимо разделить серверы запятыми без пробелов.

Используя параметр WEBSITE_DNS_ALT_SERVERприложения, вы добавляете конкретный DNS-сервер в список настроенных DNS-серверов. Альтернативный DNS-сервер добавляется как к явно настроенным DNS-серверам, так и к DNS-серверам, унаследованным от виртуальной сети.

Параметры приложения также существуют для настройки поведения разрешения имен и именованы и WEBSITE_DNS_ATTEMPTS.WEBSITE_DNS_MAX_CACHE_TIMEOUTWEBSITE_DNS_TIMEOUT

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

Если требуется точное управление разрешением имен, Служба приложений позволяет изменить поведение по умолчанию. Вы можете изменить попытки повторных попыток, тайм-аут повторных попыток и тайм-аут кэша. Изменение поведения, например отключение или снижение длительности кэша, может повлиять на производительность.

Имя свойства Значение по умолчанию для Windows Значение по умолчанию для Linux Допустимые значения Description
dnsRetryAttemptCount 1 5 1-5 Определяет количество попыток разрешения, в которых одно из них не означает повторных попыток.
dnsMaxCacheTimeout 30 0 0-60 Результаты DNS кэшируются в соответствии с отдельными записями TTL, но не более определенного максимального времени ожидания кэша. Установка кэша равным нулю означает, что кэширование отключено.
dnsRetryAttemptTimeout 3 1 1–30 Время ожидания перед повтором или сбоем. Время ожидания также определяет время ожидания результатов вторичного сервера, если основной сервер не отвечает.

Примечание.

  • Изменение поведения разрешения имен не поддерживается в приложениях контейнеров Windows.
  • Чтобы настроить dnsMaxCacheTimeout, необходимо убедиться, что кэширование включено, добавив параметр WEBSITE_ENABLE_DNS_CACHEприложения ="true". Если вы включаете кэширование, но не настраиваете dnsMaxCacheTimeout, время ожидания будет иметь значение 30.

Настройте поведение разрешения имен с помощью следующих команд CLI:

az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsMaxCacheTimeout=[0-60] --resource-type "Microsoft.Web/sites"
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsRetryAttemptCount=[1-5] --resource-type "Microsoft.Web/sites"
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsRetryAttemptTimeout=[1-30] --resource-type "Microsoft.Web/sites"

Проверьте параметры с помощью этой команды CLI:

az resource show --resource-group <group-name> --name <app-name> --query properties.dnsConfiguration --resource-type "Microsoft.Web/sites"

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