Azure Functions SendGrid-bindningar
Den här artikeln beskriver hur du skickar e-post med hjälp av SendGrid-bindningar i Azure Functions. Azure Functions stöder en utdatabindning för SendGrid.
Det här är referensinformation för Azure Functions-utvecklare. Om du inte har använt Azure Functions tidigare börjar du med följande resurser:
C#-utvecklarreferenser:
Installera tillägget
Vilket NuGet-tilläggspaket du installerar beror på vilket C#-läge du använder i funktionsappen:
Funktioner körs i en isolerad C#-arbetsprocess. Mer information finns i Guide för att köra C# Azure Functions i en isolerad arbetsprocess.
Funktionerna i tillägget varierar beroende på tilläggsversionen:
Installera paket
Från och med Functions version 2.x är HTTP-tillägget en del av ett tilläggspaket som anges i din host.json projektfil. Mer information finns i tilläggspaketet.
Den här versionen av tillägget bör redan vara tillgänglig för funktionsappen med tilläggspaketet version 2.x.
Exempel
En C#-funktion kan skapas med något av följande C#-lägen:
- Isolerad arbetsmodell: Kompilerad C#-funktion som körs i en arbetsprocess som är isolerad från körningen. Isolerad arbetsprocess krävs för att stödja C#-funktioner som körs på LTS- och icke-LTS-versioner .NET och .NET Framework.
- Processmodell: Kompilerad C#-funktion som körs i samma process som Functions-körningen.
- C#-skript: Används främst när du skapar C#-funktioner i Azure-portalen.
Viktigt!
Supporten upphör för den pågående modellen den 10 november 2026. Vi rekommenderar starkt att du migrerar dina appar till den isolerade arbetsmodellen för fullt stöd.
Vi har för närvarande inget exempel för att använda SendGrid-bindningen i en funktionsapp som körs i en isolerad arbetsprocess.
I följande exempel visas en SendGrid-utdatabindning i en function.json-fil och en JavaScript-funktion som använder bindningen.
Här är bindningsdata i filen function.json :
{
"bindings": [
{
"name": "$return",
"type": "sendGrid",
"direction": "out",
"apiKey" : "MySendGridKey",
"to": "{ToEmail}",
"from": "{FromEmail}",
"subject": "SendGrid output bindings"
}
]
}
I konfigurationsavsnittet förklaras dessa egenskaper.
Här är JavaScript-koden:
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;
};
Fullständiga PowerShell-exempel är för närvarande inte tillgängliga för SendGrid-bindningar.
I följande exempel visas en HTTP-utlöst funktion som skickar ett e-postmeddelande med hjälp av SendGrid-bindningen. Du kan ange standardvärden i bindningskonfigurationen. Till exempel konfigureras från e-postadressen i function.json.
{
"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"
}
]
}
Följande funktion visar hur du kan ange anpassade värden för valfria egenskaper.
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")
I följande exempel används kommentaren @SendGridOutput
från Java Functions-körningsbiblioteket för att skicka ett e-postmeddelande med hjälp av SendGrid-utdatabindningen.
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();
}
}
Attribut
C#-bibliotek i både processprocess och isolerad arbetsprocess använder attribut för att definiera utdatabindningen. C#-skriptet använder i stället en function.json konfigurationsfil.
I funktionsappar för SendGridOutputAttribute
isolerade arbetsprocesser stöder följande parametrar:
Egenskap för attribut/anteckning | beskrivning |
---|---|
ApiKey | Namnet på en appinställning som innehåller din API-nyckel. Om det inte anges är AzureWebJobsSendGridApiKey standardnamnet för appinställningen . |
To | (Valfritt) Mottagarens e-postadress. |
Från | (Valfritt) Avsändarens e-postadress. |
Ämne | (Valfritt) Ämnet för e-postmeddelandet. |
Text | (Valfritt) E-postinnehållet. |
Kommentarer
Med SendGridOutput-kommentaren kan du deklarativt konfigurera SendGrid-bindningen genom att ange följande konfigurationsvärden.
Konfiguration
I följande tabell visas de bindningskonfigurationsegenskaper som är tillgängliga i function.json-filen och attributet/anteckningenSendGrid
.
egenskapen function.json | beskrivning |
---|---|
typ | Måste anges till sendGrid . |
riktning | Måste anges till out . |
Namn | Variabelnamnet som används i funktionskoden för begäran eller begärandetexten. Det här värdet är $return när det bara finns ett returvärde. |
apiKey | Namnet på en appinställning som innehåller din API-nyckel. Om det inte anges är standardnamnet för appinställningen AzureWebJobsSendGridApiKey. |
to | (Valfritt) Mottagarens e-postadress. |
från | (Valfritt) Avsändarens e-postadress. |
Ämne | (Valfritt) Ämnet för e-postmeddelandet. |
text | (Valfritt) E-postinnehållet. |
Valfria egenskaper kan ha standardvärden som definierats i bindningen och antingen lagts till eller åsidosatts programmatiskt.
När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values
samlingen.
host.json inställningar
I det här avsnittet beskrivs de konfigurationsinställningar som är tillgängliga för den här bindningen i version 2.x och senare. Inställningar i host.json-filen gäller för alla funktioner i en funktionsappinstans. Exemplet host.json filen nedan innehåller endast version 2.x+-inställningarna för den här bindningen. Mer information om konfigurationsinställningar för funktionsappar i version 2.x och senare versioner finns i host.json referens för Azure Functions.
Kommentar
En referens för host.json i Functions 1.x finns i host.json referens för Azure Functions 1.x.
{
"version": "2.0",
"extensions": {
"sendGrid": {
"from": "Azure Functions <samples@functions.com>"
}
}
}
Property | Standardvärde | beskrivning |
---|---|---|
från | saknas | Avsändarens e-postadress för alla funktioner. |