Azure Functions Tools for Visual Studio

Azure Functions Tools for Visual Studio 2017 è un'estensione di Visual Studio che consente di sviluppare, testare e distribuire funzioni C# in Azure. Se questa è la prima esperienza con Funzioni di Azure, è consigliabile leggere altre informazioni in Introduzione a Funzioni di Azure.

Azure Functions Tools offre i vantaggi seguenti:

  • Modifica, compilazione ed esecuzione di funzioni nel computer di sviluppo locale.
  • Pubblicazione del proprio progetto di Funzioni di Azure direttamente in Azure.
  • Utilizzo di attributi di processi Web per dichiarare associazioni di funzione direttamente nel codice C# anziché mantenere un file function.json separato per le definizioni di associazione.
  • Sviluppo e distribuzione di funzioni C# precompilate. Le funzioni precompilate offrono migliori prestazioni nell'avvio a freddo rispetto alle funzioni basate su script C#.
  • Possibilità di scrivere il codice delle funzioni in C# sfruttando al contempo tutti i vantaggi dello sviluppo in Visual Studio.

Questo argomento illustra come usare Azure Functions Tools for Visual Studio 2017 per sviluppare le funzioni in C#. Spiega anche come pubblicare il progetto in Azure come assembly .NET.

Prerequisiti

Prima di installare Azure Functions Tools è necessario installare Visual Studio 2017 Preview versione 15.3, incluso uno dei carichi di lavoro seguenti:

  • Sviluppo di Azure
  • Sviluppo Web e ASP.NET

Per creare e distribuire funzioni, è necessario disporre anche di quanto segue:

Installare Azure Functions Tools

È possibile scaricare e installare il pacchetto dell'estensione o usare la procedura seguente per installarlo da Visual Studio.

  1. Scegliere Estensioni e aggiornamenti dal menu Strumenti di Visual Studio, quindi selezionare Online > Visual Studio Marketplace e Azure Functions Tools for Visual Studio 2017 e infine fare clic su Scarica.

    Installare Azure Functions Tools for Visual Studio 2017

  2. Chiudere Visual Studio e accettare le richieste per il download e l'installazione dei nuovi strumenti.

Creare un progetto di Funzioni di Azure

Il modello di progetto Funzioni di Azure in Visual Studio crea un progetto che può essere pubblicato in un'app per le funzioni in Azure. Un'app per le funzioni consente di raggruppare le funzioni come un'unità logica per semplificare la gestione, la distribuzione e la condivisione delle risorse.

  1. Fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e quindi scegliere Aggiungi > Nuovo elemento. Selezionare Funzione di Azure nella finestra di dialogo.

  2. Nella finestra di dialogo Nuovo progetto espandere il nodo Visual C# > Cloud, selezionare Funzioni di Azure, digitare un nome per il progetto e fare clic su OK. Il nome dell'app per le funzioni deve essere valido come spazio dei nomi C#, quindi non usare caratteri di sottolineatura, trattini o altri caratteri non alfanumerici.

    Finestra di dialogo Nuovo progetto per creare una funzione in Visual Studio

Configurare il progetto per lo sviluppo locale

Quando si crea un nuovo progetto usando il modello di Funzioni di Azure, si ottiene un progetto C# vuoto che contiene i file seguenti:

  • host.json: consente di configurare l'host di Funzioni. Queste impostazioni si applicano sia durante l'esecuzione in locale che nell'esecuzione in Azure. Per altre informazioni, vedere l'articolo di riferimento su host.json.

  • local.settings.json: mantiene le impostazioni usate quando si esegue Funzioni localmente. Queste impostazioni non vengono usate da Azure, bensì dagli strumenti di base di Funzioni di Azure. Usare questo file per specificare le impostazioni, ad esempio le stringhe di connessione ad altri servizi di Azure. Aggiungere una nuova chiave alla matrice di Valori per ogni connessione richiesta dalle funzioni nel progetto. Per altre informazioni, vedere Local settings file (File delle impostazioni locali) nell'argomento sugli strumenti di base di Funzioni di Azure.

Il runtime di Funzioni usa un account di archiviazione di Azure internamente. Per tutti i tipi di trigger diversi da HTTP e dai webhook, è necessario impostare la chiave Values.AzureWebJobsStorage su una stringa di connessione di account di archiviazione di Azure valida.

Nota

È consigliabile usare un account di archiviazione di Azure quando si eseguono attività di sviluppo in locale. L'uso di Emulatore di archiviazione di Azure non è supportato dagli strumenti di Funzioni di Azure.

Per impostare la stringa di connessione dell'account di archiviazione:

  1. In Visual Studio aprire Cloud Explorer, espandere Account di archiviazione > Your Storage Account (Account di archiviazione personale), quindi selezionare Proprietà e copiare il valore Stringa di connessione primaria.

  2. Nel progetto aprire il file di progetto local.settings.json e impostare il valore della chiave AzureWebJobsStorage sulla stringa di connessione copiata.

  3. Ripetere il passaggio precedente per aggiungere chiavi univoche alla matrice di Valori per tutte le altre connessioni richieste dalle funzioni.

Creare una funzione

Nelle funzioni precompilate le associazioni usate dalla funzione sono definite tramite l'applicazione di attributi nel codice. Quando si usa Azure Functions Tools per creare le funzioni dai modelli forniti, questi attributi vengono applicati automaticamente.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Aggiungi > Nuovo elemento. Selezionare Funzione di Azure, digitare un Nome per la classe e fare clic su Aggiungi.

  2. Scegliere il trigger, impostare le proprietà di associazione e fare clic su Crea. L'esempio seguente mostra le impostazioni quando si crea una funzione attivata da un'archiviazione code.

    Viene specificata una chiave di stringa di connessione denominata QueueStorage, che è definita nel file local.settings.json.

  3. Si esamini la classe appena aggiunta. Si vede un metodo Run statico a cui è associato l'attributo FunctionName. Questo attributo indica che il metodo è il punto di ingresso per la funzione.

    La classe C# seguente rappresenta ad esempio una funzione di base attivata dall'archiviazione code:

    using System;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Host;
    
    namespace FunctionApp1
    {
        public static class Function1
        {
            [FunctionName("QueueTriggerCSharp")]        
            public static void Run([QueueTrigger("myqueue-items", Connection = "QueueStorage")]string myQueueItem, TraceWriter log)
            {
                log.Info($"C# Queue trigger function processed: {myQueueItem}");
            }
        }
    } 
    

    Un attributo specifico dell'associazione viene applicato a ogni parametro di associazione fornito al metodo del punto di ingresso. L'attributo accetta le informazioni di associazione come parametri. Nell'esempio precedente il primo parametro dispone di un attributo QueueTrigger, che indica la funzione attivata dalla coda. Il nome della coda e il nome di impostazione della stringa di connessione vengono passati come parametri.

Test delle funzioni

Azure Functions Core Tools consente di eseguire il progetto Funzioni di Azure nel computer di sviluppo locale. Verrà richiesto di installare questi strumenti al primo avvio di una funzione da Visual Studio.

Per testare la funzione premere F5. Se viene visualizzata, accettare la richiesta di Visual Studio di scaricare e installare gli strumenti dell'interfaccia della riga di comando Azure Functions Core Tools. Potrebbe essere necessario anche abilitare un'eccezione del firewall per consentire agli strumenti di gestire le richieste HTTP.

Con il progetto in esecuzione, è possibile testare il codice come si fa con una funzione distribuita. Per altre informazioni, vedere Strategie per il test del codice in Funzioni di Azure. Durante l'esecuzione in modalità di debug, i punti di interruzione vengono raggiunti in Visual Studio come previsto.

Per un esempio di come testare una funzione attivata da una coda, vedere l'esercitazione di avvio rapido alle funzioni attivate da code.

Per altre informazioni sull'utilizzo degli strumenti di base di Funzioni di Azure, vedere Come scrivere codice per le funzioni di Azure e testarle in locale.

Pubblicazione in Azure

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Pubblica. Selezionare Crea nuovo e quindi fare clic su Pubblica.

    Pubblicare creando una nuova app per le funzioni

  2. Se non si è ancora connesso Visual Studio al proprio account Azure, fare clic su Aggiungi un account.

  3. Nella finestra Crea servizio app usare le impostazioni di hosting specificate nella tabella seguente:

    Runtime locale di Azure

    Impostazione Valore consigliato Descrizione
    Nome app Nome globalmente univoco Nome che identifica in modo univoco la nuova app per le funzioni.
    Sottoscrizione Scegliere la sottoscrizione Sottoscrizione di Azure da usare.
    Gruppo di risorse myResourceGroup Nome del gruppo di risorse in cui creare l'app per le funzioni.
    Piano di servizio app Piano a consumo Quando si crea un nuovo piano, assicurarsi di scegliere A consumo in Dimensioni.
    Account di archiviazione Nome globalmente univoco Usare un account di archiviazione esistente o crearne uno nuovo.
  4. Fare clic su Crea per creare un'app per le funzioni con queste impostazioni in Azure. Al termine del provisioning prendere nota del valore di URL sito, che è l'indirizzo dell'app per le funzioni in Azure.

    Runtime locale di Azure

Nota

Le impostazioni aggiunte nel file local.settings.json devono essere aggiunte anche all'app per le funzioni in Azure. Queste impostazioni non vengono aggiunte automaticamente. È possibile aggiungere le impostazioni necessarie per l'app per le funzioni in uno dei modi seguenti:

Passaggi successivi

Per altre informazioni su Azure Functions Tools, vedere la sezione Common Questions (Domande comuni) del post di blog Visual Studio 2017 Tools for Azure Functions.

Per altre informazioni sull'utilizzo degli strumenti di base di Funzioni di Azure, vedere Come scrivere codice per le funzioni di Azure e testarle in locale.
Per altre informazioni sullo sviluppo di funzioni quali le librerie della classe .NET, vedere Uso di librerie di classi .NET con Funzioni di Azure. Questo argomento fornisce anche esempi d'uso degli attributi per dichiarare i vari tipi di associazioni supportate da Funzioni di Azure.