Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
NAT (Virtual Network Address Translation) semplifica la connettività Internet solo in uscita per le reti virtuali. Quando viene configurato in una subnet, per tutta la connettività in uscita vengono usati gli indirizzi IP pubblici statici specificati. Un NAT può essere utile per le app che devono utilizzare un servizio di terze parti che usa un elenco elementi consentiti di indirizzi IP come misura di sicurezza. Per altre informazioni, vedere Che cos'è il gateway NAT di Azure?.
Questa esercitazione illustra come usare i gateway NAT per instradare il traffico in uscita da una funzione attivata da HTTP. Questa funzione consente di controllare il proprio indirizzo IP in uscita. Durante questa esercitazione verranno eseguite le operazioni seguenti:
- Crea rete virtuale
- Creare un'app per le funzioni del piano Premium
- Creare un indirizzo IP pubblico
- Creare un gateway NAT
- Configurare l'app per le funzioni per instradare il traffico in uscita attraverso il gateway NAT
Note
Non è possibile usare un gateway NAT per instradare il traffico in uscita a un account di archiviazione di Azure nella stessa area dell'app per le funzioni. I servizi distribuiti nella stessa area dell'account di archiviazione usano indirizzi IP privati di Azure per la comunicazione. Per ulteriori informazioni, vedere le domande più frequenti sul gateway NAT.
Topologia
Il diagramma seguente illustra l'architettura della soluzione creata:
Funzioni in esecuzione nel piano Premium ha le stesse funzionalità di hosting delle app Web nel servizio app di Azure, che include la funzionalità di integrazione rete virtuale. Per altre informazioni sull'integrazione della rete virtuale, inclusa la risoluzione dei problemi e la configurazione avanzata, vedere Integrare l'app con una rete virtuale di Microsoft Azure.
Prerequisiti
Per questa esercitazione è importante comprendere l'indirizzamento IP e la creazione di subnet. Si può iniziare con questo articolo che illustra le nozioni di base dell'indirizzamento e della creazione di subnet. Molti altri articoli e video sono disponibili online.
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Se è già stata completata l'esercitazione integrare Funzioni con una rete virtuale di Azure, è possibile passare a Creare una funzione trigger HTTP.
Crea rete virtuale
Nel menu del portale di Azure selezionare Crea una risorsa. In Azure Marketplace selezionare Rete>Rete virtuale.
In Crea rete virtuale immettere o selezionare le impostazioni specificate come indicato nella tabella seguente:
Impostazione valore Abbonamento Selezionare la propria sottoscrizione. Gruppo di risorse Selezionare Crea nuovo, immettere myResourceGroup e selezionare OK. Nome Immettere myResourceGroup-vnet. Location Selezionare Stati Uniti orientali. Selezionare Avanti: Indirizzi IP e per Spazio indirizzi IPv4 immettere 10.10.0.0/16.
Selezionare Aggiungi subnet, quindi immettere Tutorial-Net per Nome subnet e 10.10.1.0/24 per Intervallo di indirizzi subnet.
Selezionare Aggiungi e quindi Rivedi e crea. Lasciare le altre impostazioni sui valori predefiniti e selezionare Crea.
In Crea rete virtuale selezionare Crea.
Successivamente, si crea un'app per le funzioni nel piano Premium. Questo piano offre scalabilità serverless, supportando l'integrazione della rete virtuale.
Creare un'app per le funzioni in un piano Premium
Questa esercitazione descrive come creare l'app per le funzioni in un piano Premium. La stessa funzionalità è disponibile anche quando si ospita l'app in un piano a consumo Flex o in un piano dedicato (servizio app).
Note
Per un'esperienza ottimale in questa esercitazione, scegliere .NET per lo stack di runtime e scegliere Windows per il sistema operativo. Creare anche l'app per le funzioni nella stessa area della rete virtuale.
Nel menu del portale di Azure o dalla pagina Home selezionare Crea una risorsa.
Nella pagina Nuovo, selezionare Calcolo>App per le funzioni.
In Selezionare un'opzione di hosting selezionare Funzioni Premium>Selezionare per creare l'app in un piano Premium. In questa opzione di hosting serverless si paga solo per il periodo in cui le funzioni sono in esecuzione. Per altre informazioni sui diversi piani di hosting, vedere Panoramica dei piani.
Nella pagina Informazioni di base usare le impostazioni dell'app per le funzioni specificate nella tabella seguente:
Impostazione Valore consigliato Descrizione Sottoscrizione Sottoscrizione in uso Sottoscrizione in cui viene creata questa nuova app per le funzioni. Gruppo di risorse myResourceGroup Nome del nuovo gruppo di risorse in cui creare l'app per le funzioni. Nome dell'app per le funzioni Nome globalmente univoco Nome che identifica la nuova app per le funzioni. I caratteri validi sono a-z(senza distinzione tra maiuscole e minuscole),0-9e-. Per garantire un nome univoco dell'app, è possibile abilitare facoltativamente Secure unique default hostname, attualmente in anteprima.Distribuire codice o immagine del contenitore? Codice Opzione per la pubblicazione di file di codice o di un contenitore Docker. Sistema operativo Sistema operativo preferito Scegliere Linux o Windows. Stack di runtime Lingua preferita Scegliere un runtime che supporti il linguaggio di programmazione della funzione preferito. Versione Versione della lingua supportata Scegliere una versione supportata del linguaggio di programmazione delle funzioni. Area Area preferita Scegliere un'area nelle vicinanze o vicino ad altri servizi a cui accedono le funzioni. In Dettagli ambiente per Piano Windows o Piano Linux selezionare Crea nuovo, Assegnare un nome al piano di servizio app e selezionare un piano tariffario. Il piano tariffario predefinito è EP1, dove EP è l'acronimo di Elastic Premium. Per altre informazioni, vedere l'elenco di SKU Premium. Quando si eseguono funzioni JavaScript in un piano Premium, è necessario scegliere un'istanza con un minor numero di vCPU. Per altre informazioni, vedere Scegliere piani Premium con core singolo.
A meno che non si voglia abilitare la ridondanza della zona, mantenere il valore predefinito Disabilitato.
Selezionare Avanti: Archiviazione. Nella pagina Archiviazione, creare l'account di archiviazione dell' host predefinito richiesto dall'app per le funzioni. I nomi degli account di archiviazione devono avere una lunghezza compresa tra 3 e 24 caratteri e possono contenere solo numeri e lettere minuscole. È anche possibile usare un account esistente, che deve soddisfare i requisiti dell'account di archiviazione.
A meno che non si abiliti l'integrazione della rete virtuale, selezionare Avanti: Monitoraggio per ignorare la scheda Rete . Nella pagina Monitoraggio immettere le impostazioni seguenti:
Impostazione Valore consigliato Descrizione Abilita gli Approfondimenti sull'Applicazione Sì Abilita l'integrazione predefinita di Application Insights per il monitoraggio del codice delle funzioni. Application Insights Predefinito Crea una risorsa di Application Insights con lo stesso nome di app nell'area più vicina supportata. Espandendo questa impostazione, è possibile cambiare il valore di Nome nuova risorsa oppure scegliere un valore per Località in un'area geografica di Azure per archiviare i dati. Selezionare Rivedi e crea per accettare le impostazioni predefinite per le pagine rimanenti ed esaminare le selezioni di configurazione dell'app.
Nella pagina Rivedi e crea esaminare le impostazioni e quindi selezionare Crea per effettuare il provisioning e distribuire l'app per le funzioni.
Selezionare l'icona Notifiche nell'angolo superiore destro del portale e attendere che venga visualizzato il messaggio La distribuzione è riuscita.
Selezionare Vai alla risorsa per visualizzare la nuova app per le funzioni. È anche possibile selezionare Aggiungi al dashboard. In questo modo è più facile tornare in questa risorsa di app per le funzioni dal dashboard.
Connettere l'app per le funzioni alla rete virtuale
È ora possibile connettere l'app per le funzioni alla rete virtuale.
Nell'app per le funzioni selezionare Rete nel menu a sinistra, quindi in Integrazione rete virtuale selezionare Fare clic qui per configurare.
Nella pagina integrazione rete virtuale selezionare Aggiungi rete virtuale.
In Stato funzionalità di rete usare le impostazioni nella tabella seguente sotto l'immagine:
Impostazione Valore consigliato Descrizione Rete virtuale MyResourceGroup-vnet Questa rete virtuale è quella creata in precedenza. Subnet Creare una nuova subnet Creare una subnet nella rete virtuale da usare per l'app per le funzioni. L'integrazione rete virtuale deve essere configurata per l'uso di una subnet vuota. Nome della subnet Function-Net Nome della nuova subnet. Blocco di indirizzi della rete virtuale 10.10.0.0/16 È necessario avere un solo blocco di indirizzi definito. Blocco di indirizzi della subnet 10.10.2.0/24 Le dimensioni della subnet limitano il numero totale di istanze che l'app per le funzioni del piano Premium può aumentare. Questo esempio usa una subnet /24con 254 indirizzi host disponibili. Questa subnet viene sottoposta a provisioning eccessivo, ma è facile da calcolare.Selezionare OK per aggiungere la subnet. Chiudere le pagine Integrazione rete virtuale e Stato funzionalità di rete per tornare alla pagina dell'app per le funzioni.
L'app per le funzioni può ora accedere alla rete virtuale. Quando la connettività è abilitata, l'impostazione del sito vnetrouteallenabled è impostata su 1. È necessario che questa impostazione del sito o l'impostazione dell'applicazioneWEBSITE_VNET_ROUTE_ALL legacy siano impostate su 1.
Si aggiungerà quindi una funzione attivata tramite HTTP all'app per le funzioni.
Creare una funzione trigger HTTP
Selezionare Funzioni nel menu a sinistra della finestra Funzioni e quindi Aggiungi nel menu in alto.
Nella finestra Nuova funzione selezionare Trigger HTTP e accettare il nome predefinito per Nuova funzione oppure immettere un nuovo nome.
In Codice e test sostituire il codice C# generato dal modello (estensione .csx) con il codice seguente:
#r "Newtonsoft.Json" using System.Net; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Primitives; using Newtonsoft.Json; public static async Task<IActionResult> Run(HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); var client = new HttpClient(); var response = await client.GetAsync(@"https://ifconfig.me"); var responseMessage = await response.Content.ReadAsStringAsync(); return new OkObjectResult(responseMessage); }Questo codice chiama un sito Web esterno che restituisce l'indirizzo IP del chiamante, che in questo caso è questa funzione. Questo metodo consente di determinare facilmente l'indirizzo IP in uscita usato dall'app per le funzioni.
Ora si è pronti per eseguire la funzione e controllare gli indirizzi IP in uscita correnti.
Verificare gli indirizzi IP in uscita correnti
È ora possibile eseguire la funzione. Prima di tutto, controllare il portale e vedere quali indirizzi IP in uscita vengono usati dall'app per le funzioni.
Nell'app per le funzioni selezionare Proprietà e rivedere il campo Indirizzi IP in uscita.
Ora tornare alla funzione di trigger HTTP, selezionare Codice e test e quindi Test/Esegui.
Selezionare Esegui per eseguire la funzione, quindi passare a Output e verificare che l'indirizzo IP nel corpo della risposta HTTP sia uno dei valori degli indirizzi IP in uscita visualizzati in precedenza.
È ora possibile creare un indirizzo IP pubblico e usare un gateway NAT per modificare questo indirizzo IP in uscita.
Creare un indirizzo IP pubblico
Nel gruppo di risorse selezionare Aggiungi, cercare Indirizzo IP pubblico in Azure Marketplace e selezionare Crea. Usare le impostazioni della tabella sotto l'immagine:
Impostazione Valore consigliato Versione indirizzo IP IPv4 SKU Normale Livello Regionale Nome IP in uscita Sottoscrizione verificare che la sottoscrizione sia visualizzata Gruppo di risorse myResourceGroup (o nome assegnato al gruppo di risorse) Ubicazione Stati Uniti orientali (o località assegnata alle altre risorse) Availability Zone (Zona di disponibilità) Nessuna zona Selezionare Crea per inviare la distribuzione.
Al termine della distribuzione, passare alla risorsa indirizzo IP pubblico appena creato e visualizzare l'indirizzo IP in Informazioni generali.
Creare il gateway NAT
A questo punto si creerà il gateway NAT. All'inizio dell'esercitazione precedente sulla rete virtuale, Function-Net era il nome della subnet suggerito e MyResourceGroup-vnet era il nome della rete virtuale suggerito nell'esercitazione.
Nel gruppo di risorse selezionare Aggiungi, cercare gateway NAT in Azure Marketplace e selezionare Crea. Usare le impostazioni nella tabella sotto l'immagine per popolare la scheda Dati principali:
Impostazione Valore consigliato Sottoscrizione Sottoscrizione in uso Gruppo di risorse myResourceGroup (o nome assegnato al gruppo di risorse) Nome del gateway NAT myNatGateway Area Stati Uniti orientali (o località assegnata alle altre risorse) Availability Zone (Zona di disponibilità) Nessuno Selezionare Avanti: IP in uscita. Nel campo Indirizzi IP pubblici selezionare l'indirizzo IP pubblico creato in precedenza. Lasciare deselezionata l'opzione Prefissi IP pubblico.
Selezionare Avanti: Subnet. Selezionare la risorsa myResourceGroup-vnet nel campo Rete virtuale e nella subnet Function-Net.
Selezionare Rivedi e crea e quindi Crea per inviare la distribuzione.
Al termine della distribuzione, il gateway NAT è pronto per instradare il traffico dalla subnet dell'app per le funzioni a Internet.
Verificare i nuovi indirizzi IP in uscita
Ripetere i passaggi precedenti per eseguire di nuovo la funzione. Verrà ora visualizzato l'indirizzo IP in uscita configurato nel NAT visualizzato nell'output della funzione.
Pulire le risorse
Sono state create risorse per completare questa esercitazione. Queste risorse verranno fatturate, a seconda dello stato dell'account e dei prezzi del servizio. Per evitare di incorrere in costi aggiuntivi, eliminare le risorse quando non sono più necessarie.
Nel portale di Azure passare alla pagina Gruppo di risorse.
Per visualizzare tale pagina dalla pagina dell'app per le funzioni, selezionare la scheda Panoramica e quindi selezionare il collegamento sotto Gruppo di risorse.
Per visualizzare tale pagina dal dashboard, selezionare Gruppi di risorse e quindi selezionare il gruppo di risorse usato nell'articolo.
Nella pagina Gruppo di risorse esaminare l'elenco delle risorse incluse e verificare che siano quelle da eliminare.
Selezionare Elimina gruppo di risorse e seguire le istruzioni.
L'eliminazione potrebbe richiedere alcuni minuti. Al termine, viene visualizzata una notifica per pochi secondi. È anche possibile selezionare l'icona a forma di campana nella parte superiore della pagina per visualizzare la notifica.