Usare Funzioni di Azure per connettersi al database SQL di Azure

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. La nuova funzione C# viene creata in base a un modello predefinito di attivazione del timer nel portale di Azure. Per supportare questo scenario, è necessario anche impostare una stringa di connessione di database come impostazione nell'app per le funzioni. Questo scenario esegue un'operazione in blocco sul database. Affinché la funzione elabori le singole operazioni CRUD in una tabella di un'app per dispositivi mobili, è necessario usare invece le associazioni all'app per dispositivi mobili.

Prerequisiti

  • Questo argomento usa una funzione attivata da un timer. Completare i passaggi nell'argomento Creare una funzione in Azure attivata da un timer per creare una versione C# di questa funzione.

  • Questo argomento illustra un comando Transact-SQL che esegue un'operazione di pulizia in blocco nella tabella SalesOrderHeader nel database di esempio AdventureWorksLT. Per creare il database di esempio AdventureWorksLT, completare la procedura nell'argomento Creare un database SQL di Azure nel portale di Azure.

Ottenere informazioni di connessione

È necessario ottenere la stringa di connessione per il database creato dopo avere completato Creare un database SQL di Azure nel portale di Azure.

  1. Accedere al Portale di Azure.

  2. Scegliere Database SQL dal menu a sinistra, quindi scegliere il database nella pagina Database SQL.

  3. Selezionare Mostra stringhe di connessione del database e copiare tutta la stringa di connessione ADO.NET.

    Copiare la stringa di connessione ADO.NET.

Impostare la stringa di connessione

Un'app per le funzioni ospita l'esecuzione delle funzioni in Azure. È consigliabile archiviare le stringhe di connessione e altre informazioni riservate nelle impostazioni dell'app per le funzioni. L'uso delle impostazioni dell'applicazione impedisce la diffusione accidentale della stringa di connessione con il codice.

  1. Passare all'app per le funzioni creata in Creare una funzione in Azure attivata da un timer.

  2. Selezionare Funzionalità della piattaforma > Impostazioni applicazione.

    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.

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

    Impostazione       Valore consigliato Descrizione             
    Nome  sqldb_connection  Usato per accedere alla stringa di connessione memorizzata nel codice della funzione.   
    Valore Stringa copiata Incollare la stringa di connessione copiata nella sezione precedente.
    Tipo Database SQL Usare la connessione al database SQL predefinita.
  4. Fare clic su Salva.

A questo punto, è possibile aggiungere il codice della funzione C# che si connette al database SQL.

Aggiornare il codice di funzione

  1. Nell'app per le funzioni, selezionare la funzione attivata dal timer.

  2. Aggiungere i riferimenti assembly seguenti all'inizio del codice della funzione esistente:

    #r "System.Configuration"
    #r "System.Data"
    
  3. Aggiungere le istruzioni using seguenti alla funzione:

    using System.Configuration;
    using System.Data.SqlClient;
    using System.Threading.Tasks;
    
  4. Sostituire la funzione Run esistente con il codice seguente:

    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 Stato in base alla data di spedizione. Aggiorna 32 righe di dati.

  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.

    Visualizzare i log di funzione.

Passaggi successivi

Ora si apprenderà come usare le funzioni con l'app per la logica per l'integrazione con altri servizi.

Per altre informazioni sulle funzioni, vedere gli argomenti seguenti: