Vazby Azure Functions SendGrid
Tento článek vysvětluje, jak odesílat e-maily pomocí vazeb SendGrid ve službě Azure Functions. Azure Functions podporuje výstupní vazbu pro SendGrid.
Toto jsou referenční informace pro vývojáře Azure Functions. Pokud s Azure Functions začínáte, začněte s následujícími prostředky:
Referenční informace pro vývojáře jazyka C#:
Instalace rozšíření
Balíček NuGet rozšíření, který nainstalujete, závisí na režimu jazyka C#, který používáte ve své aplikaci funkcí:
Funkce se spouštějí v izolovaném pracovním procesu C#. Další informace najdete v průvodci spuštěním služby Azure Functions v jazyce C# v izolovaném pracovním procesu.
Funkce rozšíření se liší v závislosti na verzi rozšíření:
Přidejte rozšíření do projektu instalací balíčku NuGet verze 3.x.
Instalace sady
Počínaje funkcí verze 2.x je rozšíření HTTP součástí sady rozšíření, která je zadaná v souboru projektu host.json. Další informace najdete v sadě rozšíření.
Tato verze rozšíření by už měla být dostupná pro vaši aplikaci funkcí s sadou rozšíření verze 2.x.
Příklad
Funkci jazyka C# je možné vytvořit pomocí jednoho z následujících režimů jazyka C#:
- Izolovaný model pracovního procesu: Kompilovaná funkce jazyka C#, která běží v pracovním procesu, který je izolovaný od modulu runtime. Izolovaný pracovní proces je nutný pro podporu funkcí C# spuštěných na LTS a jiných verzích než LTS .NET a rozhraní .NET Framework.
- Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime služby Functions.
- Skript jazyka C#: Používá se především při vytváření funkcí jazyka C# na webu Azure Portal.
Důležité
Podpora modelu v procesu skončí 10. listopadu 2026. Důrazně doporučujeme migrovat aplikace do izolovaného modelu pracovního procesu pro plnou podporu.
V současné době nemáme příklad použití vazby SendGrid v aplikaci funkcí spuštěné v izolovaném pracovním procesu.
Následující příklad ukazuje výstupní vazbu SendGrid v souboru function.json a funkci JavaScriptu, která používá vazbu.
Tady jsou data vazby v souboru function.json :
{
"bindings": [
{
"name": "$return",
"type": "sendGrid",
"direction": "out",
"apiKey" : "MySendGridKey",
"to": "{ToEmail}",
"from": "{FromEmail}",
"subject": "SendGrid output bindings"
}
]
}
Oddíl konfigurace vysvětluje tyto vlastnosti.
Tady je javascriptový kód:
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;
};
Kompletní příklady PowerShellu nejsou aktuálně k dispozici pro vazby SendGrid.
Následující příklad ukazuje funkci aktivovanou protokolem HTTP, která odesílá e-mail pomocí vazby SendGrid. V konfiguraci vazby můžete zadat výchozí hodnoty. Například z e-mailové adresy je nakonfigurovaná v 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"
}
]
}
Následující funkce ukazuje, jak můžete zadat vlastní hodnoty pro volitelné vlastnosti.
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")
Následující příklad používá poznámku @SendGridOutput
z knihovny modulu runtime funkcí Java k odeslání e-mailu pomocí výstupní vazby SendGrid.
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();
}
}
Atributy
Knihovny C# v procesu i izolovaného pracovního procesu používají atributy k definování výstupní vazby. Skript jazyka C# místo toho používá konfigurační soubor function.json.
V aplikacích SendGridOutputAttribute
funkcí izolovaného pracovního procesu podporují následující parametry:
Vlastnost atributu/poznámky | Popis |
---|---|
Klíč rozhraní API | Název nastavení aplikace, které obsahuje váš klíč rozhraní API. Pokud není nastavená, výchozí název nastavení aplikace je AzureWebJobsSendGridApiKey . |
Na | (Volitelné) E-mailová adresa příjemce. |
Od | (Volitelné) E-mailová adresa odesílatele. |
Předmět | (Volitelné) Předmět e-mailu. |
Text | (Volitelné) Obsah e-mailu. |
Poznámky
Poznámka SendGridOutput umožňuje deklarativní konfiguraci vazby SendGrid zadáním následujících hodnot konfigurace.
Konfigurace
Následující tabulka uvádí vlastnosti konfigurace vazby, které jsou k dispozici v souboru function.json a atributu/poznámky SendGrid
.
vlastnost function.json | Popis |
---|---|
type | Musí být nastavena na sendGrid hodnotu . |
direction | Musí být nastavena na out hodnotu . |
Jméno | Název proměnné použité v kódu funkce pro text požadavku nebo požadavku. Tato hodnota je $return v případě, že existuje pouze jedna návratová hodnota. |
apiKey | Název nastavení aplikace, které obsahuje váš klíč rozhraní API. Pokud není nastavené, výchozí název nastavení aplikace je AzureWebJobsSendGridApiKey. |
to | (Volitelné) E-mailová adresa příjemce. |
od | (Volitelné) E-mailová adresa odesílatele. |
subject | (Volitelné) Předmět e-mailu. |
text | (Volitelné) Obsah e-mailu. |
Volitelné vlastnosti můžou mít výchozí hodnoty definované v vazbě a buď přidané nebo přepsáné programově.
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values
.
nastavení host.json
Tato část popisuje nastavení konfigurace dostupné pro tuto vazbu ve verzích 2.x a novějších. Nastavení v souboru host.json platí pro všechny funkce v instanci aplikace funkcí. Následující příklad host.json souboru obsahuje pouze nastavení verze 2.x+ pro tuto vazbu. Další informace o nastavení konfigurace aplikace funkcí ve verzích 2.x a novějších verzích najdete v host.json referenčních informacích ke službě Azure Functions.
Poznámka:
Referenční informace o host.json ve službě Functions 1.x najdete v host.json referenčních informacích ke službě Azure Functions 1.x.
{
"version": "2.0",
"extensions": {
"sendGrid": {
"from": "Azure Functions <samples@functions.com>"
}
}
}
Vlastnost | Výchozí | Popis |
---|---|---|
od | Není k dispozici | E-mailová adresa odesílatele ve všech funkcích. |