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


IP-адреса в Функциях Azure

В этой статье описываются следующие понятия, связанные с IP-адресами приложений-функций:

  • Поиск IP-адресов, используемых в настоящее время приложением-функцией.
  • Условия, которые вызывают изменение IP-адресов приложения-функции.
  • Ограничение IP-адресов, которые могут получить доступ к приложению-функции.
  • Определение выделенных IP-адресов для приложения-функции.

IP-адреса связаны с приложениями-функциями, а не с отдельными функциями. Входящие HTTP-запросы не могут использовать входящий IP-адрес для вызова отдельных функций; они должны использовать доменное имя по умолчанию (functionappname.azurewebsites.net) или имя личного домена.

Входящий IP-адрес приложения-функции

Каждое приложение-функция запускается с использованием одного входящего IP-адреса. Когда приложение-функция запускается в плане потребления или премиум-плане, может быть добавлено больше входящих IP-адресов, поскольку происходит масштабирование на основе событий. Чтобы найти входящий IP-адрес или адреса, используемые приложением, используйте nslookup программу с локального компьютера, как показано в следующем примере:

nslookup <APP_NAME>.azurewebsites.net

В этом примере замените <APP_NAME> на имя вашего приложения-функции. Если ваше приложение использует имя личного домена, используйте nslookup вместо этого.

Исходящие IP-адреса функционального приложения

Каждое приложение-функция имеет набор доступных исходящих IP-адресов. Любое исходящее соединение из функции, например, к базе данных, использует один из доступных исходящих IP-адресов в качестве начального IP-адреса. Вы не можете заранее узнать, какой IP-адрес использует заданное подключение. По этой причине служба back-end должна открыть свой брандмауэр для всех исходящих IP-адресов функционального приложения.

Подсказка

Для некоторых функций уровня платформы, таких как ссылки на Key Vault, IP-адрес источника может не быть одним из исходящих IP-адресов, и вы не должны настраивать целевой ресурс для использования этих конкретных адресов. Мы рекомендуем вместо этого использовать интеграцию виртуальной сети, так как платформа направляет трафик к целевому ресурсу через ту сеть.

Вот как можно найти исходящие IP-адреса, доступные для приложения-функции.

  1. Войдите в обозреватель ресурсов Azure.
  2. Выберите подписки {ваша подписка} >>>Microsoft.Web Sites>.
  3. На панели JSON найдите сайт со свойством id , заканчивающимся именем приложения-функции.
  4. См. outboundIpAddresses и possibleOutboundIpAddresses.

outboundIpAddresses набор в настоящее время доступен функциональному приложению. Набор possibleOutboundIpAddresses включает IP-адреса, доступные только в том случае, если приложение-функция масштабируется до других ценовых категорий.

Замечание

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

Исходящие IP-адреса центра обработки данных

Если необходимо добавить исходящие IP-адреса, используемые приложениями-функциями в список разрешений, можно добавить центр обработки данных приложений-функций (регион Azure) в список разрешений. Вы можете скачать JSON-файл, который перечисляет IP-адреса для всех центров обработки данных Azure. Затем найдите фрагмент JSON, который относится к региону, в котором выполняется приложение-функция.

Например, следующий фрагмент JSON — это то, что может выглядеть список разрешений для Западной Европы:

{
  "name": "AzureCloud.westeurope",
  "id": "AzureCloud.westeurope",
  "properties": {
    "changeNumber": 9,
    "region": "westeurope",
    "platform": "Azure",
    "systemService": "",
    "addressPrefixes": [
      "13.69.0.0/17",
      "13.73.128.0/18",
      ... Some IP addresses not shown here
     "213.199.180.192/27",
     "213.199.183.0/24"
    ]
  }
}

Для получения информации о том, когда обновляется этот файл и когда изменяются IP-адреса, разверните раздел "Подробности" на странице Центра загрузок.

Изменения входящего IP-адреса

Входящий IP-адрес может измениться при выполнении следующих изменений:

  • удалите приложение-функцию и создадите его заново в другой группе ресурсов;
  • удалите последнее приложение-функцию с некоторым сочетанием группы ресурсов и региона и создадите его заново;
  • Удалите привязку TLS, например во время продления сертификата.

Когда приложение-функция выполняется в плане потребления или в плане Premium, входящий IP-адрес также может измениться, даже если вы не сделали никаких действий, таких как здесь.

Изменения исходящего IP-адреса

Относительная стабильность исходящего IP-адреса зависит от плана размещения.

Планы потребления и уровня "Премиум"

Из-за автоматического масштабирования исходящий IP-адрес может изменяться в любое время при выполнении плана потребления или в плане "Премиум".

Если вам нужно контролировать исходящий IP-адрес приложения-функции, например, когда необходимо добавить его в список разрешений, рассмотрите возможность реализации шлюза NAT виртуальной сети во время работы в плане размещения Premium. Это также можно сделать, используя выделенный план (App Service).

Выделенные планы

Если приложение-функция работает в планах выделенной службы приложений, набор доступных исходящих IP-адресов для приложения-функции может измениться при выполнении следующих действий:

  • Выполните любое действие, которое может изменить входящий IP-адрес.
  • Измените ценовую категорию выделенного плана (служба приложений). Список всех возможных исходящих IP-адресов, которые ваше приложение может использовать для всех ценовых категорий, находится в свойстве possibleOutboundIPAddresses . См. также раздел Поиск исходящих IP-адресов.

Принудительное изменение исходящего IP-адреса

Используйте следующую процедуру, чтобы намеренно изменить исходящий IP-адрес в плане выделенного (службы приложений).

  1. Масштабируйте план службы приложений, повышая или понижая его между ценовыми категориями "Стандартный" и "Премиум v2".

  2. Подождите 10 минут.

  3. Вернитесь к тому месту, откуда начали.

Ограничения IP-адресов

Вы можете настроить список IP-адресов, которые нужно разрешить или запретить доступ к приложению-функции. Дополнительную информацию см. в разделе Ограничения доступа к службам Azure App Service.

Выделенные IP-адреса

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

Шлюз NAT виртуальной сети для исходящего статического IP-адреса

Вы можете управлять IP-адресом исходящего трафика ваших функций, используя шлюз NAT виртуальной сети, чтобы направить трафик через статический общедоступный IP-адрес. Эту топологию можно использовать при использовании плана "Премиум" или в выделенном плане размещения. Дополнительные сведения см. в руководстве по управлению исходящим IP-адресом функций Azure с помощью шлюза NAT виртуальной сети Azure.

Среды службы приложений

Для полного контроля над IP-адресами, входящими и исходящими, рекомендуется использовать среды службы приложений ( изолированный уровень планов службы приложений). Дополнительные сведения см. в разделе "Среда службы приложений".

Чтобы узнать, работает ли приложение-функция в среде службы приложений:

  1. Войдите на портал Azure.
  2. Перейдите к приложению-функции.
  3. Выберите вкладку Обзор.
  4. Уровень плана службы приложений отображается в разделе "План службы приложений" или "Ценовая категория". Ценовая категория "Среда службы приложений" изолирована.

Среда служб приложений skuIsolated.

Дальнейшие шаги

Распространенной причиной изменений IP-адресов является изменение масштаба приложения-функции. Дополнительные сведения о масштабировании приложений-функций.