Megosztás a következőn keresztül:


Azure Functions SendGrid-kötések

Ez a cikk bemutatja, hogyan küldhet e-maileket SendGrid-kötésekkel az Azure Functionsben. Az Azure Functions támogatja a SendGrid kimeneti kötését.

Ezek az Azure Functions-fejlesztők referenciaadatai. Ha még nem használja az Azure Functionst, kezdje a következő erőforrásokkal:

A bővítmény telepítése

A telepített NuGet-csomag a függvényalkalmazásban használt C# módtól függ:

A függvények izolált C# feldolgozói folyamatban futnak. További információ: Útmutató a C# Azure Functions izolált feldolgozói folyamatban való futtatásához.

A bővítmény funkciói a bővítmény verziójától függően változnak:

Adja hozzá a bővítményt a projekthez a NuGet-csomag 3.x-es verziójának telepítésével.

Csomag telepítése

Ha használni szeretné ezt a kötéskiterjesztést az alkalmazásban, győződjön meg arról, hogy a projekt gyökerében található host.json fájl tartalmazza a extensionBundle következő hivatkozást:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

Ebben a példában az version érték [4.0.0, 5.0.0) arra utasítja a Functions-gazdagépet, hogy 4.0.0 legalább, de annál kisebb 5.0.0csomagverziót használjon, amely tartalmazza a 4.x összes lehetséges verzióját. Ez a jelölés hatékonyan fenntartja az alkalmazást a v4.x bővítménycsomag legújabb elérhető alverzióján.

Ha lehetséges, a legújabb bővítménycsomag főverziót kell használnia, és engedélyeznie kell, hogy a futtatókörnyezet automatikusan fenntartsa a legújabb alverziót. A legújabb csomag tartalmát a bővítménykötegek kiadási oldalán tekintheti meg. További információ: Azure Functions-bővítménykötegek.

Example

C# függvényt az alábbi C# módok egyikével hozhat létre:

  • Izolált feldolgozómodell: Lefordított C# függvény, amely a futtatókörnyezettől elkülönített feldolgozói folyamatban fut. Izolált feldolgozói folyamat szükséges a hosszú távú támogatáson (LTS) futó C# függvények támogatásához, valamint a .NET és a .NET-keretrendszer nem LTS-verzióihoz.
  • Folyamatban lévő modell: Lefordított C# függvény, amely ugyanabban a folyamatban fut, mint az Azure Functions futtatókörnyezete.
  • C#-szkript: Elsősorban C#-függvények Azure Portalon való létrehozásakor használatos.

Jelenleg nincs példa a SendGrid-kötés használatára egy elkülönített feldolgozói folyamatban futó függvényalkalmazásban.

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.

A kötési adatok afunction.jsonfájlban:

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

A konfigurációs szakasz ezeket a tulajdonságokat ismerteti.

A JavaScript-kód a következő:

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
        }]
    };

    return message;
};

A Teljes PowerShell-példák jelenleg nem érhetők el a SendGrid-kötésekhez.

Az alábbi példa egy HTTP-aktivált függvényt mutat be, amely e-mailt küld a SendGrid-kötés használatával. A kötéskonfigurációban megadhat alapértelmezett értékeket. A feladó e-mail-címe például function.jsonvan konfigurálva.

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "type": "httpTrigger",
      "authLevel": "function",
      "direction": "in",
      "name": "req",
      "methods": ["get", "post"]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "$return"
    },
    {
      "type": "sendGrid",
      "name": "sendGridMessage",
      "direction": "out",
      "apiKey": "SendGrid_API_Key",
      "from": "sender@contoso.com"
    }
  ]
}

Az alábbi függvény bemutatja, hogyan adhat meg egyéni értékeket az opcionális tulajdonságokhoz.

import logging
import json
import azure.functions as func

def main(req: func.HttpRequest, sendGridMessage: func.Out[str]) -> func.HttpResponse:

    value = "Sent from Azure Functions"

    message = {
        "personalizations": [ {
          "to": [{
            "email": "user@contoso.com"
            }]}],
        "subject": "Azure Functions email with SendGrid",
        "content": [{
            "type": "text/plain",
            "value": value }]}

    sendGridMessage.set(json.dumps(message))

    return func.HttpResponse(f"Sent")

Az alábbi példa a @SendGridOutput Java-függvények futtatókörnyezeti kódtárának megjegyzésével küld e-mailt a SendGrid kimeneti kötés használatával.

package com.function;

import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;

public class HttpTriggerSendGrid {

    @FunctionName("HttpTriggerSendGrid")
    public HttpResponseMessage run(

        @HttpTrigger(
            name = "req",
            methods = { HttpMethod.GET, HttpMethod.POST },
            authLevel = AuthorizationLevel.FUNCTION)
                HttpRequestMessage<Optional<String>> request,

        @SendGridOutput(
            name = "message",
            dataType = "String",
            apiKey = "SendGrid_API_Key",
            to = "user@contoso.com",
            from = "sender@contoso.com",
            subject = "Azure Functions email with SendGrid",
            text = "Sent from Azure Functions")
                OutputBinding<String> message,

        final ExecutionContext context) {

        final String toAddress = "user@contoso.com";
        final String value = "Sent from Azure Functions";

        StringBuilder builder = new StringBuilder()
            .append("{")
            .append("\"personalizations\": [{ \"to\": [{ \"email\": \"%s\"}]}],")
            .append("\"content\": [{\"type\": \"text/plain\", \"value\": \"%s\"}]")
            .append("}");

        final String body = String.format(builder.toString(), toAddress, value);

        message.setValue(body);

        return request.createResponseBuilder(HttpStatus.OK).body("Sent").build();
    }
}

Attributes

A folyamaton belüli és az izolált feldolgozói folyamat C#-kódtárai attribútumokkal határozzák meg a kimeneti kötést. A C#-szkript ehelyett function.json konfigurációs fájlt használ.

Izolált feldolgozói folyamatfüggvény-alkalmazásokban a SendGridOutputAttribute következő paraméterek támogatottak:

Attribútum/széljegyzet tulajdonság Description
ApiKey Az API-kulcsot tartalmazó alkalmazásbeállítás neve. Ha nincs beállítva, az alapértelmezett alkalmazásbeállítás neve .AzureWebJobsSendGridApiKey
To (Nem kötelező) A címzett e-mail-címe.
From (Nem kötelező) A feladó e-mail-címe.
Subject (Nem kötelező) Az e-mail tárgya.
Text (Nem kötelező) Az e-mail tartalma.

Annotations

A SendGridOutput megjegyzés lehetővé teszi a SendGrid-kötés deklaratív konfigurálását az alábbi konfigurációs értékek megadásával.

Configuration

Az alábbi táblázat a function.json fájlban elérhető kötéskonfigurációs tulajdonságokat és az SendGrid attribútumot/széljegyzetet sorolja fel.

function.json tulajdonság Description
type A beállításnak a sendGridkövetkezőnek kell lennie: .
direction A beállításnak a outkövetkezőnek kell lennie: .
name A kérelem vagy a kérelem törzsének függvénykódjában használt változónév. Ez az érték akkor van $return , ha csak egy visszatérési érték van.
apiKey Az API-kulcsot tartalmazó alkalmazásbeállítás neve. Ha nincs beállítva, az alapértelmezett alkalmazásbeállítás neve AzureWebJobsSendGridApiKey.
to (Nem kötelező) A címzett e-mail-címe.
from (Nem kötelező) A feladó e-mail-címe.
subject (Nem kötelező) Az e-mail tárgya.
text (Nem kötelező) Az e-mail tartalma.

Előfordulhat, hogy a választható tulajdonságok alapértelmezett értékeket határoznak meg a kötésben, és programozott módon vannak hozzáadva vagy felülírva.

Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues.

host.json beállítások

Ez a szakasz a kötéshez elérhető konfigurációs beállításokat ismerteti a 2.x és újabb verzióban. A host.json fájl beállításai a függvényalkalmazás-példány összes függvényére vonatkoznak. A függvényalkalmazás konfigurációs beállításaival kapcsolatos további információkért lásd host.json Azure Functionsre vonatkozó referenciát.

Note

A Host.json a Functions 1.x-ben az Azure Functions 1.x host.json referenciájában talál.

{
    "version": "2.0",
    "extensions": {
        "sendGrid": {
            "from": "Azure Functions <samples@functions.com>"
        }
    }
}
Property Default Description
from n/a A feladó e-mail-címe az összes függvényben.

Következő lépések