Creare la prima funzione con Visual StudioCreate your first function using Visual Studio

Funzioni di Azure consente di eseguire il codice in un ambiente senza server, senza dover prima creare una macchina virtuale o pubblicare un'applicazione Web.Azure Functions lets you execute your code in a serverless environment without having to first create a VM or publish a web application.

Questo articolo spiega come usare gli strumenti di Visual Studio 2017 per Funzioni di Azure per creare e testare una funzione "hello world" in locale.In this article, you learn how to use the Visual Studio 2017 tools for Azure Functions to locally create and test a "hello world" function. Il codice della funzione verrà quindi pubblicato in Azure.You then publish the function code to Azure. Questi strumenti sono disponibili come parte del carico di lavoro di sviluppo di Azure in Visual Studio 2017.These tools are available as part of the Azure development workload in Visual Studio 2017.

Questo argomento include un video che illustra gli stessi passaggi di base.This topic includes a video that demonstrates the same basic steps.

prerequisitiPrerequisites

Per completare questa esercitazione:To complete this tutorial:

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Creare un progetto di app per le funzioniCreate a function app project

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.The Azure Functions project template in Visual Studio creates a project that can be published to a function app in Azure. Un'app per le funzioni consente di raggruppare le funzioni come un'unità logica per la gestione, la distribuzione e la condivisione delle risorse.A function app lets you group functions as a logical unit for management, deployment, and sharing of resources.

  1. In Visual Studio selezionare Nuovo > Progetto dal menu File.In Visual Studio, select New > Project from the File menu.

  2. Nella finestra di dialogo Nuovo progetto selezionare Installato, espandere Visual C# > Cloud, selezionare Funzioni di Azure, digitare un nome per il progetto e fare clic su OK.In the New Project dialog, select Installed, expand Visual C# > Cloud, select Azure Functions, type a Name for your project, and click 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.The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

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

  3. Usare le impostazioni specificate nella tabella disponibile sotto l'immagine.Use the settings specified in the table that follows the image.

    Finestra di dialogo Nuova funzione in Visual Studio

    ImpostazioneSetting Valore consigliatoSuggested value DESCRIZIONEDescription
    VersioneVersion Funzioni di Azure v1Azure Functions v1
    (.NET Framework)(.NET Framework)
    Viene creato un progetto per le funzioni che usa la versione 1 del runtime di Funzioni di Azure.This creates a function project that uses the version 1 runtime of Azure Functions. La versione 2 del runtime, che supporta .NET Core, è attualmente in fase di anteprima.The version 2 runtime, which supports .NET Core, is currently in preview. Per altre informazioni, vedere Come specificare le versioni del runtime per Funzioni di Azure.For more information, see How to target Azure Functions runtime version.
    ModelloTemplate Trigger HTTPHTTP trigger Viene creata una funzione attivata da una richiesta HTTP.This creates a function triggered by an HTTP request.
    Account di archiviazioneStorage account Emulatore di archiviazioneStorage Emulator Un trigger HTTP non usa la connessione dell'account di archiviazione.An HTTP trigger doesn't use the Storage account connection. Tutti gli altri tipi di trigger richiedono una stringa di connessione dell'account di archiviazione valida.All other trigger types require a valid Storage account connection string.
    Diritti di accessoAccess rights AnonimaAnonymous Viene creata una funzione che può essere attivata da qualsiasi client senza dover fornire una chiave.The created function can be triggered by any client without providing a key. Questa impostazione di autorizzazione consente di testare più facilmente la nuova funzione.This authorization setting makes it easy to test your new function. Per altre informazioni sulle chiavi e l'autorizzazione, vedere Chiavi autorizzazione in Associazioni HTTP e webhook.For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.
  4. Fare clic su OK per creare il progetto per le funzioni e la funzione attivata da HTTP.Click OK to create the function project and HTTP triggered function.

Visual Studio crea un progetto e all'interno di esso una classe che contiene il codice boilerplate per il tipo di funzione scelto.Visual Studio creates a project and in it a class that contains boilerplate code for the chosen function type. L'attributo FunctionName nel metodo imposta il nome della funzione.The FunctionName attribute on the method sets the name of the function. L'attributo HttpTrigger specifica che la funzione è attivata da una richiesta HTTP.The HttpTrigger attribute specifies that the function is triggered by an HTTP request. Il codice boilerplate invia una risposta HTTP che include un valore presente nel corpo della richiesta o nella stringa di query.The boilerplate code sends an HTTP response that includes a value from the request body or query string. Per aggiungere binding di input e output a una funzione, basta applicare gli attributi appropriati al metodo.You can add input and output bindings to a function by applying the appropriate attributes to the method. Per altre informazioni, vedere la sezione Trigger e associazioni di Guida di riferimento per gli sviluppatori C# di Funzioni di Azure.For more information, see the Triggers and bindings section of the Azure Functions C# developer reference.

Ora che è stato creato il progetto di funzione con una funzione attivata tramite HTTP, è possibile testare la funzione nel computer locale.Now that you've created your function project and an HTTP-triggered function, you can test it on your local computer.

Testare la funzione in localeTest the function locally

Azure Functions Core Tools consente di eseguire un progetto Funzioni di Azure nel computer di sviluppo locale.Azure Functions Core Tools lets you run an Azure Functions project on your local development computer. Verrà richiesto di installare questi strumenti al primo avvio di una funzione da Visual Studio.You are prompted to install these tools the first time you start a function from Visual Studio.

  1. Per testare la funzione premere F5.To test your function, press 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.If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. Potrebbe essere necessario anche abilitare un'eccezione del firewall per consentire agli strumenti di gestire le richieste HTTP.You may also need to enable a firewall exception so that the tools can handle HTTP requests.

  2. Copiare l'URL della funzione dall'output di runtime di Funzioni di Azure.Copy the URL of your function from the Azure Functions runtime output.

    Runtime locale di Azure

  3. Incollare l'URL per la richiesta HTTP nella barra degli indirizzi del browser.Paste the URL for the HTTP request into your browser's address bar. Aggiungere la stringa di query ?name=<yourname> all'URL ed eseguire la richiesta.Append the query string ?name=<yourname> to this URL and execute the request. Di seguito è illustrata la risposta nel browser alla richiesta GET locale restituita dalla funzione:The following shows the response in the browser to the local GET request returned by the function:

    Risposta localhost della funzione nel browser

  4. Per interrompere il debug, premere MAIUSC+F5.To stop debugging, press Shift + F5.

Dopo aver verificato la corretta esecuzione della funzione nel computer locale, è possibile pubblicare il progetto in Azure.After you have verified that the function runs correctly on your local computer, it's time to publish the project to Azure.

Pubblicare il progetto in AzurePublish the project to Azure

Per poter pubblicare il progetto, è necessario che la sottoscrizione di Azure includa un'app per le funzioni.You must have a function app in your Azure subscription before you can publish your project. È possibile creare un'app per le funzioni direttamente da Visual Studio.You can create a function app right from Visual Studio.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Pubblica.In Solution Explorer, right-click the project and select Publish.

  2. Selezionare App per le funzioni di Azure, scegliere Crea nuova e quindi selezionare Pubblica.Select Azure Function App, choose Create New, and then select Publish.

    Selezionare una destinazione di pubblicazione

  3. Se non si è ancora connesso Visual Studio al proprio account di Azure, selezionare Aggiungi un account....If you haven't already connected Visual Studio to your Azure account, select Add an account....

  4. Nella finestra di dialogo Crea servizio app usare le impostazioni di Hosting specificate nella tabella sotto l'immagine:In the Create App Service dialog, use the Hosting settings as specified in the table below the image:

    Finestra di dialogo Crea servizio app

    ImpostazioneSetting Valore consigliatoSuggested value DESCRIZIONEDescription
    Nome appApp Name Nome globalmente univocoGlobally unique name Nome che identifica in modo univoco la nuova app per le funzioni.Name that uniquely identifies your new function app.
    SottoscrizioneSubscription Scegliere la sottoscrizioneChoose your subscription Sottoscrizione di Azure da usare.The Azure subscription to use.
    Gruppo di risorseResource Group myResourceGroupmyResourceGroup Nome del gruppo di risorse in cui creare l'app per le funzioni.Name of the resource group in which to create your function app. Per creare un nuovo gruppo di risorse scegliere Nuovo.Choose New to create a new resource group.
    Piano di servizio appApp Service Plan Piano a consumoConsumption plan Assicurarsi di scegliere Consumo in Dimensione dopo aver fatto clic su Nuovo per creare un piano.Make sure to choose the Consumption under Size after you click New to create a plan. Scegliere anche una Località nelle vicinanze o vicino ad altri servizi a cui accedono le funzioni.Also, choose a Location in a region near you or near other services your functions access.
    Account di archiviazioneStorage Account Account di archiviazione per utilizzo genericoGeneral purpose storage account L'account di archiviazione di Azure è necessario per il runtime di Funzioni.An Azure storage account is required by the Functions runtime. Fare clic su Nuovo per creare un account di archiviazione per utilizzo generico oppure usare un account esistente.Click New to create a general purpose storage account, or use an existing one.
  5. Fare clic su Crea per creare un'app per le funzioni e le relative risorse in Azure con queste impostazioni e distribuire il codice di progetto della funzione.Click Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  6. Al termine della distribuzione prendere nota del valore di URL sito, ovvero l'indirizzo dell'app per le funzioni in Azure.After the deployment is complete, make a note of the Site URL value, which is the address of your function app in Azure.

    Messaggio di esito positivo della pubblicazione

Testare la funzione in AzureTest your function in Azure

  1. Copiare l'URL di base dell'app per le funzioni dalla pagina del profilo di pubblicazione.Copy the base URL of the function app from the Publish profile page. Sostituire la parte localhost:port dell'URL usato durante il test della funzione in locale con il nuovo URL di base.Replace the localhost:port portion of the URL you used when testing the function locally with the new base URL. Come prima, assicurarsi di accodare la stringa di query ?name=<yourname> all'URL ed eseguire la richiesta.As before, make sure to append the query string ?name=<yourname> to this URL and execute the request.

    Il formato dell'URL che chiama la funzione attivata tramite HTTP sarà simile al seguente:The URL that calls your HTTP triggered function should be in the following format:

     http://<functionappname>.azurewebsites.net/api/<functionname>?name=<yourname> 
    
  2. Incollare questo nuovo URL per la richiesta HTTP nella barra degli indirizzi del browser.Paste this new URL for the HTTP request into your browser's address bar. Di seguito è illustrata la risposta nel browser alla richiesta GET remota restituita dalla funzione:The following shows the response in the browser to the remote GET request returned by the function:

    Risposta della funzione nel browser

VideoWatch the video

Passaggi successiviNext steps

È stato usato Visual Studio per creare e pubblicare un'app per le funzioni C# con una semplice funzione attivata tramite HTTP.You have used Visual Studio to create and publish a C# function app with a simple HTTP triggered function.