Come usare SendGrid nelle Funzioni di AzureHow to use SendGrid in Azure Functions

Panoramica di SendGridSendGrid Overview

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.Azure Functions supports SendGrid output bindings to enable your functions to send email messages with a few lines of code and a SendGrid account.

Per usare l'API SendGrid in una Funzione di Azure, è necessario un account di SendGrid.To use the SendGrid API in an Azure Function, you must have a SendGrid account. Inoltre, è necessario disporre di una chiave dell'API di SendGrid.Additionally, you must have a SendGrid API Key. Accedere al proprio account di SendGrid e fare clic su Impostazioni quindi su Chiave API per generare una chiave API.Log in to your SendGrid account and click Settings then API Key to generate an API key. Fare in modo che questa chiave sia disponibile per l'uso nel passaggio successivo.Keep this key available as you use it in an upcoming step.

È ora possibile creare un'app per le funzioni di Azure.You are now ready to create an Azure Function app.

Creare un'app per le funzioni di AzureCreate an Azure Function app

Le app per le funzioni di Azure sono contenitori per uno o più funzioni di Azure.Azure Function Apps are containers for one or more Azure functions. Le funzioni di Azure sono solo delle funzioni.Azure functions are just that - a function. Ogni funzione di Azure è associata a un trigger, ovvero a un evento che attiva l'esecuzione della funzione.Each Azure function is tied to one trigger, which is an event that causes the function to run. Ogni funzione può contenere diverse associazioni di input oppure output.Each function can contain any number of input or output bindings. Le associazioni sono servizi che è possibile usare in una funzione.Bindings are services that you can use in a function. SendGrid è un'associazione di output che è possibile usare per inviare email.SendGrid is an output binding you can use to send email.

  1. Accedere al Portale di Azure e creare un'app per le funzioni di Azure oppure aprire un'app per le funzioni esistente.Log in to the Azure portal and create an Azure Function App or open an existing Function app.
  2. Creare una funzione di Azure.Create an Azure function. Per farlo in modo semplice, scegliere un trigger manuale e C#.To keep it simple, choose a manual trigger and C#.

    Creare una funzione di Azure

Configurare SendGrid per l'uso in un'app per le funzioni di AzureConfigure SendGrid for use in an Azure Function app

È necessario archiviare la chiave API di SendGrid come impostazione dell'app per usarla in una funzione.You must store your SendGrid API Key as an app setting to use it in a function. Il campo ApiKey non è la chiave API di SendGrid effettiva, ma un'impostazione dell'app definita dall'utente che rappresenta la chiave API effettiva.The ApiKey field is not your actual SendGrid API key, but an app setting you define that represents your actual API key. 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.Storing your key this way is for security, since it is separate from any code or files that might be checked into source code control.

  • Creare una chiave AppSettings in Impostazioni applicazione dell'app per le funzioni.Create an AppSettings key in your function app's Application Settings.

    Creare una funzione di Azure

Configurare le associazioni di output di SendGridConfigure SendGrid output bindings

SendGrid è disponibile come associazione di output della funzione di Azure.SendGrid is available as an Azure function output binding. Per creare un'associazione di output di SendGrid:To create a SendGrid output binding:

  1. Andare nella scheda Integrazione della funzione nel Portale di Azure.Go to the Integrate tab of the function in the Azure portal.
  2. Per creare un'associazione di output di SendGrid fare clic su Nuovo output.Click New Output to create a SendGrid output binding.
  3. Compilare le proprietà Chiave API e Nome del parametro del messaggio.Fill in the API Key and Message parameter name properties. Se lo si desidera, a questo punto è possibile immettere le altre proprietà oppure codificarle.If you want, you can enter the other properties now, or code them instead. Queste impostazioni possono essere usate come impostazioni predefinite.These settings can be used as defaults.

    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.Adding a binding to a function creates a file called function.json in your function's folder. Questo file contiene tutte le informazioni visualizzate nella scheda Integrazione della funzione di Azure , ma in formato JSON.This file contains all the same information that you see in the Azure function's Integrate tab, but in Json format. L'impostazione dei campi ApiKey, messaggio, e from (da) crea le seguenti voci nel file function.json:Setting the ApiKey, message, and from fields create the following entries in the function.json file:

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

Se lo si preferisce, è possibile modificare direttamente questo file.If you prefer, you may modify this file yourself directly.

Ora che l'app per le funzioni e la funzione sono state create e configurate, è possibile scrivere il codice per inviare un'email.Now that you have created and configured the Function App and function, you can write the code to send an email.

Scrivere il codice che crea e invia emailWrite code that creates and sends email

L'API SendGrid contiene tutti i comandi necessari per creare e inviare un'email.The SendGrid API contains all the commands you need to create and send an email.

  • Sostituire il codice nella funzione con il codice seguente:Replace the code in the function with the following code:
#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.Notice the first line contains the #r directive that references the SendGrid assembly. Successivamente, è possibile usare un'istruzione using per accedere più facilmente agli oggetti nello spazio dei nomi.After that, you can use a using statement to more easily access the objects in that namespace. Nel codice, creare istanze degli oggetti Mail, Personalization e Content dell'API di SendGrid che compongono l'email.In the code, create instances of Mail, Personalization, and Content objects from the SendGrid API that compose the email. Quando l'utente restituisce il messaggio, SendGrid lo recapita.When you return the message, SendGrid delivers it.

La firma della funzione contiene inoltre un altro parametro out di tipo Mail denominato message.The function's signature also contains an extra out parameter of type Mail named message. Le associazioni di input e output si esprimono come parametri di funzione nel codice.Both input and output bindings express themselves as function parameters in code.

  1. Testare il codice facendo clic su Test e inserire un messaggio nel campo Corpo della richiesta, quindi fare clic sul pulsante Esegui.Test your code by clicking Test and entering a message into the Request body field, then clicking the Run button.

    Testare il codice

  2. Controllare i messaggi di posta elettronica per verificare che l'email sia stata inviata da SendGrid.Check email to verify that SendGrid sent the email. Dovrebbe essere recapitata all'indirizzo inserito nel codice del passaggio 1 e dovrebbe contenere il messaggio del Corpo della richiesta.It should go to the address in the code from step 1, and contain the message from the Request body.

Passaggi successiviNext steps

In questo articolo è stato illustrato come usare il servizio SendGrid per creare e inviare email.This article has demonstrated how to use the SendGrid service to create and send email. Per altre informazioni sull'uso di Funzioni di Azure nelle app, vedere gli argomenti seguenti:To learn more about using Azure Functions in your apps, see the following topics: