Funzionalità di rete del servizio appApp Service networking features

Le applicazioni nel servizio app Azure possono essere distribuite in diversi modi.Applications in the Azure App Service can be deployed in multiple ways. Per impostazione predefinita, le app ospitate dal servizio app sono direttamente accessibili a Internet e possono raggiungere solo endpoint ospitati da Internet.By default, App Service hosted apps are directly internet accessible and can only reach internet hosted endpoints. Molte applicazioni dei clienti, tuttavia, devono controllare il traffico di rete in ingresso e in uscita.Many customer applications however need to control the inbound and outbound network traffic. Nel servizio app sono disponibili diverse funzionalità per soddisfare queste esigenze.There are several features available in the App Service to satisfy those needs. La sfida è conoscere la funzionalità da utilizzare per risolvere un determinato problema.The challenge is knowing what feature should be used to solve a given problem. Questo documento è destinato a consentire ai clienti di determinare la funzionalità da usare in base ad alcuni casi d'uso di esempio.This document is intended to help customers determine what feature should be used based on some example use cases.

Esistono due tipi di distribuzione principali per il servizio app Azure.There are two primary deployment types for the Azure App Service. È disponibile il servizio pubblico multi-tenant che ospita i piani di servizio app negli SKU di prezzo gratuito, condiviso, Basic, standard, Premium e Premiumv2.There is the multi-tenant public service, which hosts App Service plans in the Free, Shared, Basic, Standard, Premium, and Premiumv2 pricing SKUs. A questo punto, è presente la ambiente del servizio app del singolo tenant, che ospita i piani di servizio App SKU isolati direttamente nella rete virtuale di Azure (VNet).Then there is the single tenant App Service Environment(ASE), which hosts Isolated SKU App Service plans directly in your Azure Virtual Network (VNet). Le funzionalità usate variano a seconda che si trovino in un servizio multi-tenant o in un ambiente del servizio app.The features you use will vary on if you are in the multi-tenant service or in an ASE.

Funzionalità di rete del servizio app multi-tenantMulti-tenant App Service networking features

Il servizio app Azure è un sistema distribuito.The Azure App Service is a distributed system. I ruoli che gestiscono le richieste HTTP/HTTPS in ingresso sono detti front-end.The roles that handle incoming HTTP/HTTPS requests are called front-ends. I ruoli che ospitano il carico di lavoro del cliente sono detti thread di lavoro.The roles that host the customer workload are called workers. Tutti i ruoli in una distribuzione del servizio app sono presenti in una rete multi-tenant.All of the roles in an App Service deployment exist in a multi-tenant network. Poiché nella stessa unità di scala del servizio app sono presenti molti clienti diversi, non è possibile connettere la rete del servizio app direttamente alla rete.Because there are many different customers in the same App Service scale unit, you cannot connect the App Service network directly to your network. Anziché connettere le reti, sono necessarie funzionalità per gestire i diversi aspetti della comunicazione delle applicazioni.Instead of connecting the networks, we need features to handle the different aspects of application communication. Le funzionalità che gestiscono le richieste all'app non possono essere usate per risolvere i problemi quando si effettuano chiamate dall'app.The features that handle requests TO your app can't be used to solve problems when making calls FROM your app. Analogamente, le funzionalità che risolvono i problemi per le chiamate dall'app non possono essere usate per risolvere i problemi dell'app.Likewise, the features that solve problems for calls FROM your app can't be used to solve problems TO your app.

Funzionalità in ingressoInbound features Funzionalità in uscitaOutbound features
Indirizzo assegnato dall'appApp assigned address Connessioni ibrideHybrid Connections
Restrizioni di accessoAccess Restrictions Integrazione VNet necessaria per il gatewayGateway required VNet Integration
Endpoint di servizioService Endpoints Integrazione di VNet (anteprima)VNet Integration (preview)

Se non diversamente specificato, tutte le funzionalità possono essere usate insieme.Unless otherwise stated, all of the features can be used together. È possibile combinare le funzionalità per risolvere i diversi problemi.You can mix the features to solve your various problems.

Casi d'uso e funzionalitàUse case and features

Per ogni caso di utilizzo specifico, è possibile risolvere il problema in alcuni modi.For any given use case, there can be a few ways to solve the problem. La funzionalità giusta da usare è a volte dovuta a motivi oltre al solo caso d'uso.The right feature to use is sometimes due to reasons beyond just the use case itself. I seguenti casi di utilizzo in ingresso suggeriscono come usare le funzionalità di rete del servizio app per risolvere i problemi relativi al controllo del traffico verso l'app.The following inbound use cases suggest how to use App Service networking features to solve problems around controlling traffic going to your app.

Casi di utilizzo in ingressoInbound use cases FunzionalitàFeature
Supportare le esigenze SSL basate su IP per l'appSupport IP-based SSL needs for your app indirizzo assegnato dall'appapp assigned address
Indirizzo in ingresso non condiviso e dedicato per l'appNot shared, dedicated inbound address for your app indirizzo assegnato dall'appapp assigned address
Limitare l'accesso all'app da un set di indirizzi ben definitiRestrict access to your app from a set of well-defined addresses Restrizioni di accessoAccess Restrictions
Esporre l'app in indirizzi IP privati nella VNetExpose my app on private IPs in my VNet Ambiente del servizio app con bilanciamento del carico internoILB ASE
Gateway applicazione con endpoint di servizioApplication Gateway with service endpoints
Limitare l'accesso all'app dalle risorse in una VNetRestrict access to my app from resources in a VNet Endpoint di servizioService Endpoints
Ambiente del servizio app con bilanciamento del carico internoILB ASE
Esporre l'app in un indirizzo IP privato nella VNetExpose my app on a private IP in my VNet Ambiente del servizio app con bilanciamento del carico internoILB ASE
IP privato per il traffico in ingresso in un gateway applicazione con endpoint di servizioprivate IP for inbound on an Application Gateway with service endpoints
Proteggi l'app con un WAFProtect my app with a WAF Gateway applicazione + ambiente del servizio app ILBApplication Gateway + ILB ASE
Gateway applicazione con endpoint di servizioApplication Gateway with service endpoints
Sportello anteriore di Azure con restrizioni di accessoAzure Front Door with Access Restrictions
Bilanciare il carico del traffico verso le app personali in aree diverseLoad balance traffic to my apps in different regions Sportello anteriore di Azure con restrizioni di accessoAzure Front Door with Access Restrictions
Bilanciare il carico del traffico nella stessa areaLoad balance traffic in the same region Gateway applicazione con endpoint di servizioApplication Gateway with service endpoints

I seguenti casi di utilizzo in uscita suggeriscono come usare le funzionalità di rete del servizio app per risolvere le esigenze di accesso in uscita per l'app.The following outbound use cases suggest how to use App Service networking features to solve outbound access needs for your app.

Casi di utilizzo in uscitaOutbound use cases FunzionalitàFeature
Accedere alle risorse in una Rete in ingresso virtuale di Azure nella stessa areaAccess resources in an Azure Virtual Network in the same region Integrazione rete virtualeVNet Integration
ASEASE
Accedere alle risorse in una Rete in ingresso virtuale di Azure in un'area diversaAccess resources in an Azure Virtual Network in a different region Integrazione VNet necessaria per il gatewayGateway required VNet Integration
Peering ASE e VNetASE and VNet peering
Accedere alle risorse protette con gli endpoint di servizioAccess resources secured with service endpoints Integrazione rete virtualeVNet Integration
ASEASE
Accedere alle risorse in una rete privata non connessa ad AzureAccess resources in a private network not connected to Azure Connessioni ibrideHybrid Connections
Accedere alle risorse tra circuiti ExpressRouteAccess resources across ExpressRoute circuits Integrazione di VNet (limitata agli indirizzi RFC 1918 per il momento)VNet Integration (restricted to RFC 1918 addresses for now)
ASEASE

Comportamento di rete predefinitoDefault networking behavior

Le unità di scala del servizio app Azure supportano molti clienti in ogni distribuzione.The Azure App Service scale units support many customers in each deployment. I piani di SKU gratuito e condiviso ospitano i carichi di lavoro dei clienti sui ruoli di lavoro multi-tenant.The Free and Shared SKU plans host customer workloads on multi-tenant workers. I piani Basic e superiori ospitano i carichi di lavoro dei clienti dedicati a un solo piano di servizio app (ASP).The Basic, and above plans host customer workloads that are dedicated to only one App Service plan (ASP). Se si dispone di un piano di servizio app standard, tutte le app del piano vengono eseguite nello stesso thread di lavoro.If you had a Standard App Service plan, then all of the apps in that plan will run on the same worker. Se il ruolo di lavoro viene scalato in orizzontale, tutte le app in tale ASP verranno replicate in un nuovo ruolo di lavoro per ogni istanza di ASP.If you scale out the worker, then all of the apps in that ASP will be replicated on a new worker for each instance in your ASP. I thread di lavoro usati per Premiumv2 sono diversi da quelli usati per gli altri piani.The workers that are used for Premiumv2 are different from the workers used for the other plans. Ogni distribuzione del servizio app ha un indirizzo IP usato per tutto il traffico in ingresso per le app nella distribuzione del servizio app.Each App Service deployment has one IP address that is used for all of the inbound traffic to the apps in that App Service deployment. Esistono tuttavia da 4 a 11 indirizzi usati per eseguire chiamate in uscita.There are however anywhere from 4 to 11 addresses used for making outbound calls. Questi indirizzi sono condivisi da tutte le app presenti nella distribuzione del servizio app.These addresses are shared by all of the apps in that App Service deployment. Gli indirizzi in uscita sono diversi in base ai diversi tipi di lavoro.The outbound addresses are different based on the different worker types. Questo significa che gli indirizzi usati dagli ASP gratuito, condiviso, Basic, standard e Premium sono diversi dagli indirizzi usati per le chiamate in uscita da Premiumv2 ASP.That means that the addresses used by the Free, Shared, Basic, Standard and Premium ASPs are different than the addresses used for outbound calls from the Premiumv2 ASPs. Se si osservano le proprietà dell'app, è possibile visualizzare gli indirizzi in ingresso e in uscita usati dall'app.If you look in the properties for your app, you can see the inbound and outbound addresses that are used by your app. Se è necessario bloccare una dipendenza con un ACL IP, usare possibleOutboundAddresses.If you need to lock down a dependency with an IP ACL, use the possibleOutboundAddresses.

Proprietà dell'app

Il servizio app include diversi endpoint usati per gestire il servizio.App Service has a number of endpoints that are used to manage the service. Questi indirizzi vengono pubblicati in un documento separato e si trovano anche nel tag del servizio IP AppServiceManagement.Those addresses are published in a separate document and are also in the AppServiceManagement IP service tag. Il tag AppServiceManagement viene usato solo con un ambiente del servizio app (ASE) in cui è necessario consentire tale traffico.The AppServiceManagement tag is only used with an App Service Environment (ASE) where you need to allow such traffic. Gli indirizzi in ingresso del servizio app vengono rilevati nel tag del servizio IP di AppService.The App Service inbound addresses are tracked in the AppService IP service tag. Non è presente alcun tag del servizio IP che contiene gli indirizzi in uscita usati dal servizio app.There is no IP service tag that contains the outbound addresses used by App Service.

Diagramma in ingresso e in uscita del servizio app

Indirizzo assegnato dall'appApp assigned address

La funzionalità di indirizzo assegnato dall'app è una propaggine della funzionalità SSL basata su IP ed è accessibile tramite la configurazione di SSL con l'app.The app assigned address feature is an offshoot of the IP-based SSL capability and is accessed by setting up SSL with your app. Questa funzionalità può essere usata per le chiamate SSL basate su IP, ma può essere usata anche per fornire all'app un indirizzo che possiede solo.This feature can be used for IP-based SSL calls but it can also be used to give your app an address that only it has.

Diagramma degli indirizzi assegnati all'app

Quando si usa un indirizzo assegnato dall'app, il traffico passa ancora attraverso gli stessi ruoli front-end che gestiscono tutto il traffico in ingresso nell'unità di scala del servizio app.When you use an app assigned address, your traffic still goes through the same front-end roles that handle all of the incoming traffic into the App Service scale unit. L'indirizzo assegnato all'app, tuttavia, viene usato solo dall'app.The address that is assigned to your app however, is only used by your app. I casi d'uso per questa funzionalità sono i seguenti:The use cases for this feature are to:

  • Supportare le esigenze SSL basate su IP per l'appSupport IP-based SSL needs for your app
  • Imposta un indirizzo dedicato per l'app che non è condiviso con altroSet a dedicated address for your app that is not shared with anything else

Per informazioni su come impostare un indirizzo nell'app, vedere l'esercitazione sulla configurazione di SSL basato su IP.You can learn how to set an address on your app with the tutorial on Configuring IP based SSL.

Restrizioni di accessoAccess Restrictions

La funzionalità restrizioni di accesso consente di filtrare le richieste in ingresso in base all'indirizzo IP di origine.The Access Restrictions capability lets you filter inbound requests based on the origination IP address. L'azione di filtro si verifica nei ruoli front-end che sono upstream dai rotoli di lavoro in cui sono in esecuzione le app.The filtering action takes place on the front-end roles that are upstream from the worker rolls where your apps are running. Poiché i ruoli front-end sono upstream dai ruoli di lavoro, la funzionalità restrizioni di accesso può essere considerata come protezione a livello di rete per le app.Since the front-end roles are upstream from the workers, the Access Restrictions capability can be regarded as network level protection for your apps. La funzionalità consente di compilare un elenco di blocchi di indirizzi allow e Deny che vengono valutati in ordine di priorità.The feature allows you to build a list of allow and deny address blocks that are evaluated in priority order. È simile alla funzionalità del gruppo di sicurezza di rete (NSG) presente nella rete di Azure.It is similar to the Network Security Group (NSG) feature that exists in Azure Networking. È possibile usare questa funzionalità in un ambiente del servizio app o nel servizio multi-tenant.You can use this feature in an ASE or in the multi-tenant service. Quando viene usato con un ambiente del servizio app ILB, è possibile limitare l'accesso da blocchi di indirizzi privati.When used with an ILB ASE, you can restrict access from private address blocks.

Restrizioni di accesso

La funzionalità restrizioni di accesso è utile negli scenari in cui si vuole limitare gli indirizzi IP che possono essere usati per raggiungere l'app.The Access Restrictions feature helps in scenarios where you want to restrict the IP addresses that can be used to reach your app. Tra i casi d'uso per questa funzionalità:Among the use cases for this feature are:

  • Limitare l'accesso all'app da un set di indirizzi ben definitiRestrict access to your app from a set of well-defined addresses
  • Limitare l'accesso in modo che arrivi attraverso un servizio di bilanciamento del carico, ad esempio front door di Azure.Restrict access to coming through a load-balancing service, such as Azure Front Door. Se si vuole bloccare il traffico in ingresso verso la porta anteriore di Azure, creare regole per consentire il traffico da 147.243.0.0/16 e 2a01:111:2050::/44.If you wanted to lock down your inbound traffic to Azure Front Door, create rules to allow traffic from 147.243.0.0/16 and 2a01:111:2050::/44.

Limitazioni di accesso con sportello anteriore

Se si vuole bloccare l'accesso all'app in modo che possa essere raggiunto solo dalle risorse nella rete virtuale di Azure (VNet), è necessario un indirizzo pubblico statico in qualunque sia l'origine nel VNet.If you wish to lock down access to your app so that it can only be reached from resources in your Azure Virtual Network (VNet), you need a static public address on whatever your source is in your VNet. Se le risorse non dispongono di un indirizzo pubblico, è consigliabile utilizzare la funzionalità endpoint del servizio.If the resources do not have a public address, you should use the Service Endpoints feature instead. Informazioni su come abilitare questa funzionalità con l'esercitazione sulla configurazione delle restrizioni di accesso.Learn how to enable this feature with the tutorial on Configuring Access Restrictions.

Endpoint di servizioService endpoints

Gli endpoint di servizio consentono di bloccare l'accesso in ingresso all'app in modo che l'indirizzo di origine debba provenire da un set di subnet selezionato.Service endpoints allows you to lock down inbound access to your app such that the source address must come from a set of subnets that you select. Questa funzionalità funziona insieme alle restrizioni di accesso IP.This feature works in conjunction with the IP Access Restrictions. Gli endpoint di servizio vengono impostati nella stessa esperienza utente delle restrizioni di accesso IP.Service endpoints are set in the same user experience as the IP Access Restrictions. È possibile compilare un elenco Consenti/Nega di regole di accesso che include indirizzi pubblici e subnet nella reti virtuali.You can build an allow/deny list of access rules that includes public addresses as well as subnets in your VNets. Questa funzionalità supporta scenari come:This feature supports scenarios such as:

Endpoint del servizio

  • Configurazione di un gateway applicazione con l'app per bloccare il traffico in ingresso verso l'appSetting up an Application Gateway with your app to lock down inbound traffic to your app
  • Limitazione dell'accesso all'app alle risorse nella VNet.Restricting access to your app to resources in your VNet. Questo può includere VM, gli ambienti o anche altre app che usano l'integrazione VNetThis can include VMs, ASEs, or even other apps that use VNet Integration

endpoint di servizio con il gateway applicazione

Per altre informazioni sulla configurazione degli endpoint di servizio con l'app, vedere l'esercitazione sulla configurazione delle restrizioni di accesso agli endpoint di servizioYou can learn more about configuring service endpoints with your app in the tutorial on Configuring Service Endpoint Access Restrictions

Connessioni ibrideHybrid Connections

Il servizio app Connessioni ibride consente alle app di effettuare chiamate in uscita agli endpoint TCP specificati.App Service Hybrid Connections enables your apps to make outbound calls to specified TCP endpoints. L'endpoint può trovarsi in locale, in una VNet o ovunque, che consente il traffico in uscita verso Azure sulla porta 443.The endpoint can be on-premises, in a VNet or anywhere that allows outbound traffic to Azure on port 443. La funzionalità richiede l'installazione di un agente di inoltro denominato Gestione connessione ibrida (HCM) in un host Windows Server 2012 o versione successiva.The feature requires the installation of a relay agent called the Hybrid Connection Manager (HCM) on a Windows Server 2012 or newer host. Gestione connessione ibrida deve essere in grado di raggiungere il relè di Azure sulla porta 443.The HCM needs to be able to reach Azure Relay at port 443. È possibile scaricare gestione connessione ibrida dal servizio app Connessioni ibride interfaccia utente nel portale.The HCM can be downloaded from the App Service Hybrid Connections UI in the portal.

Flusso di rete Connessioni ibride

Il servizio app Connessioni ibride funzionalità è basato sulla funzionalità Connessioni ibride di inoltro di Azure.The App Service Hybrid Connections feature is built on the Azure Relay Hybrid Connections capability. Il servizio app usa un modulo specializzato della funzionalità che supporta solo la creazione di chiamate in uscita dall'app a un host e una porta TCP.App Service uses a specialized form of the feature that only supports making outbound calls from your app to a TCP host and port. Questo host e la porta devono essere risolti solo nell'host in cui è installato Gestione connessione ibrida.This host and port only need to resolve on the host where the HCM is installed. Quando l'app, nel servizio app, esegue una ricerca DNS sull'host e sulla porta definiti nella connessione ibrida, il traffico viene reindirizzato automaticamente per passare attraverso la connessione ibrida e il Gestione connessione ibrida.When the app, in App Service, does a DNS lookup on the host and port defined in your Hybrid Connection, the traffic is automatically redirected to go through the Hybrid Connection and out the Hybrid Connection Manager. Per altre informazioni su Connessioni ibride, vedere la documentazione sul servizio App connessioni ibrideTo learn more about Hybrid Connections, read the documentation on App Service Hybrid Connections

Questa funzionalità viene in genere utilizzata per:This feature is commonly used to:

  • Accedere alle risorse in reti private non connesse ad Azure con una VPN o ExpressRouteAccess resources in private networks that are not connected to Azure with a VPN or ExpressRoute
  • Supporto del lift-and-Shift delle app locali al servizio app senza dover spostare anche i database di supportoSupport lift and shift of on-premises apps to App Service without needing to also move supporting databases
  • Fornire in modo sicuro l'accesso a un singolo host e a una porta per ogni connessione ibrida.Securely provide access to a single host and port per Hybrid Connection. La maggior parte delle funzionalità di rete aprono l'accesso a una rete e con Connessioni ibride si dispone solo dell'host e della porta che è possibile raggiungere.Most networking features open access to a network and with Hybrid Connections you only have the single host and port you can reach.
  • Scenari di copertura non inclusi in altri metodi di connettività in uscitaCover scenarios not covered by other outbound connectivity methods
  • Eseguire lo sviluppo nel servizio app in cui le app possono sfruttare facilmente le risorse localiPerform development in App Service where the apps can easily leverage on-premises resources

Poiché la funzionalità consente l'accesso alle risorse locali senza un foro del firewall in ingresso, è popolare con gli sviluppatori.Because the feature enables access to on-premises resources without an inbound firewall hole, it is popular with developers. Le altre funzionalità di rete del servizio app in uscita sono correlate alla rete virtuale di Azure.The other outbound App Service networking features are very Azure Virtual Networking related. Connessioni ibride non ha una dipendenza da un VNet e può essere usato per una più ampia gamma di esigenze di rete.Hybrid Connections does not have a dependency on going through a VNet and can be used for a wider variety of networking needs. È importante notare che il servizio app Connessioni ibride funzionalità non è importante o non è in grado di capire cosa si sta facendo sopra.It is important to note that the App Service Hybrid Connections feature does not care or know what you are doing on top of it. Ciò significa che è possibile usarlo per accedere a un database, a un servizio Web o a un socket TCP arbitrario in un mainframe.That is to say that you can use it to access a database, a web service or an arbitrary TCP socket on a mainframe. La funzionalità essenzialmente effettua il tunneling dei pacchetti TCP.The feature essentially tunnels TCP packets.

Sebbene Connessioni ibride sia popolare per lo sviluppo, viene usato anche in numerose applicazioni di produzione.While Hybrid Connections is popular for development, it is also used in numerous production applications as well. È ideale per accedere a un servizio Web o a un database, ma non è appropriato per le situazioni che coinvolgono la creazione di molte connessioni.It is great for accessing a web service or database, but is not appropriate for situations involving creating many connections.

Integrazione VNet necessaria per il gatewayGateway required VNet Integration

La funzionalità di integrazione VNet del servizio app del gateway consente all'app di effettuare richieste in uscita in una rete virtuale di Azure.The gateway required App Service VNet Integration feature enables your app to make outbound requests into an Azure Virtual Network. La funzionalità funziona connettendo l'host in cui l'app è in esecuzione in un gateway di rete virtuale nella VNet con una VPN da punto a sito.The feature works by connecting the host your app is running on to a Virtual Network gateway on your VNet with a point-to-site VPN. Quando si configura la funzionalità, l'app ottiene uno degli indirizzi da punto a sito assegnati a ogni istanza.When you configure the feature, your app gets one of the point-to-site addresses assigned to each instance. Questa funzionalità consente di accedere alle risorse in una reti virtuali classica o Gestione risorse in qualsiasi area.This feature enables you to access resources in either Classic or Resource Manager VNets in any region.

Integrazione VNet necessaria per il gateway

Questa funzionalità consente di risolvere il problema dell'accesso alle risorse in altri reti virtuali e può anche essere usato per connettersi tramite un VNet a un altro reti virtuali o anche in locale.This feature solves the problem of accessing resources in other VNets and can even be used to connect through a VNet to either other VNets or even on-premises. Non funziona con ExpressRoute connesso reti virtuali ma con le reti connesse VPN da sito a sito.It does not work with ExpressRoute connected VNets but does with Site-to-site VPN connected networks. Non è in genere consigliabile usare questa funzionalità da un'app in un ambiente del servizio app (ASE), perché l'ambiente del servizio app si trova già nella VNet.It is normally inappropriate to use this feature from an app in an App Service Environment (ASE), because the ASE is already in your VNet. I casi di utilizzo che questa funzionalità risolve sono:The use cases that this feature solves are:

  • Accesso alle risorse negli indirizzi IP privati nelle reti virtuali di AzureAccessing resources on private IPs in your Azure virtual networks
  • Accesso alle risorse locali se è presente una VPN da sito a sitoAccessing resources on-premises if there is a site-to-site VPN
  • Accesso alle risorse in reti virtuali con peeringAccessing resources in peered VNets

Quando questa funzionalità è abilitata, l'app userà il server DNS con cui è configurata la VNet di destinazione.When this feature is enabled, your app will use the DNS server that the destination VNet is configured with. Per altre informazioni su questa funzionalità, vedere la documentazione relativa all' integrazione di VNet nel servizio app.You can read more on this feature in the documentation on App Service VNet Integration.

Integrazione rete virtualeVNet Integration

La funzionalità di integrazione VNet necessaria per il gateway è molto utile, ma non risolve l'accesso alle risorse tra ExpressRoute.The gateway required VNet Integration feature is very useful but still does not solve accessing resources across ExpressRoute. Oltre a dover raggiungere le connessioni ExpressRoute, è necessario che le app siano in grado di effettuare chiamate a servizi protetti con endpoint di servizio.On top of needing to reach across ExpressRoute connections, there is a need for apps to be able to make calls to service endpoint secured services. Per risolvere entrambe le esigenze aggiuntive, è stata aggiunta un'altra funzionalità di integrazione VNet.To solve both of those additional needs, another VNet Integration capability was added. La nuova funzionalità di integrazione VNet consente di collocare il back-end dell'app in una subnet in un Gestione risorse VNet nella stessa area.The new VNet Integration feature enables you to place the backend of your app in a subnet in a Resource Manager VNet in the same region. Questa funzionalità non è disponibile da un ambiente del servizio app, che è già presente in una VNet.This feature is not available from an App Service Environment, which is already in a VNet. Questa funzionalità offre i vantaggi seguenti:This feature enables:

  • Accesso alle risorse in Gestione risorse reti virtuali nella stessa areaAccessing resources in Resource Manager VNets in the same region
  • Accesso alle risorse protette con gli endpoint di servizioAccessing resources that are secured with service endpoints
  • Accesso alle risorse accessibili attraverso connessioni VPN o ExpressRouteAccessing resources that are accessible across ExpressRoute or VPN connections

Integrazione rete virtuale

Questa funzionalità è in anteprima e non deve essere usata per i carichi di lavoro di produzione.This feature is in preview and should not be used for production workloads. Per altre informazioni su questa funzionalità, leggere la documentazione relativa all' integrazione di VNet nel servizio app.To learn more about this feature, read the docs on App Service VNet Integration.

Ambiente del servizio appApp Service Environment

Un ambiente del servizio app (ASE) è una distribuzione a tenant singolo del servizio app Azure eseguito nella VNet.An App Service Environment (ASE) is a single tenant deployment of the Azure App Service that runs in your VNet. L'ambiente del servizio app consente casi d'uso, ad esempio:The ASE enables use cases such as:

  • Accedere alle risorse nella VNetAccess resources in your VNet
  • Accedere alle risorse tra ExpressRouteAccess resources across ExpressRoute
  • Esporre le app con un indirizzo privato nella VNetExpose your apps with a private address in your VNet
  • Accedere alle risorse tra gli endpoint del servizioAccess resources across service endpoints

Con un ambiente del servizio app, non è necessario usare funzionalità come l'integrazione VNet o gli endpoint di servizio perché l'ambiente del servizio app è già presente nella VNet.With an ASE, you do not need to use features like VNet Integration or service endpoints because the ASE is already in your VNet. Se si vuole accedere a risorse come SQL o archiviazione su endpoint di servizio, abilitare gli endpoint di servizio nella subnet dell'ambiente del servizio app.If you want to access resources like SQL or Storage over service endpoints, enable service endpoints on the ASE subnet. Se si desidera accedere alle risorse in VNet, non è necessaria alcuna configurazione aggiuntiva.If you want to access resources in the VNet, there is no additional configuration required. Se si vuole accedere alle risorse tra ExpressRoute, si è già in VNet e non è necessario configurare nulla nell'ambiente del servizio app o nelle app al suo interno.If you want to access resources across ExpressRoute, you are already in the VNet and do not need to configure anything on the ASE or the apps inside it.

Poiché le app in un ambiente del servizio app ILB possono essere esposte in un indirizzo IP privato, è possibile aggiungere facilmente i dispositivi WAF per esporre solo le app che si desidera a Internet e proteggere il resto.Because the apps in an ILB ASE can be exposed on a private IP address, you can easily add WAF devices to expose just the apps that you want to the internet and keep the rest secure. Si presta allo sviluppo semplificato di applicazioni multilivello.It lends itself to easy development of multi-tier applications.

Ci sono alcuni elementi che non sono ancora possibili dal servizio multi-tenant proveniente da un ambiente del servizio app.There are some things that are not yet possible from the multi-tenant service that are from an ASE. Che includono:Those include things like:

  • Esporre le app in un indirizzo IP privatoExpose your apps on a private IP address
  • Proteggere tutto il traffico in uscita con controlli di rete che non fanno parte dell'appSecure all outbound traffic with network controls that are not a part of your app
  • Ospitare le app in un singolo servizio tenantHost your apps in a single tenant service
  • Scalabilità fino a molte più istanze di quelle possibili nel servizio multi-tenantScale up to many more instances than are possible in the multi-tenant service
  • Caricare i certificati client della CA privata per l'uso da app con endpoint protetti da un'autorità di certificazione privataLoad private CA client certificates for use by your apps with private CA secured endpoints
  • Forza TLS 1,1 tra tutte le app ospitate nel sistema senza alcuna possibilità di disabilitare a livello di appForce TLS 1.1 across all of the apps hosted in the system without any ability to disable at the app level
  • Fornire un indirizzo in uscita dedicato per tutte le app nell'ambiente del servizio app non condivise con nessun clienteProvide a dedicated outbound address for all of the apps in your ASE that is not shared with any customers

Ambiente del servizio app in una VNet

L'ambiente del servizio app offre la migliore soluzione per l'hosting di app isolate e dedicate, ma presenta alcuni problemi di gestione.The ASE provides the best story around isolated and dedicated app hosting but does come with some management challenges. Alcuni aspetti da considerare prima di usare un ambiente del servizio app operativo sono:Some things to consider before using an operational ASE are:

  • Un ambiente del servizio app viene eseguito all'interno della VNet, ma ha dipendenze esterne al VNet.An ASE runs inside your VNet but does have dependencies outside of the VNet. Tali dipendenze devono essere consentite.Those dependencies must be allowed. Per altre informazioni, vedere considerazioni sulla rete per un ambiente del servizio appRead more in Networking considerations for an App Service Environment
  • Un ambiente del servizio app non si ridimensiona immediatamente come il servizio multi-tenant.An ASE does not scale immediately like the multi-tenant service. È necessario anticipare le esigenze di scalabilità anziché ridimensionare in modo reattivo.You need to anticipate scaling needs rather than reactively scaling.
  • A un ambiente del servizio app è associato un costo superiore.An ASE does have a higher up front cost associated with it. Per ottenere il massimo dall'ambiente del servizio app, è consigliabile pianificare l'inserimento di molti carichi di lavoro in un ambiente del servizio app piuttosto che utilizzarlo per piccoli sforzi.In order to get the most out of your ASE, you should plan on putting many workloads into one ASE rather than have it used for small efforts
  • Le app in un ambiente del servizio app non possono limitare l'accesso ad alcune app in un ambiente del servizio app e non in altre.The apps in an ASE cannot restrict access to some apps in an ASE and not others.
  • L'ambiente del servizio app si trova in una subnet e tutte le regole di rete vengono applicate a tutto il traffico da e verso l'ambiente del servizio app.The ASE is in a subnet and any networking rules apply to all the traffic to and from that ASE. Se si vuole assegnare regole di traffico in ingresso per una sola app, usare le restrizioni di accesso.If you want to assign inbound traffic rules for just one app, use Access Restrictions.

Combinazione di funzionalitàCombining features

Le funzionalità indicate per il servizio multi-tenant possono essere usate insieme per risolvere casi d'uso più complessi.The features noted for the multi-tenant service can be used together to solve more elaborate use cases. Due dei casi d'uso più comuni sono descritti qui, ma sono solo esempi.Two of the more common use cases are described here but they are just examples. Grazie alla conoscenza delle diverse funzionalità, è possibile risolvere quasi tutte le esigenze di architettura del sistema.By understanding what the various features do, you can solve nearly all of your system architecture needs.

Inserire l'app in una VNetInject app into a VNet

Una richiesta comune riguarda come inserire l'app in una VNet.A common request is on how to put your app in a VNet. L'inserimento dell'app in una VNet significa che gli endpoint in ingresso e in uscita per un'app si trovano all'interno di una VNet.Putting your app into a VNet means that the inbound and outbound endpoints for an app are within a VNet. L'ambiente del servizio app offre la soluzione migliore per risolvere questo problema, ma è possibile ottenere la maggior parte degli elementi necessari con nel servizio multi-tenant combinando le funzionalità.The ASE provides the best solution to solve this problem but, you can get most of what is needed with in the multi-tenant service by combining features. È ad esempio possibile ospitare applicazioni Intranet solo con indirizzi in ingresso e in uscita privati per:For example, you can host intranet only applications with private inbound and outbound addresses by:

  • Creazione di un gateway applicazione con indirizzo privato in entrata e in uscitaCreating an Application Gateway with private inbound and outbound address
  • Sicurezza del traffico in ingresso verso l'app con gli endpoint di servizioSecuring inbound traffic to your app with service endpoints
  • Usare la nuova integrazione di VNet per fare in modo che il back-end dell'app si trovi nella VNetUse the new VNet Integration so the backend of your app is in your VNet

Questo stile di distribuzione non fornisce un indirizzo dedicato per il traffico in uscita verso Internet o consente di bloccare tutto il traffico in uscita dall'app.This deployment style would not give you a dedicated address for outbound traffic to the internet or give you the ability to lock down all outbound traffic from your app. Questo stile di distribuzione fornirebbe una gran parte delle operazioni che verrebbero altrimenti apportate con un ambiente del servizio app.This deployment style would give you a much of what you would only otherwise get with an ASE.

Creazione di applicazioni multilivelloCreate multi-tier applications

Un'applicazione multilivello è un'applicazione in cui è possibile accedere alle app back-end dell'API solo dal livello front-end.A multi-tier application is an application where the API backend apps can only be accessed from the front-end tier. Per creare un'applicazione multilivello, è possibile:To create a multi-tier application, you can:

  • Usare l'integrazione di VNet per connettere il back-end dell'app Web front-end a una subnet in una VNetUse VNet Integration to connect the backend of your front-end web app with a subnet in a VNet
  • Usare gli endpoint di servizio per proteggere il traffico in ingresso verso l'app per le API in modo che provenga solo dalla subnet usata dall'app Web front-endUse service endpoints to secure inbound traffic to your API app to only coming from the subnet used by your front-end web app

app multilivello

È possibile avere più app front-end che usano la stessa app per le API usando l'integrazione VNet dalle altre app front-end e gli endpoint di servizio dall'app per le API con le rispettive subnet.You can have multiple front-end apps use the same API app by using VNet Integration from the other front-end apps and service endpoints from the API app with their subnets.