Параметры сети для Функций AzureAzure Functions networking options

В этой статье описываются сетевые возможности, доступные в различных вариантах размещения для Функций Azure.This article describes the networking features available across the hosting options for Azure Functions. Все перечисленные ниже параметры сети предоставляют некоторую возможность доступа к ресурсам, не используя адресов с маршрутизацией через Интернет или ограничения доступа к Интернету для приложения-функции.All the following networking options give you some ability to access resources without using internet-routable addresses or to restrict internet access to a function app.

Для моделей размещения доступны разные уровни сетевой изоляции.The hosting models have different levels of network isolation available. Выбор правильного варианта поможет соответствовать требованиям к сетевой изоляции.Choosing the correct one helps you meet your network isolation requirements.

Размещать приложения-функции можно двумя способами:You can host function apps in a couple of ways:

  • Можно выбрать из параметров плана, которые выполняются в инфраструктуре с несколькими клиентами, с различными уровнями возможностей подключения и масштабирования виртуальной сети:You can choose from plan options that run on a multitenant infrastructure, with various levels of virtual network connectivity and scaling options:
    • План потребления динамически масштабируется в ответ на загрузку и предлагает минимальные параметры сетевой изоляции.The Consumption plan scales dynamically in response to load and offers minimal network isolation options.
    • План категории "Премиум" также динамически масштабируется и предоставляет более широкие возможности сетевой изоляции.The Premium plan also scales dynamically and offers more comprehensive network isolation.
    • План служб приложений Azure работает в фиксированном масштабе и обеспечивает такую же сетевую изоляцию, как в плане категории "Премиум".The Azure App Service plan operates at a fixed scale and offers network isolation similar to the Premium plan.
  • Вы можете запускать функции в параметре Среда службы приложений.You can run functions in an App Service Environment. Этот метод развертывает функцию в виртуальной сети и обеспечивает полный сетевой контроль и изоляцию.This method deploys your function into your virtual network and offers full network control and isolation.

Таблица функций сетиMatrix of networking features

КомпонентFeature План потребленияConsumption plan План категории "Премиум"Premium plan План ценовой категории "Выделенный"Dedicated plan ASEASE KubernetesKubernetes
Ограничения на входящие IP-адреса и частный доступ к сайтуInbound IP restrictions and private site access ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes
Интеграция с виртуальной сетьюVirtual network integration ❌Нет❌No ✅Да (Региональный)✅Yes (Regional) ✅Да (Региональный и шлюз)✅Yes (Regional and Gateway) ✅Да✅Yes ✅Да✅Yes
Триггеры виртуальной сети (без HTTP)Virtual network triggers (non-HTTP) ❌Нет❌No ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes
Гибридные подключения (только для Windows)Hybrid connections (Windows only) ❌Нет❌No ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes
Ограничения исходящих IP-адресовOutbound IP restrictions ❌Нет❌No ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes ✅Да✅Yes

Ограничения входящего доступаInbound access restrictions

С помощью ограничений доступа можно определить упорядоченный по приоритету список IP-адресов, которым разрешен или запрещен доступ к приложению.You can use access restrictions to define a priority-ordered list of IP addresses that are allowed or denied access to your app. Список может включать адреса IPv4 и IPv6 или определенные подсети виртуальной сети с помощью конечных точек службы.The list can include IPv4 and IPv6 addresses, or specific virtual network subnets using service endpoints. Если он содержит одну или несколько записей, то в конце списка действует неявный запрет на все адреса.When there are one or more entries, an implicit "deny all" exists at the end of the list. Ограничения IP-адресов работают со всеми вариантами размещения функций.IP restrictions work with all function-hosting options.

Ограничения доступа доступны в службе " премиум", " потребление" и " служба приложений".Access restrictions are available in the Premium, Consumption, and App Service.

Примечание

При наличии ограничений сети можно развернуть только из виртуальной сети или указать IP-адрес компьютера, который вы используете для доступа к портал Azure в списке Надежные получатели.With network restrictions in place, you can deploy only from within your virtual network, or when you've put the IP address of the machine you're using to access the Azure portal on the Safe Recipients list. Тем не менее вы по-прежнему можете управлять этой функцией с помощью портала.However, you can still manage the function using the portal.

Дополнительные сведения см. в статье Azure App Service static access restrictions (Ограничения статического доступа для Службы приложений Azure).To learn more, see Azure App Service static access restrictions.

Использование конечных точек службUse service endpoints

С помощью конечных точек службы можно ограничить доступ к выбранным подсетям виртуальной сети Azure.By using service endpoints, you can restrict access to selected Azure virtual network subnets. Чтобы ограничить доступ к определенной подсети, создайте правило ограничения с типом виртуальной сети .To restrict access to a specific subnet, create a restriction rule with a Virtual Network type. Затем можно выбрать подписку, виртуальную сеть и подсеть, к которым вы хотите разрешить или запретить доступ.You can then select the subscription, virtual network, and subnet that you want to allow or deny access to.

Если конечные точки службы не включены в Microsoft. Web для выбранной подсети, они будут включены автоматически, если не установлен флажок игнорировать отсутствующие конечные точки Microsoft. Web Service .If service endpoints aren't already enabled with Microsoft.Web for the subnet that you selected, they'll be automatically enabled unless you select the Ignore missing Microsoft.Web service endpoints check box. Сценарий, в котором может потребоваться включить конечные точки службы в приложении, но не подсеть, зависит главным образом от наличия разрешений на их включение в подсети.The scenario where you might want to enable service endpoints on the app but not the subnet depends mainly on whether you have the permissions to enable them on the subnet.

Если требуется, чтобы другие пользователи включили конечные точки службы в подсети, установите флажок игнорировать отсутствующие конечные точки Microsoft. Web Service .If you need someone else to enable service endpoints on the subnet, select the Ignore missing Microsoft.Web service endpoints check box. Приложение будет настроено для конечных точек службы, чтобы они были включены позже в подсети.Your app will be configured for service endpoints in anticipation of having them enabled later on the subnet.

Снимок экрана: панель "Добавление ограничения IP-адресов" с выбранным типом виртуальной сети.

Конечные точки службы нельзя использовать для ограничения доступа к приложениям, выполняемым в Среда службы приложений.You can't use service endpoints to restrict access to apps that run in an App Service Environment. Когда приложение находится в Среда службы приложений, вы можете управлять доступом к нему, применяя правила IP-доступа.When your app is in an App Service Environment, you can control access to it by applying IP access rules.

Чтобы узнать, как настроить конечные точки службы, см. раздел Установка функций Azure для доступа к частным сайтам.To learn how to set up service endpoints, see Establish Azure Functions private site access.

Подключения к частным конечным точкамPrivate endpoint connections

Частная конечная точка Azure — это сетевой интерфейс, который обеспечивает безопасное подключение к службе с помощью Приватного канала Azure.Azure Private Endpoint is a network interface that connects you privately and securely to a service powered by Azure Private Link. Частная конечная точка использует частный IP-адрес из виртуальной сети, эффективно предоставляя доступ к службе из виртуальной сети.Private Endpoint uses a private IP address from your virtual network, effectively bringing the service into your virtual network.

Вы можете использовать закрытую конечную точку для функций, размещенных в планах службы приложений уровня " премиум " и "Услуга".You can use Private Endpoint for your functions hosted in the Premium and App Service plans.

При создании входящего подключения к частной конечной точке для функций потребуется также запись DNS для разрешения частного адреса.When creating an inbound private endpoint connection for functions, you will also need a DNS record to resolve the private address. По умолчанию частная запись DNS будет создана при создании частной конечной точки с помощью портал Azure.By default a private DNS record will be created for you when creating a private endpoint using the Azure portal.

Дополнительные сведения см. в статье использование частных конечных точек для веб-приложений.To learn more, see using Private Endpoints for Web Apps.

Чтобы вызвать другие службы, имеющие подключение к частной конечной точке, например хранилище или служебную шину, обязательно настройте приложение для выполнения исходящих вызовов к частным конечным точкам.To call other services that have a private endpoint connection, such as storage or service bus, be sure to configure your app to make outbound calls to private endpoints.

Интеграция виртуальной сетиVirtual network integration

Интеграция виртуальной сети позволяет приложению-функции получить доступ к ресурсам внутри виртуальной сети.Virtual network integration allows your function app to access resources inside a virtual network. Функции Azure поддерживают два вида интеграции виртуальной сети:Azure Functions supports two kinds of virtual network integration:

  • Многоклиентские системы, поддерживающие весь спектр планов ценообразования, за исключением изолированных.The multitenant systems that support the full range of pricing plans except Isolated.
  • Среда службы приложений, который развертывается в виртуальной сети и поддерживает приложения с планом расчета цен.The App Service Environment, which deploys into your VNet and supports Isolated pricing plan apps.

Функция интеграции с виртуальной сетью используется в многоклиентских приложениях.The VNet Integration feature is used in multitenant apps. Если приложение размещено в среде службы приложений, то оно уже находится в виртуальной сети, а для доступа к ресурсам из этой сети не требуется использовать функцию интеграции.If your app is in App Service Environment, then it's already in a VNet and doesn't require use of the VNet Integration feature to reach resources in the same VNet. Дополнительные сведения о всех сетевых компонентах см. в статье сетевые функции службы приложений.For more information on all of the networking features, see App Service networking features.

Интеграция виртуальной сети предоставляет приложению доступ к ресурсам в вашей виртуальной сети, но не предоставляет в виртуальной сети входящий частный доступ к приложению.VNet Integration gives your app access to resources in your VNet, but it doesn't grant inbound private access to your app from the VNet. Доступ к частному сайту — это предоставление доступа к приложению только из частной сети, например из виртуальной сети Azure.Private site access refers to making an app accessible only from a private network, such as from within an Azure virtual network. Интеграция с виртуальной сетью используется только для выполнения исходящих вызовов из приложения в виртуальную сеть.VNet Integration is used only to make outbound calls from your app into your VNet. Функция интеграции с виртуальной сетью ведет себя по-разному, если она используется с виртуальной сетью в том же регионе и с виртуальной сетью в других регионах.The VNet Integration feature behaves differently when it's used with VNet in the same region and with VNet in other regions. Функция интеграции с виртуальной сетью имеет два варианта:The VNet Integration feature has two variations:

  • Интеграция региональной виртуальной сети. при подключении к Azure Resource Manager виртуальным сетям в одном регионе необходимо иметь выделенную подсеть в виртуальной сети, с которой выполняется интеграция.Regional VNet Integration: When you connect to Azure Resource Manager virtual networks in the same region, you must have a dedicated subnet in the VNet you're integrating with.
  • Интеграция виртуальной сети, требуемая для шлюза. при подключении к виртуальной сети в других регионах или в классическую виртуальную сеть в том же регионе необходим шлюз виртуальной сети Azure, подготовленный в целевой виртуальной сети.Gateway-required VNet Integration: When you connect to VNet in other regions or to a classic virtual network in the same region, you need an Azure Virtual Network gateway provisioned in the target VNet.

Функции интеграции с виртуальной сетью:The VNet Integration features:

  • Требуется план ценообразования "Стандартный", "Премиум", категории премиум v2, PremiumV3 или эластичный Premium.Require a Standard, Premium, PremiumV2, PremiumV3, or Elastic Premium pricing plan.
  • Поддержка TCP и UDP.Support TCP and UDP.
  • Работа с приложениями службы приложений Azure и приложениями функций.Work with Azure App Service apps and function apps.

Существуют некоторые вещи, которые не поддерживаются при интеграции с виртуальной сетью, например:There are some things that VNet Integration doesn't support, like:

  • подключение диска;Mounting a drive.
  • Интеграция Active Directory.Active Directory integration.
  • Протокола.NetBIOS.

Необходимая для шлюза интеграция виртуальной сети предоставляет доступ к ресурсам только в целевой виртуальной сети или в сетях, подключенных к целевой виртуальной сети с помощью пиринга или VPN.Gateway-required VNet Integration provides access to resources only in the target VNet or in networks connected to the target VNet with peering or VPNs. Интеграция виртуальной сети, требуемая для шлюза, не обеспечивает доступ к ресурсам, доступным через подключения Azure ExpressRoute, или работает с конечными точками службы.Gateway-required VNet Integration doesn't enable access to resources available across Azure ExpressRoute connections or work with service endpoints.

Независимо от используемой версии, интеграция виртуальной сети предоставляет приложению доступ к ресурсам в виртуальной сети, но не предоставляет в виртуальной сети входящий частный доступ к приложению.Regardless of the version used, VNet Integration gives your app access to resources in your VNet, but it doesn't grant inbound private access to your app from the VNet. Доступ к частному сайту означает, что приложение доступно только из частной сети, например из виртуальной сети Azure.Private site access refers to making your app accessible only from a private network, such as from within an Azure VNet. Интеграция виртуальной сети предназначена только для исходящих вызовов из приложения в виртуальную сеть.VNet Integration is only for making outbound calls from your app into your VNet.

Интеграция виртуальной сети в Функциях Azure использует общую инфраструктуру с веб-приложениями Службы приложений.Virtual network integration in Azure Functions uses shared infrastructure with App Service web apps. Дополнительные сведения о двух типах интеграции виртуальной сети см. в следующих статьях:To learn more about the two types of virtual network integration, see:

Сведения о настройке интеграции виртуальной сети см. в статье Integrate a function app with an Azure virtual network (Интеграция приложения-функции с виртуальной сетью Azure).To learn how to set up virtual network integration, see Integrate a function app with an Azure virtual network.

Интеграция региональной виртуальной сетиRegional virtual network integration

Использование региональной интеграции виртуальной сети позволяет приложению получить доступ к следующим данным:Using regional VNet Integration enables your app to access:

  • Ресурсы в виртуальной сети в том же регионе, что и ваше приложение.Resources in a VNet in the same region as your app.
  • Ресурсы в виртуальных сетей, подключенные к виртуальной сети, с которой интегрировано приложение.Resources in VNets peered to the VNet your app is integrated with.
  • Службы, защищенные конечной точкой службы.Service endpoint secured services.
  • Ресурсы для подключений Azure ExpressRoute.Resources across Azure ExpressRoute connections.
  • Ресурсы в виртуальной сети, с которыми вы интегрируетесь.Resources in the VNet you're integrated with.
  • Ресурсы через одноранговые соединения, включая подключения Azure ExpressRoute.Resources across peered connections, which include Azure ExpressRoute connections.
  • Частные конечные точкиPrivate endpoints

При использовании интеграции с виртуальной сетью с виртуальных сетей в том же регионе можно использовать следующие сетевые функции Azure:When you use VNet Integration with VNets in the same region, you can use the following Azure networking features:

  • Группы безопасности сети (группы безопасности сети). исходящий трафик можно блокировать с помощью NSG, размещенного в подсети интеграции.Network security groups (NSGs): You can block outbound traffic with an NSG that's placed on your integration subnet. Правила для входящих подключений не применяются, так как вы не можете использовать интеграцию с виртуальной сетью для предоставления входящего доступа к приложению.The inbound rules don't apply because you can't use VNet Integration to provide inbound access to your app.
  • Таблицы маршрутов (определяемые пользователем маршруты). таблицу маршрутов можно поместить в подсеть интеграции для отправки исходящего трафика.Route tables (UDRs): You can place a route table on the integration subnet to send outbound traffic where you want.

По умолчанию приложение перенаправляет только АДРЕСНЫЕ пространства RFC1918 трафик в виртуальную сеть.By default, your app routes only RFC1918 traffic into your VNet. Если вы хотите направить весь исходящий трафик в виртуальную сеть, примените параметр приложения WEBSITE_VNET_ROUTE_ALL к приложению.If you want to route all of your outbound traffic into your VNet, apply the app setting WEBSITE_VNET_ROUTE_ALL to your app. Чтобы настроить параметр приложения, выполните следующие действия.To configure the app setting:

  1. Перейдите в пользовательский интерфейс настройки на портале приложения.Go to the Configuration UI in your app portal. Выберите Новый параметр приложения.Select New application setting.

  2. Введите WEBSITE_VNET_ROUTE_ALL в поле имя и введите 1 в поле значение .Enter WEBSITE_VNET_ROUTE_ALL in the Name box, and enter 1 in the Value box.

    Укажите параметр приложения

  3. Нажмите кнопку ОК.Select OK.

  4. Щелкните Сохранить.Select Save.

Примечание

Если вы направите весь исходящий трафик в виртуальную сеть, он подлежит группы безопасности сети и определяемые пользователем маршруты, которые применяются к подсети интеграции.If you route all of your outbound traffic into your VNet, it's subject to the NSGs and UDRs that are applied to your integration subnet. При маршрутизации всего исходящего трафика в виртуальную сеть исходящие адреса по-прежнему будут исходящими в свойствах вашего приложения, если только не указаны маршруты для отправки трафика в другое место.When you route all of your outbound traffic into your VNet, your outbound addresses are still the outbound addresses that are listed in your app properties unless you provide routes to send the traffic elsewhere.

Существуют некоторые ограничения при использовании интеграции с виртуальной сетью с виртуальных сетей в одном регионе:There are some limitations with using VNet Integration with VNets in the same region:

  • Не удается получить доступ к ресурсам по глобальным одноранговым соединениям.You can't reach resources across global peering connections.
  • Эта функция доступна во всех единицах масштабирования службы приложений в Premium v2 и Premium v3.The feature is available from all App Service scale units in Premium V2 and Premium V3. Он также доступен в стандарте, но только из новых единиц масштабирования службы приложений.It is also available in Standard but only from newer App Service scale units. Если вы используете более раннюю единицу масштабирования, эту функцию можно использовать только из плана службы приложений Premium v2.If you are on an older scale unit you can only use the feature from a Premium V2 App Service plan. Если вы хотите иметь возможность использовать эту функцию в стандартном плане службы приложений, создайте приложение в плане службы приложений уровня "Премиум V3".If you want to be certain of being able to use the feature in a Standard App Service plan, create your app in a Premium V3 App Service plan. Эти планы поддерживаются только в самых новых единицах масштабирования.Those plans are only supported on our newest scale units. Вы можете уменьшить масштаб, если хотите.You can scale down if you desire after that.
  • Подсеть интеграции может использоваться только одним планом службы приложений.The integration subnet can be used by only one App Service plan.
  • Эта функция не может использоваться приложениями изолированного плана, которые находятся в Среда службы приложений.The feature can't be used by Isolated plan apps that are in an App Service Environment.
  • Для этой функции требуется неиспользуемая подсеть, которая имеет значение/28 или больше в Azure Resource Manager виртуальной сети.The feature requires an unused subnet that's a /28 or larger in an Azure Resource Manager VNet.
  • Приложение и виртуальная сеть должны находиться в одном регионе.The app and the VNet must be in the same region.
  • Невозможно удалить виртуальную сеть с интегрированным приложением.You can't delete a VNet with an integrated app. Удалите интеграцию перед удалением виртуальной сети.Remove the integration before you delete the VNet.
  • Можно использовать только одну региональную интеграцию с виртуальной сетью на один план службы приложений.You can have only one regional VNet Integration per App Service plan. Несколько приложений в одном плане службы приложений могут использовать одну и ту же виртуальную сеть.Multiple apps in the same App Service plan can use the same VNet.
  • Вы не можете изменить подписку приложения или плана, пока есть приложение, использующее интеграцию с региональной виртуальной сетью.You can't change the subscription of an app or a plan while there's an app that's using regional VNet Integration.
  • Приложению не удается разрешить адреса в Частные зоны Azure DNS без изменений конфигурацииYour app cannot resolve addresses in Azure DNS Private Zones without configuration changes

Интеграция виртуальной сети зависит от использования выделенной подсети.VNet Integration depends on use of a dedicated subnet. При подготовке подсети подсеть Azure теряет 5 IP-адресов для запуска.When you provision a subnet, the Azure subnet loses 5 IPs for from the start. Один адрес используется из подсети интеграции для каждого экземпляра плана.One address is used from the integration subnet for each plan instance. При масштабировании приложения до четырех экземпляров используются четыре адреса.If you scale your app to four instances, then four addresses are used. Дебетовое значение 5 адресов из подсети означает, что максимальное число доступных адресов на блок CIDR:The debit of 5 addresses from the subnet size mean that the maximum available addresses per CIDR block are:

  • /28 содержит 11 адресов/28 has 11 addresses
  • /27 имеет 27 адресов/27 has 27 address
  • /26 имеет 59 адресов/26 has 59 addresses

В случае увеличения или уменьшения масштаба необходимо вдвое увеличить потребность в адресах в течение короткого периода времени.If you scale up or down in size, you need double your address need for a short period of time. Ограничения размера означают, что реальные поддерживаемые экземпляры на размер подсети —, если подсеть:The limits in size means that the real available supported instances per subnet size are, if your subnet is a:

  • /28. Максимальная Горизонтальная шкала — 5 экземпляров/28, your maximum horizontal scale is 5 instances
  • /27, максимальная Горизонтальная шкала — 13 экземпляров/27, your maximum horizontal scale is 13 instances
  • /26, максимальная Горизонтальная шкала — 29 экземпляров/26, your maximum horizontal scale is 29 instances

Ограничения, указанные для максимального масштаба по горизонтали, предполагают, что вам придется увеличивать или уменьшать масштаб в какой либо размер или SKU в некоторый момент.The limits noted on maximum horizontal scale assumes that you will need to scale up or down in either size or SKU at some point.

Так как размер подсети нельзя изменить после назначения, используйте подсеть, которая достаточно велика для размещения любого масштаба, к которому может получить доступ приложение.Since subnet size can't be changed after assignment, use a subnet that's large enough to accommodate whatever scale your app might reach. Чтобы избежать проблем с емкостью подсети, рекомендуемым размером является a/26 с 64 адресами.To avoid any issues with subnet capacity, a /26 with 64 addresses is the recommended size.

Если вы хотите, чтобы ваши приложения в другом плане достигли виртуальной сети, которая уже подключена к приложениям в другом плане, выберите подсеть, отличную от используемой уже существующей интеграцией виртуальной сети.If you want your apps in another plan to reach a VNet that's already connected to by apps in another plan, select a different subnet than the one being used by the preexisting VNet Integration.

Эта функция полностью поддерживается для приложений Windows и Linux, включая Пользовательские контейнеры.The feature is fully supported for both Windows and Linux apps, including custom containers. Все эти поведения действуют одинаково в приложениях Windows и приложениях Linux.All of the behaviors act the same between Windows apps and Linux apps.

Конечные точки службService endpoints

Интеграция региональной виртуальной сети позволяет использовать конечные точки службы.Regional VNet Integration enables you to use service endpoints. Чтобы использовать конечные точки службы в приложении, используйте интеграцию с региональной виртуальной сетью для подключения к выбранной виртуальной сети, а затем настройте конечные точки службы, указав целевую службу в подсети, используемой для интеграции.To use service endpoints with your app, use regional VNet Integration to connect to a selected VNet and then configure service endpoints with the destination service on the subnet you used for the integration. Если вы хотите получить доступ к службе через конечные точки службы, сделайте следующее:If you then wanted to access a service over service endpoints:

  1. Настройка интеграции региональной виртуальной сети с веб-приложениемconfigure regional VNet Integration with your web app
  2. Перейдите в целевую службу и настройте конечные точки службы для подсети, используемой для интеграции.go to the destination service and configure service endpoints against the subnet used for integration

группы безопасности сети;Network security groups

Группы безопасности сети можно использовать для блокировки входящего и исходящего трафика для ресурсов в виртуальной сети.You can use network security groups to block inbound and outbound traffic to resources in a VNet. Приложение, использующее интеграцию региональной виртуальной сети, может использовать группу безопасности сети для блокировки исходящего трафика к ресурсам в виртуальной сети или Интернете.An app that uses regional VNet Integration can use a network security group to block outbound traffic to resources in your VNet or the internet. Для блокировки трафика на общедоступные адреса необходимо, чтобы параметр приложения WEBSITE_VNET_ROUTE_ALL установлен в значение 1.To block traffic to public addresses, you must have the application setting WEBSITE_VNET_ROUTE_ALL set to 1. Правила для входящих подключений в NSG не применяются к вашему приложению, так как интеграция с виртуальной сетью влияет только на исходящий трафик из приложения.The inbound rules in an NSG don't apply to your app because VNet Integration affects only outbound traffic from your app.

Чтобы управлять входящим трафиком к приложению, используйте функцию ограничения доступа.To control inbound traffic to your app, use the Access Restrictions feature. NSG, применяемый к подсети интеграции, действует независимо от всех маршрутов, примененных к подсети интеграции.An NSG that's applied to your integration subnet is in effect regardless of any routes applied to your integration subnet. Если для параметра WEBSITE_VNET_ROUTE_ALL задано значение 1, а у вас нет маршрутов, влияющих на трафик общедоступного адреса в подсети интеграции, весь исходящий трафик по-прежнему подпадает под группы безопасности сети, назначенный вашей подсети интеграции.If WEBSITE_VNET_ROUTE_ALL is set to 1 and you don't have any routes that affect public address traffic on your integration subnet, all of your outbound traffic is still subject to NSGs assigned to your integration subnet. Если WEBSITE_VNET_ROUTE_ALL не задано, группы безопасности сети применяются только к трафику АДРЕСНЫЕ пространства RFC1918.If WEBSITE_VNET_ROUTE_ALL isn't set, NSGs are only applied to RFC1918 traffic.

МаршрутыRoutes

Таблицы маршрутов можно использовать для маршрутизации исходящего трафика из приложения в нужное место.You can use route tables to route outbound traffic from your app to wherever you want. По умолчанию таблицы маршрутов влияют только на трафик назначения АДРЕСНЫЕ пространства RFC1918.By default, route tables only affect your RFC1918 destination traffic. Если присвоить WEBSITE_VNET_ROUTE_ALL значение 1, будут затронуты все исходящие вызовы.If you set WEBSITE_VNET_ROUTE_ALL to 1, all of your outbound calls are affected. Маршруты, настроенные в подсети интеграции, не влияют на ответы на входящие запросы приложений.Routes that are set on your integration subnet won't affect replies to inbound app requests. Общие назначения могут включать устройства брандмауэра или шлюзы.Common destinations can include firewall devices or gateways.

Если требуется маршрутизировать весь исходящий трафик локально, можно использовать таблицу маршрутов для отправки всего исходящего трафика на шлюз ExpressRoute.If you want to route all outbound traffic on-premises, you can use a route table to send all outbound traffic to your ExpressRoute gateway. Если вы направите трафик в шлюз, не забудьте установить маршруты во внешней сети для отправки ответов обратно.If you do route traffic to a gateway, be sure to set routes in the external network to send any replies back.

Маршруты протокол BGP (BGP) также влияют на трафик приложения.Border Gateway Protocol (BGP) routes also affect your app traffic. Если у вас есть маршруты BGP, например шлюз ExpressRoute, будет затронуто исходящий трафик приложения.If you have BGP routes from something like an ExpressRoute gateway, your app outbound traffic will be affected. По умолчанию маршруты BGP влияют только на трафик назначения АДРЕСНЫЕ пространства RFC1918.By default, BGP routes affect only your RFC1918 destination traffic. Если WEBSITE_VNET_ROUTE_ALL имеет значение 1, маршруты BGP могут повлиять на весь исходящий трафик.If WEBSITE_VNET_ROUTE_ALL is set to 1, all outbound traffic can be affected by your BGP routes.

Частные зоны Azure DNSAzure DNS Private Zones

После интеграции приложения с виртуальной сетью используется тот же DNS-сервер, с которым настроена виртуальная сеть.After your app integrates with your VNet, it uses the same DNS server that your VNet is configured with. По умолчанию приложение не будет работать с Частные зоны Azure DNS.By default, your app won't work with Azure DNS Private Zones. Для работы с Частные зоны Azure DNS необходимо добавить следующие параметры приложения:To work with Azure DNS Private Zones, you need to add the following app settings:

  1. WEBSITE_DNS_SERVER со значением 168.63.129.16WEBSITE_DNS_SERVER with value 168.63.129.16
  2. WEBSITE_VNET_ROUTE_ALL со значением 1WEBSITE_VNET_ROUTE_ALL with value 1

Эти параметры отправляют все исходящие вызовы из приложения в виртуальную сеть, а также позволяют приложению использовать частные зоны Azure DNS.These settings will send all of your outbound calls from your app into your VNet in addition to enabling your app to use Azure DNS private zones. Эти параметры будут отсылать все исходящие вызовы из приложения в виртуальную сеть.These settings will send all the outbound calls from your app into your VNet. Кроме того, оно позволит приложению использовать Azure DNS, запрашивая зону Частная зона DNS на уровне рабочей роли.Additionally, it will enable the app to use Azure DNS by querying the Private DNS Zone at the worker level. Эта функция используется, когда работающее приложение обращается к зоне Частная зона DNS.This functionality is to be used when a running app is accessing a Private DNS Zone.

Примечание

Попытка добавить личный домен в веб-приложение с помощью Частная зона DNS зоны невозможна с интеграция с виртуальной сетью.Trying to add a custom domain to a Web App using Private DNS Zone is not possible with the VNET Integration. Проверка пользовательских доменов выполняется на уровне контроллера, а не на уровне рабочей роли, что предотвращает отображение записей DNS.Custom domain validation is done at the controller level, not the worker level, which prevents the DNS records from being seen. Чтобы использовать личный домен из Частная зона DNS зоны, необходимо пропускать проверку с помощью шлюза приложений или ILB Среда службы приложений.To use a custom domain from a Private DNS Zone, validation would need to be bypassed using an Application Gateway or ILB App Service Environment.

Частные конечные точкиPrivate endpoints

Если вы хотите выполнять вызовы к частным конечным точкам, необходимо убедиться, что поиск DNS будет разрешаться в частную конечную точку.If you want to make calls to Private Endpoints, then you need to ensure that your DNS lookups will resolve to the private endpoint. Чтобы убедиться, что уточняющие запросы DNS из приложения будут указывать на закрытые конечные точки, вы можете:To ensure that the DNS lookups from your app will point to your private endpoints you can:

  • Интегрируйтесь с Частные зоны Azure DNS.integrate with Azure DNS Private Zones. Если в вашей виртуальной сети нет настраиваемого DNS-сервера, это будет автоматическиIf your VNet doesn't have a custom DNS server, this will be automatic
  • Управление частной конечной точкой на DNS-сервере, используемом приложением.manage the private endpoint in the DNS server used by your app. Для этого необходимо знать адрес частной конечной точки, а затем указать конечную точку, к которой вы пытаетесь связаться, с записью A.To do this you need to know the private endpoint address and then point the endpoint you are trying to reach to that address with an A record.
  • Настройка собственного DNS-сервера для пересылки в Azure DNS частные зоныconfigure your own DNS server to forward to Azure DNS private zones

Подключитесь к защищенным ресурсам конечной точки службыConnect to service endpoint secured resources

Чтобы обеспечить более высокий уровень безопасности, можно ограничить число служб Azure для виртуальной сети, используя конечные точки служб.To provide a higher level of security, you can restrict a number of Azure services to a virtual network by using service endpoints. Затем необходимо интегрировать приложение-функцию с этой виртуальной сетью, чтобы получить доступ к ресурсу.You must then integrate your function app with that virtual network to access the resource. Эта конфигурация поддерживается во всех планах, которые поддерживают интеграцию виртуальной сети.This configuration is supported on all plans that support virtual network integration.

Дополнительные сведения см. в статье Конечные точки служб для виртуальной сети.To learn more, see Virtual network service endpoints.

Ограничение учетной записи хранения виртуальной сетью (Предварительная версия)Restrict your storage account to a virtual network (preview)

Когда вы создаете приложения-функции, необходимо создать или привязать учетную запись хранения Azure общего назначения, поддерживающую хранилища BLOB-объектов, очередей и таблиц.When you create a function app, you must create or link to a general-purpose Azure Storage account that supports Blob, Queue, and Table storage. Эту учетную запись хранения можно заменить на ту, которая защищена конечными точками службы или частной конечной точкой.You can replace this storage account with one that is secured with service endpoints or private endpoint. Эта предварительная версия функции в настоящее время работает только с планами Windows Premium в Западной Европе.This preview feature currently only works with Windows Premium plans in West Europe. Чтобы настроить функцию с учетной записью хранения, которая ограничена частной сетью, выполните следующие действия.To set up a function with a storage account restricted to a private network:

Примечание

Ограничьте учетную запись хранения только для функций Premium, использующих Windows в Западной ЕвропеRestricting the storage account only currently works for Premium functions using Windows in West Europe

  1. Создайте функцию с учетной записью хранения, в которой не включены конечные точки службы.Create a function with a storage account that does not have service endpoints enabled.
  2. Настройте функцию для подключения к виртуальной сети.Configure the function to connect to your virtual network.
  3. Создайте или настройте другую учетную запись хранения.Create or configure a different storage account. Это будет учетная запись хранения, защищенная с помощью конечных точек службы, и подключается к нашей функции.This will be the storage account we secure with service endpoints and connect our function.
  4. Создайте общую папку в защищенной учетной записи хранения.Create a file share in the secured storage account.
  5. Включите конечные точки службы или закрытую конечную точку для учетной записи хранения.Enable service endpoints or private endpoint for the storage account.
    • При использовании подключений к частным конечным точкам учетной записи хранения потребуется частная конечная точка для file и blob подресурсов.If using private endpoint connections, the storage account will need a private endpoint for the file and blob subresources. При использовании определенных возможностей, таких как Устойчивые функции, также требуются queue и table доступны через подключение частной конечной точки.If using certain capabilities like Durable Functions, you will also need queue and table accessible through a private endpoint connection.
    • При использовании конечных точек службы включите подсеть, выделенную для приложений функций для учетных записей хранения.If using service endpoints, enable the subnet dedicated to your function apps for storage accounts.
  6. Используемых Скопируйте файл и содержимое большого двоичного объекта из учетной записи хранения приложения-функции в защищенную учетную запись хранения и общую папку.(Optional) Copy the file and blob content from the function app storage account to the secured storage account and file share.
  7. Скопируйте строку подключения для этой учетной записи хранения.Copy the connection string for this storage account.
  8. Обновите Параметры приложения в разделе Конфигурация для приложения функции следующим образом:Update the Application Settings under Configuration for the function app to the following:
    • AzureWebJobsStorage в строку подключения для защищенной учетной записи хранения.AzureWebJobsStorage to the connection string for the secured storage account.
    • WEBSITE_CONTENTAZUREFILECONNECTIONSTRING в строку подключения для защищенной учетной записи хранения.WEBSITE_CONTENTAZUREFILECONNECTIONSTRING to the connection string for the secured storage account.
    • WEBSITE_CONTENTSHARE в имя общей папки, созданной в защищенной учетной записи хранения.WEBSITE_CONTENTSHARE to the name of the file share created in the secured storage account.
    • Создайте новый параметр с именем WEBSITE_CONTENTOVERVNET и значением 1 .Create a new setting with the name WEBSITE_CONTENTOVERVNET and value of 1.
    • Если учетная запись хранения использует подключения частной конечной точки, проверьте или добавьте следующие параметры.If the storage account is using private endpoint connections, verify or add the following settings
      • WEBSITE_VNET_ROUTE_ALL со значением 1 .WEBSITE_VNET_ROUTE_ALL with a value of 1.
      • WEBSITE_DNS_SERVER со значением 168.63.129.16WEBSITE_DNS_SERVER with a value of 168.63.129.16
  9. Сохраните параметры приложения.Save the application settings.

Приложение-функция будет перезапущено и теперь будет подключено к защищенной учетной записи хранения.The function app will restart and will now be connected to a secured storage account.

Использование возможностей Key VaultUse Key Vault references

Вы можете использовать возможности Azure Key Vault, чтобы извлекать секреты из Azure Key Vault в приложении Функций Azure без каких-либо изменений кода.You can use Azure Key Vault references to use secrets from Azure Key Vault in your Azure Functions application without requiring any code changes. Azure Key Vault — это служба, которая обеспечивает централизованное управление секретами и полный контроль над политиками доступа и журналами аудита.Azure Key Vault is a service that provides centralized secrets management, with full control over access policies and audit history.

В настоящее время возможности Key Vault не будут работать, если хранилище ключей защищено с помощью конечных точек службы.Currently, Key Vault references won't work if your key vault is secured with service endpoints. Чтобы подключиться к хранилищу ключей, используя интеграцию с виртуальной сетью, необходимо вызвать Key Vault в коде приложения.To connect to a key vault by using virtual network integration, you need to call Key Vault in your application code.

Триггеры виртуальной сети (без HTTP)Virtual network triggers (non-HTTP)

В настоящее время вы можете использовать функции триггеров, отличных от HTTP, из виртуальной сети одним из двух способов:Currently, you can use non-HTTP trigger functions from within a virtual network in one of two ways:

  • Запустите приложение-функцию в плане категории "Премиум" и включите поддержку триггеров виртуальной сети.Run your function app in a Premium plan and enable virtual network trigger support.
  • Запустите ваше приложение-функцию в плане службы приложений или в среде службы приложений.Run your function app in an App Service plan or App Service Environment.

План категории "Премиум" с триггерами виртуальной сетиPremium plan with virtual network triggers

При запуске плана категории "Премиум" можно подключать функции триггеров, отличных от HTTP, к службам, выполняемым внутри виртуальной сети.When you run a Premium plan, you can connect non-HTTP trigger functions to services that run inside a virtual network. Для этого необходимо включить поддержку триггеров виртуальной сети для приложения-функции.To do this, you must enable virtual network trigger support for your function app. Параметр мониторинга масштаба среды выполнения находится в портал Azure в разделе > Параметры среды выполнения функции конфигурации.The Runtime Scale Monitoring setting is found in the Azure portal under Configuration > Function runtime settings.

VNETToggle

Также можно включить триггеры виртуальной сети, используя следующую команду Azure CLI:You can also enable virtual network triggers by using the following Azure CLI command:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

Совет

Включение триггеров виртуальной сети может оказать влияние на производительность приложения, так как экземпляры плана службы приложений должны отслеживать триггеры, чтобы определить, когда следует масштабировать.Enabling virtual network triggers may have an impact on the performance of your application since your App Service plan instances will need to monitor your triggers to determine when to scale. Это воздействие, скорее всего, будет очень небольшим.This impact is likely to be very small.

Триггеры виртуальной сети поддерживаются в версии 2. x и более поздних версиях среды выполнения Функций.Virtual network triggers are supported in version 2.x and above of the Functions runtime. Поддерживаются следующие типы триггеров, отличных от HTTP.The following non-HTTP trigger types are supported.

РасширениеExtension Минимальная версияMinimum version
Microsoft.Azure.WebJobs.Extensions.StorageMicrosoft.Azure.WebJobs.Extensions.Storage 3.0.10 или новее3.0.10 or above
Microsoft.Azure.WebJobs.Extensions.EventHubsMicrosoft.Azure.WebJobs.Extensions.EventHubs 4.1.0 или новее4.1.0 or above
Microsoft.Azure.WebJobs.Extensions.ServiceBusMicrosoft.Azure.WebJobs.Extensions.ServiceBus 3.2.0 или новее3.2.0 or above
Microsoft.Azure.WebJobs.Extensions.CosmosDBMicrosoft.Azure.WebJobs.Extensions.CosmosDB 3.0.5 или новее3.0.5 or above
Microsoft.Azure.WebJobs.Extensions.DurableTaskMicrosoft.Azure.WebJobs.Extensions.DurableTask 2.0.0 или новее2.0.0 or above

Важно!

Когда вы подключаете поддержку триггеров виртуальной сети, с приложением динамично масштабируются только те виды триггеров, которые показаны в предыдущей таблице.When you enable virtual network trigger support, only the trigger types shown in the previous table scale dynamically with your application. Вы по-прежнему можете использовать триггеры, которых нет в таблице, но они не масштабируются за пределы предварительных чисел экземпляров.You can still use triggers that aren't in the table, but they're not scaled beyond their pre-warmed instance count. Полный список триггеров см. в разделе Триггеры и привязки.For the complete list of triggers, see Triggers and bindings.

План службы приложений и среда службы приложений с триггерами виртуальной сетиApp Service plan and App Service Environment with virtual network triggers

При запуске приложения-функции в плане службы приложений или Среде службы приложений можно использовать функции триггера, отличного от HTTP.When your function app runs in either an App Service plan or an App Service Environment, you can use non-HTTP trigger functions. Для правильной активации функций, вам необходимо подключение к виртуальной сети с доступом к ресурсу, определенному в подключении триггера.For your functions to get triggered correctly, you must be connected to a virtual network with access to the resource defined in the trigger connection.

Например, предположим, что вам нужно настроить Azure Cosmos DB для приема трафика только из виртуальной сети.For example, assume you want to configure Azure Cosmos DB to accept traffic only from a virtual network. В этом случае приложение-функцию необходимо развернуть в плане службы приложений, который обеспечивает интеграцию виртуальной сети с этой виртуальной сетью.In this case, you must deploy your function app in an App Service plan that provides virtual network integration with that virtual network. Интеграция включает функцию, чтобы она была активирована через ресурс Azure Cosmos DB.Integration enables a function to be triggered by that Azure Cosmos DB resource.

Гибридные подключенияHybrid Connections

Гибридные подключения — это функция Azure Relay, которую можно использовать для доступа к ресурсам приложения в других сетях.Hybrid Connections is a feature of Azure Relay that you can use to access application resources in other networks. Они обеспечивают доступ из вашего приложения к конечной точке приложения.It provides access from your app to an application endpoint. Она не может быть использована для доступа к приложению.You can't use it to access your application. Гибридные подключения доступны для функций, которые везде работают в Windows, кроме плана потребления.Hybrid Connections is available to functions that run on Windows in all but the Consumption plan.

При использовании в Функциях Azure каждое гибридное подключение коррелирует с одной комбинацией узла TCP и TCP-порта.As used in Azure Functions, each hybrid connection correlates to a single TCP host and port combination. Это означает, что конечная точка гибридного подключения может быть размещена в любой операционной системе и приложении, пока вы предоставляете доступ к TCP-порту прослушивания.This means that the hybrid connection's endpoint can be on any operating system and any application as long as you're accessing a TCP listening port. Гибридным подключениям не важен используемый протокол приложения или ресурсы, к которым вы обращаетесь.The Hybrid Connections feature doesn't know or care what the application protocol is or what you're accessing. Они просто предоставляют доступ к сети.It just provides network access.

Дополнительные сведения см. в App Service documentation for Hybrid Connections (Документация по Службе приложений для гибридных подключений).To learn more, see the App Service documentation for Hybrid Connections. Эти же шаги конфигурации поддерживают Функции Azure.These same configuration steps support Azure Functions.

Важно!

Гибридные подключения поддерживаются только в планах Windows.Hybrid Connections is only supported on Windows plans. ОС Linux не поддерживается.Linux isn't supported.

Ограничения исходящих IP-адресовOutbound IP restrictions

Ограничения исходящих IP-адресов доступны в плане категории "Премиум", в плане службы приложений или Среде службы приложений.Outbound IP restrictions are available in a Premium plan, App Service plan, or App Service Environment. Вы можете настроить ограничения исходящего трафика для виртуальной сети, в которой развернута Среда службы приложений.You can configure outbound restrictions for the virtual network where your App Service Environment is deployed.

При интеграции приложения-функции в плане категории "Премиум" или плане службы приложений с виртуальной сетью приложение по умолчанию может выполнять исходящие вызовы через Интернет.When you integrate a function app in a Premium plan or an App Service plan with a virtual network, the app can still make outbound calls to the internet by default. Добавив параметр приложения WEBSITE_VNET_ROUTE_ALL=1, вы принудительно передаете весь исходящий трафик в виртуальную сеть, где могут использоваться правила группы безопасности сети для ограничения трафика.By adding the application setting WEBSITE_VNET_ROUTE_ALL=1, you force all outbound traffic to be sent into your virtual network, where network security group rules can be used to restrict traffic.

АвтоматизацияAutomation

Следующие API позволяют программно управлять региональной интеграцией виртуальной сети.The following APIs let you programmatically manage regional virtual network integrations:

  • Azure CLI. Используйте az functionapp vnet-integration команды для добавления, перечисления или удаления региональной интеграции виртуальной сети.Azure CLI: Use the az functionapp vnet-integration commands to add, list, or remove a regional virtual network integration.
  • Шаблоны ARM. интеграция региональной виртуальной сети можно включить с помощью шаблона Azure Resource Manager.ARM templates: Regional virtual network integration can be enabled by using an Azure Resource Manager template. Полный пример см. в разделе шаблонбыстрого запуска функций.For a full example, see this Functions quickstart template.

Устранение неполадокTroubleshooting

Эту функцию легко настроить, но это не означает, что ваша работа будет бесплатной.The feature is easy to set up, but that doesn't mean your experience will be problem free. При возникновении проблем с доступом к нужной конечной точке существует несколько служебных программ, которые можно использовать для проверки подключения из консоли приложения.If you encounter problems accessing your desired endpoint, there are some utilities you can use to test connectivity from the app console. Вы можете использовать две консоли:There are two consoles that you can use. Одна из них — консоль KUDU, а другая — консоль в портал Azure.One is the Kudu console, and the other is the console in the Azure portal. Чтобы открыть консоль KUDU из приложения, перейдите в раздел инструменты > KUDU.To reach the Kudu console from your app, go to Tools > Kudu. Можно также обратиться к консоли Кудо по адресу [sitename]. SCM. azurewebsites. NET.You can also reach the Kudo console at [sitename].scm.azurewebsites.net. После загрузки веб-сайта перейдите на вкладку консоль отладки . Чтобы перейти к консоли, размещенной портал Azure, из приложения, перейдите в Tools > консоль инструментов.After the website loads, go to the Debug console tab. To get to the Azure portal-hosted console from your app, go to Tools > Console.

ИнструментыTools

В собственных приложениях Windows средства проверки связи, nslookup и tracert не будут работать через консоль из-за ограничений безопасности (они работают в пользовательских контейнерах Windows).In native Windows apps, the tools ping, nslookup, and tracert won't work through the console because of security constraints (they work in custom Windows containers). Чтобы заполнить void, добавляются два отдельных средства.To fill the void, two separate tools are added. Чтобы проверить функциональность DNS, мы добавили средство с именем nameresolver.exe.To test DNS functionality, we added a tool named nameresolver.exe. Синтаксис:The syntax is:

nameresolver.exe hostname [optional: DNS Server]

Nameresolver можно использовать для проверки имен узлов, которые использует ваше приложение.You can use nameresolver to check the hostnames that your app depends on. Таким образом вы можете проверить, неправильно ли настроена служба DNS или нет доступа к DNS-серверу.This way you can test if you have anything misconfigured with your DNS or perhaps don't have access to your DNS server. DNS-сервер, используемый приложением, можно увидеть в консоли, просмотрев переменные среды WEBSITE_DNS_SERVER и WEBSITE_DNS_ALT_SERVER.You can see the DNS server that your app uses in the console by looking at the environmental variables WEBSITE_DNS_SERVER and WEBSITE_DNS_ALT_SERVER.

Примечание

nameresolver.exe в настоящее время не работает в пользовательских контейнерах Windows.nameresolver.exe currently doesn't work in custom Windows containers.

Можно использовать следующее средство для проверки подключения TCP к сочетанию узла и порта.You can use the next tool to test for TCP connectivity to a host and port combination. Этот инструмент называется tcpping.exe и использует следующий синтаксис.This tool is called tcpping and the syntax is:

tcpping.exe hostname [optional: port]

Служебная программа tcpping сообщает, есть ли доступ к определенному узлу и порту.The tcpping utility tells you if you can reach a specific host and port. Он может показывать успешность только в том случае, если приложение прослушивает сочетание узла и порта, а к указанному узлу и порту подключен доступ к сети из приложения.It can show success only if there's an application listening at the host and port combination, and there's network access from your app to the specified host and port.

Доступ для отладки к ресурсам, размещенным в виртуальной сетиDebug access to virtual network-hosted resources

Ряд действий может помешать приложению достичь определенного узла и порта.A number of things can prevent your app from reaching a specific host and port. В большинстве случаев это одно из следующих действий:Most of the time it's one of these things:

  • Брандмауэр блокирует доступ.A firewall is in the way. При наличии брандмауэра вы достигли времени ожидания TCP.If you have a firewall in the way, you hit the TCP timeout. В нашем случае это 21 секунда.The TCP timeout is 21 seconds in this case. Проверьте подключение с помощью средства tcpping.Use the tcpping tool to test connectivity. Время ожидания TCP может быть вызвано многими причинами, которые выходят за пределы брандмауэра, но начать с него.TCP timeouts can be caused by many things beyond firewalls, but start there.
  • Служба DNS недоступна.DNS isn't accessible. Время ожидания DNS составляет 3 секунды на DNS-сервер.The DNS timeout is 3 seconds per DNS server. Если у вас два DNS-сервера, то время ожидания составляет 6 секунд.If you have two DNS servers, the timeout is 6 seconds. Используйте средство nameresolver для проверки работы DNS.Use nameresolver to see if DNS is working. Нельзя использовать nslookup, так как не использует DNS-сервер, для которого настроена виртуальная сеть.You can't use nslookup, because that doesn't use the DNS your virtual network is configured with. Если он недоступен, возможно, брандмауэр или NSG блокирует доступ к DNS.If inaccessible, you could have a firewall or NSG blocking access to DNS or it could be down.

Если эти элементы не отвечают на ваши проблемы, сначала изучите такие вещи, как:If those items don't answer your problems, look first for things like:

Интеграция с региональной виртуальной сетьюRegional VNet Integration

  • Не не АДРЕСНЫЕ пространства RFC1918 адрес назначения, и у вас нет WEBSITE_VNET_ROUTE_ALL в качестве значения 1?Is your destination a non-RFC1918 address and you don't have WEBSITE_VNET_ROUTE_ALL set to 1?
  • Существует ли NSG блокировка исходящего трафика из вашей подсети интеграции?Is there an NSG blocking egress from your integration subnet?
  • Если вы работаете в Azure ExpressRoute или VPN, это ваш локальный шлюз, настроенный на маршрутизацию трафика в Azure?If you're going across Azure ExpressRoute or a VPN, is your on-premises gateway configured to route traffic back up to Azure? Если вы можете получить доступ к конечным точкам в виртуальной сети, но не в локальной среде, проверьте маршруты.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • У вас есть достаточные разрешения для настройки делегирования в подсети интеграции?Do you have enough permissions to set delegation on the integration subnet? Во время настройки интеграции с региональной виртуальной сетью ваша подсеть интеграции делегируется Microsoft. Web/serverFarms.During regional VNet Integration configuration, your integration subnet is delegated to Microsoft.Web/serverFarms. Пользовательский интерфейс интеграции с виртуальной сетью делегирует подсеть к Microsoft. Web/serverFarms автоматически.The VNet Integration UI delegates the subnet to Microsoft.Web/serverFarms automatically. Если у вашей учетной записи нет достаточных сетевых разрешений для настройки делегирования, вам потребуется пользователь, который может задать атрибуты в подсети интеграции для делегирования подсети.If your account doesn't have sufficient networking permissions to set delegation, you'll need someone who can set attributes on your integration subnet to delegate the subnet. Чтобы вручную делегировать подсеть интеграции, перейдите в пользовательский интерфейс подсети виртуальной сети Azure и задайте делегирование для Microsoft. Web/serverFarms.To manually delegate the integration subnet, go to the Azure Virtual Network subnet UI and set the delegation for Microsoft.Web/serverFarms.

Интеграция виртуальной сети с требуемым шлюзомGateway-required VNet Integration

  • Диапазон адресов "точка — сеть" в диапазонах RFC 1918 (10.0.0.0-10.255.255.255/172.16.0.0-172.31.255.255/192.168.0.0-192.168.255.255)?Is the point-to-site address range in the RFC 1918 ranges (10.0.0.0-10.255.255.255 / 172.16.0.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
  • Отображается ли шлюз как на портале?Does the gateway show as being up in the portal? Если шлюз не работает, восстановите его работоспособность.If your gateway is down, then bring it back up.
  • Отображаются ли сертификаты как синхронизированные или вы считаете, что конфигурация сети была изменена?Do certificates show as being in sync, or do you suspect that the network configuration was changed? Если сертификаты не синхронизированы или вы подозреваете, что в конфигурацию виртуальной сети было внесено изменение, которое не было синхронизировано с планах ASP, выберите синхронизировать сеть.If your certificates are out of sync or you suspect that a change was made to your virtual network configuration that wasn't synced with your ASPs, select Sync Network.
  • Если вы находитесь через VPN, то — это локальный шлюз, настроенный для маршрутизации трафика в Azure?If you're going across a VPN, is the on-premises gateway configured to route traffic back up to Azure? Если вы можете получить доступ к конечным точкам в виртуальной сети, но не в локальной среде, проверьте маршруты.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • Вы пытаетесь использовать шлюз сосуществования, поддерживающий обе точки с сайтом и ExpressRoute?Are you trying to use a coexistence gateway that supports both point to site and ExpressRoute? Шлюзы сосуществования не поддерживаются при интеграции с виртуальной сетью.Coexistence gateways aren't supported with VNet Integration.

Отладка сетевых проблем является сложной задачей, так как вы не можете увидеть, что блокирует доступ к определенной комбинации "узел: порт".Debugging networking issues is a challenge because you can't see what's blocking access to a specific host:port combination. Некоторые причины включают:Some causes include:

  • На узле имеется брандмауэр, который блокирует доступ к порту приложения из диапазона IP-адресов "точка — сеть".You have a firewall up on your host that prevents access to the application port from your point-to-site IP range. Пересечение подсетей часто требует общего доступа.Crossing subnets often requires public access.
  • Целевой узел не работает.Your target host is down.
  • Ваше приложение не работает.Your application is down.
  • У вас неправильный IP-адрес или имя узла.You had the wrong IP or hostname.
  • Приложение прослушивает порт, отличный от ожидаемого.Your application is listening on a different port than what you expected. Вы можете сопоставить ИД процесса с портом прослушивания при помощи команды "netstat -aon" в узле конечной точки.You can match your process ID with the listening port by using "netstat -aon" on the endpoint host.
  • Группы безопасности сети настроены таким образом, чтобы предотвратить доступ к узлу приложения и порту из диапазона IP-адресов "точка — сеть".Your network security groups are configured in such a manner that they prevent access to your application host and port from your point-to-site IP range.

Вы не узнаете, какой адрес в действительности используется приложением.You don't know what address your app actually uses. Это может быть любой адрес в подсети интеграции или диапазон адресов "точка — сеть", поэтому необходимо разрешить доступ из всего диапазона адресов.It could be any address in the integration subnet or point-to-site address range, so you need to allow access from the entire address range.

Можно выполнить дополнительные действия по отладке.Additional debug steps include:

  • Подключитесь к виртуальной машине в виртуальной сети и попытайтесь связаться с узлом ресурсов: через порт.Connect to a VM in your virtual network and attempt to reach your resource host:port from there. Чтобы проверить доступ TCP, используйте команду PowerShell test-netconnection.To test for TCP access, use the PowerShell command test-netconnection. Синтаксис:The syntax is:
test-netconnection hostname [optional: -Port]
  • Выведите приложение на виртуальной машине и протестируйте доступ к этому узлу и порту из консоли приложения с помощью tcpping.Bring up an application on a VM and test access to that host and port from the console from your app by using tcpping.

Локальные ресурсыOn-premises resources

Если приложение не может подключиться к локальному ресурсу, проверьте, есть ли у вас доступ к ресурсу из виртуальной сети.If your app can't reach a resource on-premises, check if you can reach the resource from your virtual network. Чтобы проверить доступ по протоколу TCP, используйте команду PowerShell test-netconnection.Use the test-netconnection PowerShell command to check for TCP access. Если виртуальная машина не может подключиться к локальному ресурсу, возможно, подключение VPN или ExpressRoute настроено неправильно.If your VM can't reach your on-premises resource, your VPN or ExpressRoute connection might not be configured properly.

Если виртуальная машина, размещенная в виртуальной сети, может подключиться к локальной системе, но приложение не может, причина может быть одной из следующих причин.If your virtual network-hosted VM can reach your on-premises system but your app can't, the cause is likely one of the following reasons:

  • Для ваших маршрутов не настроена подсеть или диапазоны адресов "точка — сеть" в локальном шлюзе.Your routes aren't configured with your subnet or point-to-site address ranges in your on-premises gateway.
  • Группы безопасности сети блокируют доступ к диапазону IP-адресов "точка — сеть".Your network security groups are blocking access for your point-to-site IP range.
  • Локальные брандмауэры блокируют трафик из диапазона IP-адресов "точка — сеть".Your on-premises firewalls are blocking traffic from your point-to-site IP range.
  • Вы пытаетесь обратиться к адресу, отличному от RFC 1918, с помощью функции интеграции с региональной виртуальной сетью.You're trying to reach a non-RFC 1918 address by using the regional VNet Integration feature.

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

Дополнительные сведения о сети и Функциях Azure:To learn more about networking and Azure Functions: