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-адрес будет использован для подключения. По этой причине внутренней службе необходимо разрешить в брандмауэре все исходящие IP-адреса приложения-функции.

Совет

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

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

  1. Войдите в обозреватель ресурсов Azure.
  2. Выберите Подписки > {ваша подписка} > Поставщики > Microsoft.Web > Сайты.
  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, например во время обновления сертификата.

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

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

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

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

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

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

Планы "Выделенный"

При выполнении в планах "Выделенный" (Службы приложений) набор доступных исходящих IP-адресов для приложения-функции может измениться в следующих случаях:

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

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

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

  1. Изменить масштаб плана службы приложений, перейдя с ценовой категории "Стандартный" на "Премиум V2" (или наоборот).

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

  3. Вернитесь на исходную ценовую категорию.

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

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

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

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

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

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

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

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

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

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

Номер sku среды службы приложений — Isolated.

Дальнейшие действия

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