Usare Funzioni di Azure per connettersi al database SQL di AzureUse Azure Functions to connect to an Azure SQL Database

In questo argomento viene illustrato come usare Funzioni di Azure per creare un processo pianificato al fine di eseguire la pulizia delle righe in una tabella del database SQL di Azure.This topic shows you how to use Azure Functions to create a scheduled job that cleans up rows in a table in an Azure SQL Database. La nuova funzione di script C# viene creata in base a un modello predefinito di attivazione del timer nel portale di Azure.The new C# script function is created based on a pre-defined timer trigger template in the Azure portal. Per supportare questo scenario, è necessario anche impostare una stringa di connessione di database come impostazione app nell'app per le funzioni.To support this scenario, you must also set a database connection string as an app setting in the function app. Questo scenario esegue un'operazione in blocco sul database.This scenario uses a bulk operation against the database.

Affinché la funzione elabori le singole operazioni CRUD (creazione, lettura, aggiornamento ed eliminazione) in una tabella di un'app per dispositivi mobili, è necessario usare invece le associazioni di app per dispositivi mobili.To have your function process individual create, read, update, and delete (CRUD) operations in a Mobile Apps table, you should instead use Mobile Apps bindings.

prerequisitiPrerequisites

Ottenere informazioni di connessioneGet connection information

È necessario ottenere la stringa di connessione per il database creato dopo avere completato Creare un database SQL di Azure nel portale di Azure.You need to get the connection string for the database you created when you completed Create an Azure SQL database in the Azure portal.

  1. Accedere al Portale di Azure.Log in to the Azure portal.

  2. Scegliere Database SQL dal menu a sinistra, quindi scegliere il database nella pagina Database SQL.Select SQL Databases from the left-hand menu, and select your database on the SQL databases page.

  3. Selezionare Mostra stringhe di connessione del database e copiare tutta la stringa di connessione ADO.NET.Select Show database connection strings and copy the complete ADO.NET connection string.

    Copiare la stringa di connessione ADO.NET.

Impostare la stringa di connessioneSet the connection string

Un'app per le funzioni ospita l'esecuzione delle funzioni in Azure.A function app hosts the execution of your functions in Azure. È consigliabile archiviare le stringhe di connessione e altre informazioni riservate nelle impostazioni dell'app per le funzioni.It is a best practice to store connection strings and other secrets in your function app settings. L'uso delle impostazioni dell'applicazione impedisce la diffusione accidentale della stringa di connessione con il codice.Using application settings prevents accidental disclosure of the connection string with your code.

  1. Passare all'app per le funzioni creata in Creare una funzione in Azure attivata da un timer.Navigate to your function app you created Create a function in Azure that is triggered by a timer.

  2. Selezionare Funzionalità della piattaforma > Impostazioni applicazione.Select Platform features > Application settings.

    Impostazioni applicazioni per l'app per le funzioni.

  3. Scorrere verso il basso fino a Stringhe di connessione e aggiungere una stringa di connessione usando le impostazioni come indicato nella tabella.Scroll down to Connection strings and add a connection string using the settings as specified in the table.

    Aggiungere una stringa di connessione alle impostazioni dell'app per le funzioni.

    ImpostazioneSetting       Valore consigliatoSuggested value DescrizioneDescription             
    NomeName sqldb_connectionsqldb_connection Usato per accedere alla stringa di connessione memorizzata nel codice della funzione.Used to access the stored connection string in your function code.   
    ValoreValue Stringa copiataCopied string Incollare la stringa di connessione copiata nella sezione precedente e quindi sostituire i segnaposto {your_username} e {your_password} con valori reali.Paste the connection string you copied in the previous section and replace {your_username} and {your_password} placeholders with real values.
    TipoType Database SQLSQL Database Usare la connessione al database SQL predefinita.Use the default SQL Database connection.
  4. Fare clic su Save.Click Save.

A questo punto, è possibile aggiungere il codice della funzione C# che si connette al database SQL.Now, you can add the C# function code that connects to your SQL Database.

Aggiornare il codice di funzioneUpdate your function code

  1. Nell'app per le funzioni nel portale selezionare la funzione attivata dal timer.In your function app in the portal, select the timer-triggered function.

  2. Aggiungere i riferimenti assembly seguenti all'inizio del codice della funzione di script C# esistente:Add the following assembly references at the top of the existing C# script function code:

    #r "System.Configuration"
    #r "System.Data"
    

    Nota

    Il codice in questi esempi è costituito da script C# del portale.The code in these examples are C# script from the portal. Quando si sviluppa una funzione C# precompilata in locale, è invece necessario aggiungere i riferimenti a questi assembly nel progetto locale.When you are developing a precompiled C# function locally, you must instead add references to these assembles in your local project.

  3. Aggiungere le istruzioni using seguenti alla funzione:Add the following using statements to the function:

    using System.Configuration;
    using System.Data.SqlClient;
    using System.Threading.Tasks;
    
  4. Sostituire la funzione Run esistente con il codice seguente:Replace the existing Run function with the following code:

    public static async Task Run(TimerInfo myTimer, TraceWriter log)
    {
        var str = ConfigurationManager.ConnectionStrings["sqldb_connection"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(str))
        {
            conn.Open();
            var text = "UPDATE SalesLT.SalesOrderHeader " + 
                    "SET [Status] = 5  WHERE ShipDate < GetDate();";
    
            using (SqlCommand cmd = new SqlCommand(text, conn))
            {
                // Execute the command and log the # rows affected.
                var rows = await cmd.ExecuteNonQueryAsync();
                log.Info($"{rows} rows were updated");
            }
        }
    }
    

    Questo comando di esempio aggiorna la colonna Status in base alla data di spedizione.This sample command updates the Status column based on the ship date. Aggiorna 32 righe di dati.It should update 32 rows of data.

  5. Fare clic su Salva, osservare le finestre Log per l'esecuzione della funzione successiva e quindi prendere nota del numero di righe aggiornate nella tabella SalesOrderHeader.Click Save, watch the Logs windows for the next function execution, then note the number of rows updated in the SalesOrderHeader table.

    Visualizzare i log di funzione.

Passaggi successiviNext steps

Ora si apprenderà come usare le funzioni con l'app per la logica per l'integrazione con altri servizi.Next, learn how to use Functions with Logic Apps to integrate with other services.

Per altre informazioni sulle funzioni, vedere gli argomenti seguenti:For more information about Functions, see the following topics: