Опции за работа в мрежа на Azure Functions
21.01.2021 г. 23 минути за четенеТази статия описва мрежовите функции, налични в опциите за хостинг за функции на Azure. Всички изброени по-долу мрежови опции ви дават известна възможност за достъп до ресурси, без да използвате интернет маршрутизирани адреси или да ограничите достъпа до интернет до функционално приложение.
Хостинг моделите имат различни налични нива на изолация на мрежата. Изборът на правилния ви помага да изпълните вашите изисквания за изолация на мрежата.
Можете да хоствате функционални приложения по няколко начина:
Можете да избирате от опции на план, които работят на инфраструктура с множество наематели, с различни нива на виртуална мрежова свързаност и опции за мащабиране: Планът за потребление се мащабира динамично в отговор на натоварването и предлага минимални опции за изолация на мрежата. Планът Premium също се мащабира динамично и предлага по-изчерпателни мрежова изолация. Планът на Azure App Service работи във фиксиран мащаб и предлага мрежова изолация, подобна на плана Premium. Можете да изпълнявате функции в среда на App Service. Този метод внедрява вашата функция във вашата виртуална мрежа и предлага пълен мрежов контрол и изолация.Можете да използвате ограничения за достъп, за да определите приоритет -подреден списък с IP адреси, на които е разрешен или отказан достъп до вашето приложение. Списъкът може да включва IPv4 и IPv6 адреси или конкретни виртуални мрежови подмрежи, използващи крайни точки на услугата. Когато има един или повече записи, в края на списъка съществува имплицитно „отказване на всички“. IP ограниченията работят с всички опции за хостване на функции.
Ограниченията за достъп са налични в Premium, Consumption и App Service.
Забележка
При въведени мрежови ограничения можете да разположите само от вашата виртуална мрежа или когато сте поставили IP адреса на машината, която използвате за достъп до портала на Azure, в списъка с безопасни получатели. Все пак можете да управлявате функцията с помощта на портала.
За да научите повече, вижте статични ограничения за достъп на Azure App Service.
Чрез използване на крайни точки на услуги можете да ограничите достъпа до избрани подмрежи на виртуална мрежа на Azure. За да ограничите достъпа до конкретна подмрежа, създайте правило за ограничаване с тип виртуална мрежа. След това можете да изберете абонамента, виртуалната мрежа и подмрежата, до които искате да разрешите или забраните достъп.
Ако крайните точки на услугата все още не са активирани с Microsoft.Web за подмрежата, която сте избрали, те ще бъдат активирани автоматично, освен ако не поставите отметка в квадратчето Игнориране на липсващите крайни точки на услугата Microsoft.Web. Сценарият, при който може да искате да активирате крайни точки на услугата в приложението, но не и в подмрежата, зависи главно от това дали имате разрешенията да ги активирате в подмрежата.
Ако се нуждаете от някой друг, който да активира крайните точки на услугата в подмрежата, поставете отметка в квадратчето Игнорирай липсващите крайни точки на услугата Microsoft.Web. Вашето приложение ще бъде конфигурирано за крайни точки на услугата в очакване те да бъдат активирани по-късно в подмрежата.
Не можете да използвате крайни точки на услугата, за да ограничите достъпа до приложения, които се изпълняват в среда на услуга за приложения. Когато вашето приложение е в среда на услуга за приложения, можете да контролирате достъпа до него чрез прилагане на правила за IP достъп.
За да научите как да настроите крайни точки на услугата, вижте Установяване на частен достъп до сайта на Azure Functions.
Azure Private Endpoint е мрежов интерфейс, който ви свързва частно и сигурно с услуга, поддържана от Azure Private Link. Private Endpoint използва частен IP адрес от вашата виртуална мрежа, като ефективно осигурява услуга във вашата виртуална мрежа.
Можете да използвате Private Endpoint за вашите функции, хоствани в плановете Premium и App Service.
Когато създавате входяща връзка с частна крайна точка за функции, ще ви е необходим и DNS запис, за да разрешите частния адрес. По подразбиране ще бъде създаден частен DNS запис за вас, когато създавате частна крайна точка с помощта на портала на Azure.
За да научите повече, вижте използването на частни крайни точки за уеб приложения.
За да се обадите на други услуги, които имат връзка с частна крайна точка, като хранилище или сервизна шина, не забравяйте да конфигурирате приложението си да извършва изходящи повиквания към частни крайни точки.
Интегрирането на виртуална мрежа позволява на вашето функционално приложение да осъществява достъп до ресурси във виртуална мрежа. Azure Functions поддържа два вида интегриране на виртуална мрежа:
Мултитенантните системи, които поддържат пълната гама от ценови планове с изключение на Isolated. App Service Environment, която се внедрява във вашата VNet и поддържа приложения с изолиран ценови план.Функцията VNet Integration се използва в мултитенантни приложения. Ако вашето приложение е в App Service Environment, то вече е във VNet и не изисква използване на функцията за интегриране на VNet за достигане до ресурси в същата VNet. За повече информация относно всички мрежови функции вижте Мрежови функции на App Service.
Интегрирането на VNet дава на приложението ви достъп до ресурси във вашата VNet, но не предоставя входящ частен достъп до приложението ви от VNet. Достъпът до частен сайт се отнася до това да направите приложение достъпно само от частна мрежа, като например от виртуална мрежа на Azure. VNet Integration се използва само за извършване на изходящи повиквания от вашето приложение във вашата VNet. Функцията за интегриране на VNet се държи различно, когато се използва с VNet в същия регион и с VNet в други региони. Функцията VNet Integration има два варианта:
Регионална VNet интеграция: Когато се свързвате към виртуални мрежи на Azure Resource Manager в същия регион, трябва да имате специална подмрежа във VNet, с която се интегрирате. VNet интеграция, изисквана от шлюза: Когато се свързвате към VNet в други региони или към класическа виртуална мрежа в същия регион, имате нужда от шлюз за виртуална мрежа Azure, осигурен в целевата VNet.Функциите на интегрирането на VNet:
Изисквайте план за ценообразуване Standard, Premium, PremiumV2, PremiumV3 или Elastic Premium. Поддържайте TCP и UDP. Работете с приложения и функционални приложения на Azure App Service.Има някои неща, които VNet Integration не поддържа, като:
Монтиране на устройство. Интеграция на Windows Server Active Directory. NetBIOS.Интеграцията на VNet, изисквана от шлюза, осигурява достъп до ресурси само в целевата VNet или в мрежи, свързани към целевата VNet с пиринг или VPN. Изискваната за шлюз VNet интеграция не позволява достъп до ресурси, налични в Azure ExpressRoute връзки, или работа с крайни точки на услуги.
Независимо от използваната версия, VNet Integration дава достъп на приложението ви до ресурси във вашата VNet, но не предоставя входящ частен достъп до приложението ви от VNet. Достъпът до частен сайт се отнася до това да направите вашето приложение достъпно само от частна мрежа, като например от Azure VNet. Интегрирането на VNet е само за извършване на изходящи повиквания от вашето приложение във вашата VNet.
Виртуалната мрежова интеграция в Azure Functions използва споделена инфраструктура с уеб приложения на App Service. За да научите повече за двата типа интеграция на виртуална мрежа, вижте:
За да научите как да настроите интегриране на виртуална мрежа, вижте Интегриране на функционално приложение с виртуална мрежа на Azure.
Използването на интегриране на регионална VNet позволява на приложението ви да осъществява достъп до:
Ресурси във VNet в същия регион като вашето приложение. Ресурси във VNets, свързани към VNet, с която е интегрирано приложението ви. Услуги, защитени от крайни точки на услугата. Ресурси през Azure ExpressRoute връзки. Ресурси във VNet, с която сте интегрирани. Ресурси през peered връзки , които включват Azure ExpressRoute връзки. Частни крайни точкиКогато използвате VNet Integration с VNets в същия регион, можете да използвате следните мрежови функции на Azure:
Групи за мрежова сигурност (NSG): Можете да блокирате изходящ трафик с NSG, който е поставен във вашата интеграционна подмрежа. Входящите правила не се прилагат, защото не можете да използвате VNet Integration, за да предоставите входящ достъп до вашето приложение. Таблици за маршрутизиране (UDR): Можете да поставите таблица за маршрутизиране в подмрежата за интегриране, за да изпращате изходящ трафик, където желаете.По подразбиране вашето приложение насочва само RFC1918 трафик към вашата VNet. Ако искате да насочите целия си изходящ трафик към вашата VNet, използвайте следните стъпки, за да добавите настройката WEBSITE_VNET_ROUTE_ALL в приложението си:
Отидете до потребителския интерфейс за конфигурация в портала на вашето приложение. Изберете Нова настройка на приложението.
Въведете WEBSITE_VNET_ROUTE_ALL в полето Име и въведете 1 в полето Стойност.
Изберете OK.
Изберете Запазване.
Забележка
Когато насочвате целия си изходящ трафик към вашата VNet, той е предмет на NSG и UDR, които се прилагат към вашата интеграционна подмрежа. Когато WEBSITE_VNET_ROUTE_ALL е зададено на 1, изходящият трафик към публични IP адреси все още се изпраща от адресите, които са изброени в свойствата на приложението ви, освен ако не предоставите маршрути, които насочват трафика другаде.
Регионалната VNet интеграция не може да използва порт 25.
Има някои ограничения при използването на интегриране на VNet с VNet в същия регион:
Не можете да достигнете до ресурси през глобални пиъринг връзки. Функцията е налична от всички мащабни единици на App Service в Premium V2 и Premium V3. Предлага се и в стандартен вариант, но само от по-нови единици за мащаб на App Service. Ако сте на по-старо устройство, можете да използвате функцията само от план Premium V2 App Service. Ако искате да сте сигурни, че можете да използвате функцията в стандартен план за услуга за приложения, създайте приложението си в план за услуга за приложения Premium V3. Тези планове се поддържат само в най-новите ни мащабни единици. Можете да намалите мащаба след това, ако желаете. Подмрежата за интегриране може да се използва само от един план за услуга за приложения. Функцията не може да се използва от приложения с изолиран план, които са в среда за услуга за приложения. Функцията изисква неизползвана подмрежа, която е /28 или по-голям във VNet на Azure Resource Manager. Приложението и VNet трябва да са в един и същ регион. Не можете да изтриете VNet с интегрирано приложение. Премахнете интеграцията, преди да изтриете VNet. Можете да имате само една регионална VNet интеграция на план за услуга за приложения. Множество приложения в един и същ план за услуга за приложения могат да използват една и съща VNet. Не можете да промените абонамента на приложение или план, докато има приложение, което използва регионална VNet интеграция. Приложението ви не може да разрешава адреси в частни зони на Azure DNS без промени в конфигурацията.Интегрирането на VNet зависи от специална подмрежа. Когато предоставите подмрежа, подмрежата на Azure губи пет IP адреса от самото начало. Един адрес се използва от интеграционната подмрежа за всеки екземпляр на плана. Когато мащабирате приложението си до четири инстанции, се използват четири адреса.
Когато увеличавате или намалявате размера, необходимото адресно пространство се удвоява за кратък период от време. Това засяга реалните, налични поддържани екземпляри за даден размер на подмрежа. Следващата таблица показва както максималните налични адреси на CIDR блок, така и влиянието, което това оказва върху хоризонталния мащаб:
Размер на CIDR блок Макс. налични адреси Макс. хоризонтален мащаб (екземпляри)*/28115/272713/265929*Предполага се, че в даден момент ще трябва да увеличите или намалите размера или SKU.
Тъй като размерът на подмрежата не може да бъде променен след присвояването, използвайте подмрежа, която е достатъчно голяма, за да поеме какъвто и мащаб да достигне приложението ви. За да избегнете проблеми с капацитета на подмрежата, трябва да използвате /26 с 64 адреса.
Когато искате вашите приложения в друг план да достигнат до VNet, към която вече са свързани приложения в друг план, изберете различна подмрежа от тази, която се използва от съществуващата интеграция на VNet.
Функцията се поддържа напълно за приложения за Windows и Linux, включително персонализирани контейнери. Всички поведения действат еднакво между приложенията на Windows и приложенията на Linux.
Регионалната VNet интеграция ви позволява да достигнете до услуги на Azure, които са защитени с крайни точки на услуги. За достъп до услуга, защитена от крайна точка, трябва да направите следното:
Конфигурирайте регионална VNet интеграция с вашето уеб приложение, за да се свържете към конкретна подмрежа за интеграция. Отидете до целевата услуга и конфигурирайте крайните точки на услугата спрямо подмрежата за интеграция.Можете да използвате групи за мрежова сигурност за блокиране на входящ и изходящ трафик към ресурси във VNet. Приложение, което използва регионална VNet интеграция, може да използва група за защита на мрежата, за да блокира изходящ трафик към ресурси във вашата VNet или интернет. За да блокирате трафика към публични адреси, трябва да имате настройката на приложението WEBSITE_VNET_ROUTE_ALL, зададена на 1. Входящите правила в NSG не се прилагат за вашето приложение, тъй като интегрирането на VNet засяга само изходящия трафик от вашето приложение.
За да контролирате входящия трафик към вашето приложение, използвайте функцията за ограничения на достъпа. NSG, който е приложен към вашата интеграционна подмрежа, е в сила независимо от всички маршрути, приложени към вашата интеграционна подмрежа. Ако WEBSITE_VNET_ROUTE_ALL е зададено на 1 и нямате никакви маршрути, които да влияят на трафика на публичен адрес във вашата интеграционна подмрежа, целият ви изходящ трафик все още е предмет на NSG, присвоени на вашата интеграционна подмрежа. Когато WEBSITE_VNET_ROUTE_ALL не е зададено, NSG се прилагат само към RFC1918 трафик.
Можете да използвате таблици с маршрути, за да насочвате изходящия трафик от вашето приложение до където пожелаете. По подразбиране таблиците с маршрути засягат само вашия RFC1918 дестинационен трафик. Когато зададете WEBSITE_VNET_ROUTE_ALL на 1, всичките ви изходящи повиквания са засегнати. Маршрутите, които са зададени във вашата интеграционна подмрежа, няма да повлияят на отговорите на входящи заявки за приложения. Общите дестинации могат да включват устройства със защитна стена или шлюзове.
Ако искате да маршрутизирате целия изходящ трафик на място, можете да използвате таблица с маршрути, за да изпратите целия изходящ трафик към вашия шлюз ExpressRoute. Ако насочвате трафик към шлюз, не забравяйте да зададете маршрути във външната мрежа, за да изпращате обратно всички отговори.
Маршрутите на Border Gateway Protocol (BGP) също засягат трафика на приложението ви. Ако имате BGP маршрути от нещо като шлюз ExpressRoute, изходящият трафик на вашето приложение е засегнат. По подразбиране BGP маршрутите засягат само вашия дестинационен трафик RFC1918. Когато WEBSITE_VNET_ROUTE_ALL е зададено на 1, целият изходящ трафик може да бъде засегнат от вашите BGP маршрути.
След като приложението ви се интегрира с вашата VNet, то използва същия DNS сървър, с който е конфигурирана вашата VNet. По подразбиране приложението ви няма да работи с частни зони на Azure DNS. За да работите с частни зони на Azure DNS, трябва да добавите следните настройки на приложението:
WEBSITE_DNS_SERVER със стойност 168.63.129.16WEBSITE_VNET_ROUTE_ALL със стойност 1Тези настройки изпращат всичките ви изходящи повиквания от вашето приложение във вашата VNet и позволяват на приложението ви да осъществява достъп до частна зона на Azure DNS. С тези настройки вашето приложение може да използва Azure DNS, като отправя заявки към DNS частната зона на работно ниво.
Ако искате да извършвате повиквания до частни крайни точки, тогава трябва да се уверите, че вашите DNS търсения се разрешават до частната крайна точка. Можете да наложите това поведение по един от следните начини:
Интегриране с частни зони на Azure DNS. Когато вашата VNet няма персонализиран DNS сървър, това се прави автоматично. Управлявайте частната крайна точка в DNS сървъра, използван от вашето приложение. За да направите това, трябва да знаете адреса на частната крайна точка и след това да насочите крайната точка, която се опитвате да достигнете, към този адрес с помощта на запис A. Конфигурирайте собствения си DNS сървър, за да препращате към частни зони на Azure DNS.За да осигурите по-високо ниво на сигурност, можете да ограничите редица услуги на Azure до виртуална мрежа, като използвате крайни точки на услуги. След това трябва да интегрирате функционалното си приложение с тази виртуална мрежа за достъп до ресурса. Тази конфигурация се поддържа от всички планове, които поддържат интеграция на виртуална мрежа.
За да научите повече, вижте Крайни точки на виртуална мрежова услуга.
Когато създавате функционално приложение, трябва да създадете или да се свържете с акаунт за съхранение на Azure с общо предназначение, който поддържа съхранение на Blob, Queue и Table. Можете да замените този акаунт за съхранение с такъв, който е защитен с крайни точки на услуги или частни крайни точки.
Тази функция се поддържа за всички SKU, поддържани от виртуална мрежа на Windows, в плана Dedicated (App Service) и за плановете Premium. Поддържа се и с частен DNS за SKU, поддържани от виртуална мрежа на Linux. Планът за потребление и персонализираният DNS на планове за Linux не се поддържат. За да научите как да настроите функция с акаунт за съхранение, ограничен до частна мрежа, вижте Ограничете вашия акаунт за съхранение до виртуална мрежа.
Можете да използвате препратки на Azure Key Vault, за да използвате тайни от Azure Key Vault във вашето приложение за функции на Azure, без да се изискват промени в кода. Azure Key Vault е услуга, която предоставя централизирано управление на тайни, с пълен контрол върху политиките за достъп и хронологията на одита.
Ако интеграцията на виртуална мрежа е конфигурирана за приложението, референциите на Key Vault могат да се използват за изтегляне на тайни от хранилище с ограничен достъп до мрежата.
Понастоящем можете да използвате функции за задействане на не-HTTP от виртуална мрежа по един от двата начина:
Стартирайте функционалното си приложение в Premium план и активирайте поддръжката на задействане на виртуална мрежа. Стартирайте функционалното си приложение в план за App Service или App Service Environment.Когато стартирате Premium план, можете да свържете не-HTTP тригерни функции към услуги, които се изпълняват във виртуална мрежа. За да направите това, трябва да активирате поддръжката на задействане на виртуална мрежа за вашето функционално приложение. Настройката за мониторинг на мащаба на изпълнение се намира в портала на Azure под Конфигурация > Настройки за изпълнение на функцията.
Можете също да активирате задействания на виртуална мрежа, като използвате следната CLI команда на Azure:
az resource update -g-n /config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sitesСъвет
Активирането на тригери за виртуална мрежа може да окаже влияние върху производителността на вашето приложение, тъй като екземплярите на вашия план за услуга за приложения ще трябва да наблюдават тригерите ви, за да определят кога да мащабират. Това въздействие вероятно ще бъде много малко.
Виртуалните мрежови тригери се поддържат във версия 2.x и по-нова на времето за изпълнение на функциите. Поддържат се следните типове не-HTTP тригери.
Важно
Когато активирате поддръжка на тригери за виртуална мрежа, само типовете тригери, показани в предишната таблица, се мащабират динамично с вашето приложение. Все още можете да използвате тригери, които не са в таблицата, но те не са мащабирани отвъд техния брой предварително затоплени екземпляри. За пълния списък на тригерите вижте Тригери и свързвания.
Когато вашето функционално приложение се изпълнява или в план за услуга за приложения, или в среда на услуга за приложения, можете да използвате функции за задействане, различни от HTTP. За да се задействат правилно вашите функции, трябва да сте свързани към виртуална мрежа с достъп до ресурса, дефиниран в връзката за задействане.
Например, приемете, че искате да конфигурирате Azure Cosmos DB да приема трафик само от виртуална мрежа. В този случай трябва да разположите функционалното си приложение в план за услуга за приложения, който осигурява интеграция на виртуална мрежа с тази виртуална мрежа. Интегрирането позволява функция да бъде задействана от този ресурс на Azure Cosmos DB.
Хибридните връзки са функция на Azure Relay, която можете да използвате за достъп до ресурсите на приложението в други мрежи. Той осигурява достъп от вашето приложение до крайна точка на приложение. Не можете да го използвате за достъп до вашето приложение. Хибридните връзки са достъпни за функции, които се изпълняват на Windows във всички, освен в плана за потребление.
Както се използва във функциите на Azure, всяка хибридна връзка корелира с единична TCP комбинация от хост и порт. Това означава, че крайната точка на хибридната връзка може да бъде във всяка операционна система и всяко приложение, стига да осъществявате достъп до слушащ TCP порт. Функцията за хибридни връзки не знае и не се интересува какъв е протоколът на приложението или до какво имате достъп. Той просто осигурява достъп до мрежата.
За да научите повече, вижте документацията на App Service за хибридни връзки. Същите тези стъпки за конфигуриране поддържат функциите на Azure.
Важно
Хибридните връзки се поддържат само в планове на Windows. Linux не се поддържа.
Ограниченията за изходящи IP адреси са налични в план Premium, план за услуга за приложения или среда за услуга за приложения. Можете да конфигурирате изходящи ограничения за виртуалната мрежа, където е внедрена вашата App Service Environment.
Когато интегрирате функционално приложение в план Premium или план за App Service с виртуална мрежа, приложението все още може да извършва изходящи повиквания към интернет по подразбиране. Като добавите настройката на приложението WEBSITE_VNET_ROUTE_ALL=1, вие принуждавате целия изходящ трафик да бъде изпратен във вашата виртуална мрежа, където правилата на групата за мрежова сигурност могат да се използват за ограничаване на трафика.
За да научите как да контролирате изходящия IP с помощта на виртуална мрежа, вижте Урок: Контрол на изходящите IP функции на Azure с NAT шлюз на виртуална мрежа на Azure.
Следните API ви позволяват програмно да управлявате регионални виртуални мрежови интеграции:
Функцията се настройва лесно, но това не означава, че работата ви ще бъде безпроблемна. Ако срещнете проблеми с достъпа до желаната крайна точка, има някои помощни програми, които можете да използвате, за да тествате свързаността от конзолата на приложението. Има две конзоли, които можете да използвате. Едната е конзолата Kudu, а другата е конзолата в портала Azure. За да достигнете до конзолата Kudu от вашето приложение, отидете на Инструменти > Куду. Можете също да достигнете до конзолата на Kudo на [sitename].scm.azurewebsites.net. След като уебсайтът се зареди, отидете на раздела Debug console. За да стигнете до конзолата, хоствана от портала на Azure, от вашето приложение, отидете на Инструменти > Конзола.
В собствените приложения на Windows инструментите ping, nslookup и tracert няма да работят през конзолата поради ограничения на сигурността (те работят в персонализирани контейнери на Windows). За запълване на празнината се добавят два отделни инструмента. За да тестваме функционалността на DNS, добавихме инструмент на име nameresolver.exe. Синтаксисът е:
nameresolver.exe име на хост [по избор: DNS сървър]Можете да използвате nameresolver, за да проверите имената на хостове, от които зависи вашето приложение. По този начин можете да тествате дали имате нещо неправилно конфигурирано с вашия DNS или може би нямате достъп до вашия DNS сървър. Можете да видите DNS сървъра, който вашето приложение използва в конзолата, като погледнете променливите на средата WEBSITE_DNS_SERVER и WEBSITE_DNS_ALT_SERVER.
Забележка
nameresolver.exe в момента не работи в персонализирани контейнери на Windows.
Можете да използвате следващия инструмент, за да тествате за TCP свързаност към комбинация от хост и порт. Този инструмент се нарича tcpping и синтаксисът е:
tcpping.exe име на хост [по избор: порт]Помощната програма tcpping ви казва дали можете да достигнете до определен хост и порт. Може да покаже успех само ако има приложение, което слуша комбинация от хост и порт, и има мрежов достъп от вашето приложение до посочения хост и порт.
Достъп за отстраняване на грешки до ресурси, хоствани във виртуална мрежаРедица неща могат да попречат на приложението ви да достигне до конкретен хост и порт. През повечето време това е едно от следните неща:
Защитна стена пречи. Ако имате защитна стена на пътя, ще достигнете времето за изчакване на TCP. Времето за изчакване на TCP в този случай е 21 секунди. Използвайте инструмента tcpping, за да тествате свързаността. TCP таймаутите могат да бъдат причинени от много неща извън защитните стени, но започнете от там. DNS не е достъпен. Времето за изчакване на DNS е 3 секунди на DNS сървър. Ако имате два DNS сървъра, времето за изчакване е 6 секунди. Използвайте nameresolver, за да видите дали DNS работи. Не можете да използвате nslookup, защото това не използва DNS, с който е конфигурирана вашата виртуална мрежа. Ако са недостъпни, може защитна стена или NSG да блокират достъпа до DNS или може да не работи.Ако тези елементи не решават проблемите ви, първо потърсете неща като:
Регионална VNet интеграция
Вашата дестинация адрес, различен от RFC1918, и не сте активирали Route All? Има ли NSG, блокиращ излизането от вашата интеграционна подмрежа? Ако преминавате през Azure ExpressRoute или VPN, вашият локален шлюз конфигуриран ли е да маршрутизира трафик обратно към Azure? Ако можете да достигнете до крайни точки във вашата виртуална мрежа, но не и локално, проверете вашите маршрути. Имате ли достатъчно разрешения, за да зададете делегиране в подмрежата за интеграция? По време на регионалната конфигурация на VNet Integration, вашата интеграционна подмрежа се делегира на Microsoft.Web/serverFarms. Потребителският интерфейс за интегриране на VNet автоматично делегира подмрежата на Microsoft.Web/serverFarms. Ако вашият акаунт няма достатъчно мрежови разрешения, за да зададете делегиране, ще ви трябва някой, който може да задава атрибути на вашата интеграционна подмрежа, за да делегира подмрежата. За да делегирате ръчно подмрежата за интегриране, отидете на потребителския интерфейс на подмрежата на виртуалната мрежа на Azure и задайте делегирането за Microsoft.Web/serverFarms.Интегриране на VNet, изисквано от шлюза
Диапазонът на адресите от точка до сайт в диапазоните на 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)? Шлюзът показва ли, че е активен в портала ? Ако вашият шлюз не работи, върнете го обратно. Сертификатите показват ли, че са синхронизирани или подозирате, че мрежовата конфигурация е променена? Ако вашите сертификати не са синхронизирани или подозирате, че е направена промяна във вашата виртуална мрежа конфигурация, която не е синхронизирана с вашите ASP, изберете Sync Network. Ако преминавате през VPN, локалният шлюз конфигуриран ли е да насочва трафика обратно към Azure? Ако можете да достигнете до крайни точки във вашата виртуална мрежа, но не и локално, проверете вашите маршрути. Опитвате ли се да използвате шлюз за съвместно съществуване, който поддържа както точка към сайт, така и ExpressRoute? Шлюзовете за съвместно съществуване не се поддържат с VNet интеграция.Отстраняването на грешки в мрежата е предизвикателство, защото не можете да видите какво блокира достъпа до конкретна комбинация хост:порт. Някои причини включват:
Имате защитна стена на вашия хост, която предотвратява достъпа до порта на приложението от вашия IP диапазон от точка към сайт. Пресичането на подмрежи често изисква публичен достъп. Целевият ви хост не работи. Приложението ви не работи. Имате грешен IP или име на хост. Приложението ви слуша на различен порт от това, което сте очаквали. Можете да съпоставите идентификатора на вашия процес с порта за слушане, като използвате "netstat -aon" на хоста на крайната точка. Вашите групи за защита на мрежата са конфигурирани по такъв начин, че предотвратяват достъпа до хоста и порта на вашето приложение от вашия IP от точка към сайт диапазон.Не знаете какъв адрес всъщност използва вашето приложение. Това може да бъде всеки адрес в подмрежата за интеграция или диапазон от адреси от точка до сайт, така че трябва да разрешите достъп от целия адресен диапазон.
Допълнителните стъпки за отстраняване на грешки включват:
Свържете се с виртуална машина във вашата виртуална мрежа и се опитайте да достигнете до вашия ресурс host:port от там. За да тествате за TCP достъп, използвайте командата на PowerShell test-netconnection. Синтаксисът е: име на хост за тест-мрежова връзка [незадължително: -Port]Изведете приложение на виртуална машина и тествайте достъпа до този хост и порт от конзолата от вашето приложение, като използвате tcpping. Локални ресурсиАко приложението ви може Не достигате до локален ресурс, проверете дали можете да достигнете до ресурса от вашата виртуална мрежа. Използвайте командата test-netconnection PowerShell, за да проверите за TCP достъп. Ако вашата VM не може да достигне до вашия локален ресурс, вашата VPN или ExpressRoute връзка може да не е конфигурирана правилно.
Ако вашата хоствана във виртуална мрежа виртуална машина може да достигне до вашата локална система, но приложението ви не може, причината вероятно е една от следните причини:
Вашите маршрути не са конфигурирани с вашата подмрежа или диапазони от адреси от точка до сайт във вашия локален шлюз. Вашите групи за мрежова сигурност блокират достъпа за вашия IP диапазон от точка до сайт. Вашите локални защитни стени блокират трафик от вашия IP обхват от точка до сайт. Опитвате се да достигнете до адрес, който не е RFC 1918, като използвате функцията за регионална интеграция на VNet.За да научите повече за работата в мрежа и функциите на Azure: