SendGrid-kötések Azure FunctionsAzure Functions SendGrid bindings

Ez a cikk azt ismerteti, hogyan küldhet e-mailt SendGrid -kötések használatával Azure Functionsban.This article explains how to send email by using SendGrid bindings in Azure Functions. Azure Functions támogatja a SendGrid kimeneti kötését.Azure Functions supports an output binding for SendGrid.

Ez az információ az Azure Functions-fejlesztők számára.This is reference information for Azure Functions developers. Ha most ismerkedik az Azure Functions, indítsa el az alábbi forrásanyagokat:If you're new to Azure Functions, start with the following resources:

Csomagok – 1.x függvényekPackages - Functions 1.x

A SendGrid-kötések a Microsoft. Azure. webjobs. Extensions. SendGrid NuGet csomagban, 2. x verzióban találhatók.The SendGrid bindings are provided in the Microsoft.Azure.WebJobs.Extensions.SendGrid NuGet package, version 2.x. A csomag forráskódja az Azure-webjobs-SDK-Extensions GitHub- tárházban található.Source code for the package is in the azure-webjobs-sdk-extensions GitHub repository.

Az alábbi táblázat bemutatja, hogyan lehet ezt a kötést támogatása hozzáadva minden fejlesztési környezetben.The following table tells how to add support for this binding in each development environment.

Fejlesztési környezetDevelopment environment A támogatás hozzáadásaTo add support in
Functions 1.xFunctions 1.x
Helyi fejlesztés – C# osztálytárLocal development - C# class library A csomag telepítéseInstall the package
Helyi fejlesztés – C# parancsfájl, JavaScript,F#Local development - C# script, JavaScript, F# AutomatikusAutomatic
A fejlesztői portálPortal development AutomatikusAutomatic

Csomagok – 2.x függvényekPackages - Functions 2.x

A SendGrid-kötések a Microsoft. Azure. webjobs. Extensions. SendGrid NuGet csomagban, 3. x verzióban találhatók.The SendGrid bindings are provided in the Microsoft.Azure.WebJobs.Extensions.SendGrid NuGet package, version 3.x. A csomag forráskódja az Azure-webjobs-SDK-Extensions GitHub- tárházban található.Source code for the package is in the azure-webjobs-sdk-extensions GitHub repository.

Megjegyzés

A 2. x verzió nem hozza létre a ServiceBusTrigger példányban konfigurált témakört vagy előfizetést.Version 2.x does not create the topic or subscription configured in the ServiceBusTrigger instance. A 2. x verzió a Microsoft. Azure. ServiceBus alapul, és nem kezeli a várólista-kezelést.Version 2.x is based on Microsoft.Azure.ServiceBus and does not handle queue management.

Az alábbi táblázat bemutatja, hogyan lehet ezt a kötést támogatása hozzáadva minden fejlesztési környezetben.The following table tells how to add support for this binding in each development environment.

Fejlesztési környezetDevelopment environment A támogatás hozzáadásaTo add support in
Functions 2.xFunctions 2.x
Helyi fejlesztés – C# osztálytárLocal development - C# class library A csomag telepítéseInstall the package
Helyi fejlesztés – C# parancsfájl, JavaScript, F#, Java és Python nyelvenLocal development - C# script, JavaScript, F#, Java and Python A bővítmény regisztrálásaRegister the extension
A fejlesztői portálPortal development Telepítse a kimeneti kötés hozzáadása soránInstall when adding output binding

Megtudhatja, hogyan lehet frissíteni a létező kötés bővítmények a portálon való ismételt közzétételéhez a függvényalkalmazás projektjét nélkül, tekintse meg a a bővítmények frissítése.To learn how to update existing binding extensions in the portal without having to republish your function app project, see Update your extensions.

PéldaExample

Tekintse meg az adott nyelvű példa:See the language-specific example:

C#példáulC# example

Az alábbi példa egy olyan C# függvényt mutat be, amely egy Service Bus üzenetsor-triggert és egy SendGrid kimeneti kötést használ.The following example shows a C# function that uses a Service Bus queue trigger and a SendGrid output binding.

Szinkron C# példa:Synchronous C# example:

[FunctionName("SendEmail")]
public static void Run(
    [ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] Message email,
    [SendGrid(ApiKey = "CustomSendGridKeyAppSettingName")] out SendGridMessage message)
{
var emailObject = JsonConvert.DeserializeObject<OutgoingEmail>(Encoding.UTF8.GetString(email.Body));

message = new SendGridMessage();
message.AddTo(emailObject.To);
message.AddContent("text/html", emailObject.Body);
message.SetFrom(new EmailAddress(emailObject.From));
message.SetSubject(emailObject.Subject);
}

public class OutgoingEmail
{
    public string To { get; set; }
    public string From { get; set; }
    public string Subject { get; set; }
    public string Body { get; set; }
}

Aszinkron C# példa:Asynchronous C# example:

[FunctionName("SendEmail")]
public static async void Run(
 [ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] Message email,
 [SendGrid(ApiKey = "CustomSendGridKeyAppSettingName")] IAsyncCollector<SendGridMessage> messageCollector)
{
 var emailObject = JsonConvert.DeserializeObject<OutgoingEmail>(Encoding.UTF8.GetString(email.Body));

 var message = new SendGridMessage();
 message.AddTo(emailObject.To);
 message.AddContent("text/html", emailObject.Body);
 message.SetFrom(new EmailAddress(emailObject.From));
 message.SetSubject(emailObject.Subject);
 
 await messageCollector.AddAsync(message);
}

public class OutgoingEmail
{
 public string To { get; set; }
 public string From { get; set; }
 public string Subject { get; set; }
 public string Body { get; set; }
}

Ha az API-kulcs egy " ApiKey AzureWebJobsSendGridApiKey" nevű alkalmazás-beállításban van, akkor kihagyhatja az attribútum tulajdonságának beállítását.You can omit setting the attribute's ApiKey property if you have your API key in an app setting named "AzureWebJobsSendGridApiKey".

C#parancsfájl – példaC# script example

Az alábbi példa egy SendGrid kimeneti kötést mutat be egy function. JSON fájlban, valamint egy olyan C# parancsfájl-függvényt , amely a kötést használja.The following example shows a SendGrid output binding in a function.json file and a C# script function that uses the binding.

Itt van a kötési adatait a function.json fájlt:Here's the binding data in the function.json file:

{
    "bindings": [
        {
          "type": "queueTrigger",
          "name": "mymsg",
          "queueName": "myqueue",
          "connection": "AzureWebJobsStorage",
          "direction": "in"
        },
        {
          "type": "sendGrid",
          "name": "$return",
          "direction": "out",
          "apiKey": "SendGridAPIKeyAsAppSetting",
          "from": "{FromEmail}",
          "to": "{ToEmail}"
        }
    ]
}

A konfigurációs szakasz mutatja be ezeket a tulajdonságokat.The configuration section explains these properties.

Íme a C#-szkriptkódot:Here's the C# script code:

#r "SendGrid"

using System;
using SendGrid.Helpers.Mail;
using Microsoft.Azure.WebJobs.Host;

public static SendGridMessage Run(Message mymsg, ILogger log)
{
    SendGridMessage message = new SendGridMessage()
    {
        Subject = $"{mymsg.Subject}"
    };
    
    message.AddContent("text/plain", $"{mymsg.Content}");

    return message;
}
public class Message
{
    public string ToEmail { get; set; }
    public string FromEmail { get; set; }
    public string Subject { get; set; }
    public string Content { get; set; }
}

Java-példaJava example

Az alábbi példa a @SendGridOutput Java functions runtime library jegyzetét használja egy e-mailt küldeni a SendGrid kimeneti kötés használatával.The following example uses the @SendGridOutput annotation from the Java functions runtime library to send an email using the SendGrid output binding.

@FunctionName("SendEmail")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request,
            @SendGridOutput(
                name = "email", dataType = "String", apiKey = "SendGridConnection", to = "test@example.com", from = "test@example.com",
                subject= "Sending with SendGrid", text = "Hello from Azure Functions"
                ) OutputBinding<String> email
            )
    {
        String name = request.getBody().orElse("World");

        final String emailBody = "{\"personalizations\":" +
                                    "[{\"to\":[{\"email\":\"test@example.com\"}]," +
                                    "\"subject\":\"Sending with SendGrid\"}]," +
                                    "\"from\":{\"email\":\"test@example.com\"}," +
                                    "\"content\":[{\"type\":\"text/plain\",\"value\": \"Hello" + name + "\"}]}";

        email.setValue(emailBody);
        return request.createResponseBuilder(HttpStatus.OK).body("Hello, " + name).build();
    }

JavaScript-példaJavaScript example

Az alábbi példa egy SendGrid kimeneti kötést mutat be egy function. JSON fájlban, valamint egy JavaScript-függvényt , amely a kötést használja.The following example shows a SendGrid output binding in a function.json file and a JavaScript function that uses the binding.

Itt van a kötési adatait a function.json fájlt:Here's the binding data in the function.json file:

{
    "bindings": [
        {
            "name": "$return",
            "type": "sendGrid",
            "direction": "out",
            "apiKey" : "MySendGridKey",
            "to": "{ToEmail}",
            "from": "{FromEmail}",
            "subject": "SendGrid output bindings"
        }
    ]
}

A konfigurációs szakasz mutatja be ezeket a tulajdonságokat.The configuration section explains these properties.

A következő JavaScript-kódot:Here's the JavaScript code:

module.exports = function (context, input) {    
    var message = {
         "personalizations": [ { "to": [ { "email": "sample@sample.com" } ] } ],
        from: { email: "sender@contoso.com" },        
        subject: "Azure news",
        content: [{
            type: 'text/plain',
            value: input
        }]
    };

    context.done(null, message);
};

AttribútumokAttributes

Az C# osztályok könyvtáraibanhasználja a SendGrid attribútumot.In C# class libraries, use the SendGrid attribute.

További információ a konfigurálható attribútumok tulajdonságairól: konfiguráció.For information about attribute properties that you can configure, see Configuration. Íme egy SendGrid attribútum példa egy podpis metody:Here's a SendGrid attribute example in a method signature:

[FunctionName("SendEmail")]
public static void Run(
    [ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] OutgoingEmail email,
    [SendGrid(ApiKey = "CustomSendGridKeyAppSettingName")] out SendGridMessage message)
{
    ...
}

Teljes példa: C# példa.For a complete example, see C# example.

KonfigurációConfiguration

A következő táblázat ismerteti a megadott kötés konfigurációs tulajdonságaiban a function.json fájlt, és a SendGrid attribútum.The following table explains the binding configuration properties that you set in the function.json file and the SendGrid attribute.

Function.JSON tulajdonságfunction.json property Attribútum tulajdonságaAttribute property LeírásDescription
typetype Kötelező – a sendGridkövetkezőre kell beállítani:.Required - must be set to sendGrid.
directiondirection Kötelező – a outkövetkezőre kell beállítani:.Required - must be set to out.
namename Kötelező – a kérelem vagy a kérelem törzse függvény kódjában használt változó neve.Required - the variable name used in function code for the request or request body. Ez az érték $return akkor van, ha csak egy visszatérési érték van.This value is $return when there is only one return value.
apiKeyapiKey ApiKeyApiKey Az API-kulcsot tartalmazó Alkalmazásbeállítás neve.The name of an app setting that contains your API key. Ha nincs beállítva, az alapértelmezett alkalmazás-beállítás neve "AzureWebJobsSendGridApiKey".If not set, the default app setting name is "AzureWebJobsSendGridApiKey".
toto ToTo a címzett e-mail-címe.the recipient's email address.
afrom FromFrom a feladó e-mail-címe.the sender's email address.
subjectsubject SubjectSubject az e-mail tárgya.the subject of the email.
szövegtext TextText az e-mail tartalma.the email content.

Ha helyileg fejleszt, Alkalmazásbeállítások lépnek a local.settings.json fájljában.When you're developing locally, app settings go into the local.settings.json file.

Host.JSON-beállításokhost.json settings

Ez a szakasz ismerteti a globális konfigurációs beállításoknak a kötéshez verziójában elérhető 2.x.This section describes the global configuration settings available for this binding in version 2.x. Az alábbi példa host.json-fájl csak a verzió 2.x beállításait tartalmazza ezt a kötést.The example host.json file below contains only the version 2.x settings for this binding. További információ a globális konfigurációs beállításoknak verzióban 2.x verzióját, lásd: verzióját az Azure Functions – host.json referencia 2.x.For more information about global configuration settings in version 2.x, see host.json reference for Azure Functions version 2.x.

Megjegyzés

Az a funkciók host.json odkaz 1.x, lásd: Azure Functions – host.json referencia 1.x.For a reference of host.json in Functions 1.x, see host.json reference for Azure Functions 1.x.

{
    "version": "2.0",
    "extensions": {
        "sendGrid": {
            "from": "Azure Functions <samples@functions.com>"
        }
    }
}
TulajdonságProperty AlapértelmezettDefault LeírásDescription
fromfrom n/an/a A küldő e-mail-címe az összes függvényen belül.The sender's email address across all functions.

További lépésekNext steps