Come usare SendGrid nelle Funzioni di Azure

Panoramica di SendGrid

Funzioni di Azure supporta le associazioni output di SendGrid per consentire alle funzioni di inviare messaggi posta elettronica con poche righe di codice e un account di SendGrid.

Per usare l'API SendGrid in una Funzione di Azure, è necessario un account di SendGrid. Inoltre, è necessario disporre di una chiave dell'API di SendGrid. Accedere al proprio account di SendGrid e fare clic su Impostazioni quindi su Chiave API per generare una chiave API. Fare in modo che questa chiave sia disponibile per l'uso nel passaggio successivo.

È ora possibile creare un'app per le funzioni di Azure.

Creare un'app per le funzioni di Azure

Le app per le funzioni di Azure sono contenitori per uno o più funzioni di Azure. Le funzioni di Azure sono solo delle funzioni. Ogni funzione di Azure è associata a un trigger, ovvero a un evento che attiva l'esecuzione della funzione. Ogni funzione può contenere diverse associazioni di input oppure output. Le associazioni sono servizi che è possibile usare in una funzione. SendGrid è un'associazione di output che è possibile usare per inviare email.

  1. Accedere al Portale di Azure e creare un'app per le funzioni di Azure oppure aprire un'app per le funzioni esistente.
  2. Creare una funzione di Azure. Per farlo in modo semplice, scegliere un trigger manuale e C#.

    Creare una funzione di Azure

Configurare SendGrid per l'uso in un'app per le funzioni di Azure

È necessario archiviare la chiave API di SendGrid come impostazione dell'app per usarla in una funzione. Il campo ApiKey non è la chiave API di SendGrid effettiva, ma un'impostazione dell'app definita dall'utente che rappresenta la chiave API effettiva. Per sicurezza si esegue questo tipo di archiviazione della chiave, poiché è separata da qualsiasi codice o file che potrebbe essere archiviato nel controllo del codice sorgente.

  • Creare una chiave AppSettings in Impostazioni applicazione dell'app per le funzioni.

    Creare una funzione di Azure

Configurare le associazioni di output di SendGrid

SendGrid è disponibile come associazione di output della funzione di Azure. Per creare un'associazione di output di SendGrid:

  1. Andare nella scheda Integrazione della funzione nel Portale di Azure.
  2. Per creare un'associazione di output di SendGrid fare clic su Nuovo output.
  3. Compilare le proprietà Chiave API e Nome del parametro del messaggio. Se lo si desidera, a questo punto è possibile immettere le altre proprietà oppure codificarle. Queste impostazioni possono essere usate come impostazioni predefinite.

    Configurare le associazioni di output di SendGrid

L'aggiunta di un'associazione a una funzione crea un file denominato function.json nella cartella della funzione. Questo file contiene tutte le informazioni visualizzate nella scheda Integrazione della funzione di Azure , ma in formato JSON. L'impostazione dei campi ApiKey, messaggio, e from (da) crea le seguenti voci nel file function.json:

{
  "bindings": [    
    {
      "type": "sendGrid",
      "name": "message",
      "apiKey": "SendGridKey",
      "direction": "out",
      "from": "azure@contoso.com"
    }
  ],
  "disabled": false
}

Se lo si preferisce, è possibile modificare direttamente questo file.

Ora che l'app per le funzioni e la funzione sono state create e configurate, è possibile scrivere il codice per inviare un'email.

Scrivere il codice che crea e invia email

L'API SendGrid contiene tutti i comandi necessari per creare e inviare un'email.

  • Sostituire il codice nella funzione con il codice seguente:
#r "SendGrid"
using System;
using SendGrid.Helpers.Mail;

public static void Run(TraceWriter log, string input, out Mail message)
{
    message = new Mail
    {        
        Subject = "Azure news"          
    };

    var personalization = new Personalization();
    // change to email of recipient
    personalization.AddTo(new Email("MoreEmailPlease@contoso.com"));   

    Content content = new Content
    {
        Type = "text/plain",
        Value = input
    };
    message.AddContent(content);
    message.AddPersonalization(personalization);
}

Si noti che la prima riga contiene la direttiva #r che fa riferimento all'assembly di SendGrid. Successivamente, è possibile usare un'istruzione using per accedere più facilmente agli oggetti nello spazio dei nomi. Nel codice, creare istanze degli oggetti Mail, Personalization e Content dell'API di SendGrid che compongono l'email. Quando l'utente restituisce il messaggio, SendGrid lo recapita.

La firma della funzione contiene inoltre un altro parametro out di tipo Mail denominato message. Le associazioni di input e output si esprimono come parametri di funzione nel codice.

  1. Testare il codice facendo clic su Test e inserire un messaggio nel campo Corpo della richiesta, quindi fare clic sul pulsante Esegui.

    Testare il codice

  2. Controllare i messaggi di posta elettronica per verificare che l'email sia stata inviata da SendGrid. Dovrebbe essere recapitata all'indirizzo inserito nel codice del passaggio 1 e dovrebbe contenere il messaggio del Corpo della richiesta.

Passaggi successivi

In questo articolo è stato illustrato come usare il servizio SendGrid per creare e inviare email. Per altre informazioni sull'uso di Funzioni di Azure nelle app, vedere gli argomenti seguenti: