Azure Functions SendGrid-bindingen
In dit artikel wordt uitgelegd hoe u e-mail verzendt met behulp van SendGrid-bindingen in Azure Functions. Azure Functions ondersteunt een uitvoerbinding voor SendGrid.
Dit is referentie-informatie voor Azure Functions-ontwikkelaars. Als u nog geen ervaring hebt met Azure Functions, begint u met de volgende resources:
C#-verwijzingen voor ontwikkelaars:
De extensie installeren
Het NuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus die u gebruikt in uw functie-app:
Functies worden uitgevoerd in een geïsoleerd C#-werkproces. Zie De handleiding voor het uitvoeren van C# Azure Functions in een geïsoleerd werkproces voor meer informatie.
De functionaliteit van de extensie varieert afhankelijk van de extensieversie:
Voeg de extensie toe aan uw project door het NuGet-pakket, versie 3.x, te installeren.
Bundel installeren
Vanaf Functions versie 2.x maakt de HTTP-extensie deel uit van een extensiebundel, die is opgegeven in uw host.json projectbestand. Zie uitbreidingsbundel voor meer informatie.
Deze versie van de extensie moet al beschikbaar zijn voor uw functie-app met extensiebundel, versie 2.x.
Opmerking
U kunt een C#-functie maken met behulp van een van de volgende C#-modi:
- Geïsoleerd werkrolmodel: gecompileerde C#-functie die wordt uitgevoerd in een werkproces dat is geïsoleerd van de runtime. Geïsoleerd werkproces is vereist voor de ondersteuning van C#-functies die worden uitgevoerd op LTS- en niet-LTS-versies .NET en .NET Framework.
- In-process model: gecompileerde C#-functie die wordt uitgevoerd in hetzelfde proces als de Functions-runtime.
- C#-script: wordt voornamelijk gebruikt wanneer u C#-functies maakt in Azure Portal.
Belangrijk
De ondersteuning wordt beëindigd voor het in-process model op 10 november 2026. We raden u ten zeerste aan uw apps te migreren naar het geïsoleerde werkrolmodel voor volledige ondersteuning.
We hebben momenteel geen voorbeeld voor het gebruik van de SendGrid-binding in een functie-app die wordt uitgevoerd in een geïsoleerd werkproces.
In het volgende voorbeeld ziet u een SendGrid-uitvoerbinding in een function.json-bestand en een JavaScript-functie die gebruikmaakt van de binding.
Dit zijn de bindingsgegevens in het bestand function.json :
{
"bindings": [
{
"name": "$return",
"type": "sendGrid",
"direction": "out",
"apiKey" : "MySendGridKey",
"to": "{ToEmail}",
"from": "{FromEmail}",
"subject": "SendGrid output bindings"
}
]
}
In de configuratiesectie worden deze eigenschappen uitgelegd.
Dit is de 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
}]
};
return message;
};
Volledige PowerShell-voorbeelden zijn momenteel niet beschikbaar voor SendGrid-bindingen.
In het volgende voorbeeld ziet u een door HTTP geactiveerde functie waarmee een e-mailbericht wordt verzonden met behulp van de SendGrid-binding. U kunt standaardwaarden opgeven in de bindingsconfiguratie. Het van-e-mailadres is bijvoorbeeld geconfigureerd in 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"
}
]
}
De volgende functie laat zien hoe u aangepaste waarden voor optionele eigenschappen kunt opgeven.
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")
In het volgende voorbeeld wordt de @SendGridOutput
aantekening uit de Runtime-bibliotheek van Java Functions gebruikt om een e-mailbericht te verzenden met behulp van de SendGrid-uitvoerbinding.
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();
}
}
Kenmerken
Zowel in-process als geïsoleerde werkproces C#-bibliotheken gebruiken kenmerken om de uitvoerbinding te definiëren. C#-script maakt in plaats daarvan gebruik van een function.json configuratiebestand.
In geïsoleerde werkprocesfunctie-apps ondersteunt de SendGridOutputAttribute
volgende parameters:
Eigenschap Kenmerk/aantekening | Beschrijving |
---|---|
ApiKey | De naam van een app-instelling die uw API-sleutel bevat. Als dit niet is ingesteld, is AzureWebJobsSendGridApiKey de standaardnaam van de app-instelling. |
Als u dit wilt doen | (Optioneel) Het e-mailadres van de geadresseerde. |
Vanaf | (Optioneel) Het e-mailadres van de afzender. |
Onderwerp | (Optioneel) Het onderwerp van het e-mailbericht. |
Text | (Optioneel) De e-mailinhoud. |
Aantekeningen
Met de sendGridOutput-aantekening kunt u de SendGrid-binding declaratief configureren door de volgende configuratiewaarden op te geven.
Configuratie
De volgende tabel bevat de bindingconfiguratie-eigenschappen die beschikbaar zijn in het bestand function.json en het kenmerk/de SendGrid
aantekening.
eigenschap function.json | Beschrijving |
---|---|
type | Moet worden ingesteld op sendGrid . |
direction | Moet worden ingesteld op out . |
name | De naam van de variabele die wordt gebruikt in functiecode voor de aanvraag- of aanvraagbody. Deze waarde is $return wanneer er slechts één retourwaarde is. |
apiKey | De naam van een app-instelling die uw API-sleutel bevat. Als dit niet is ingesteld, is de standaardnaam van de app-instelling AzureWebJobsSendGridApiKey. |
to | (Optioneel) Het e-mailadres van de geadresseerde. |
van | (Optioneel) Het e-mailadres van de afzender. |
onderwerp | (Optioneel) Het onderwerp van het e-mailbericht. |
tekst | (Optioneel) De e-mailinhoud. |
Optionele eigenschappen hebben mogelijk standaardwaarden gedefinieerd in de binding en kunnen programmatisch worden toegevoegd of overschreven.
Wanneer u lokaal ontwikkelt, voegt u uw toepassingsinstellingen toe aan het local.settings.json-bestand in de Values
verzameling.
host.json-instellingen
In deze sectie worden de configuratie-instellingen beschreven die beschikbaar zijn voor deze binding in versie 2.x en hoger. Instellingen in het bestand host.json zijn van toepassing op alle functies in een exemplaar van een functie-app. Het onderstaande voorbeeld host.json bestand bevat alleen de instellingen voor versie 2.x+ voor deze binding. Zie host.json naslaginformatie voor Azure Functions voor meer informatie over configuratie-instellingen voor functie-apps in versies 2.x en latere versies.
Notitie
Zie host.json-verwijzing voor Azure Functions 1.x voor een verwijzing naar host.json in Functions 1.x.
{
"version": "2.0",
"extensions": {
"sendGrid": {
"from": "Azure Functions <samples@functions.com>"
}
}
}
Eigenschappen | Standaard | Beschrijving |
---|---|---|
van | N.v.t. | Het e-mailadres van de afzender in alle functies. |