gebeurtenis
17 mrt, 21 - 21 mrt, 10
Neem deel aan de meetup-serie om schaalbare AI-oplossingen te bouwen op basis van praktijkgebruiksvoorbeelden met collega-ontwikkelaars en experts.
Nu registrerenDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
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:
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.
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.
U kunt een C#-functie maken met behulp van een van de volgende C#-modi:
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();
}
}
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. |
Met de sendGridOutput-aantekening kunt u de SendGrid-binding declaratief configureren door de volgende configuratiewaarden op te geven.
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.
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. |
gebeurtenis
17 mrt, 21 - 21 mrt, 10
Neem deel aan de meetup-serie om schaalbare AI-oplossingen te bouwen op basis van praktijkgebruiksvoorbeelden met collega-ontwikkelaars en experts.
Nu registreren