Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wyjaśniono, jak wysyłać wiadomości e-mail przy użyciu powiązań usługi SendGrid w usłudze Azure Functions. Usługa Azure Functions obsługuje powiązanie wyjściowe dla usługi SendGrid.
Są to informacje referencyjne dla deweloperów usługi Azure Functions. Jeśli dopiero zaczynasz korzystać z usługi Azure Functions, zacznij od następujących zasobów:
Dokumentacja dla deweloperów języka C#:
Instalowanie rozszerzenia
Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C#, którego używasz w aplikacji funkcji:
Funkcje są wykonywane w izolowanym procesie roboczym języka C#. Aby dowiedzieć się więcej, zobacz Przewodnik dotyczący uruchamiania usługi Azure Functions w języku C# w izolowanym procesie roboczym.
Funkcjonalność rozszerzenia różni się w zależności od wersji rozszerzenia:
Dodaj rozszerzenie do projektu, instalując pakiet NuGet w wersji 3.x.
Instalowanie pakietu
Aby móc używać tego rozszerzenia powiązania w aplikacji, upewnij się, że plik host.json w katalogu głównym projektu zawiera następujące extensionBundle odwołanie:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
W tym przykładzie version[4.0.0, 5.0.0) wartość polecenia nakazuje hostowi usługi Functions użycie wersji pakietu, która jest co najmniej 4.0.0 mniejsza niż 5.0.0, która zawiera wszystkie potencjalne wersje 4.x. Ta notacja skutecznie utrzymuje aplikację w najnowszej dostępnej wersji pomocniczej pakietu rozszerzenia v4.x.
Jeśli to możliwe, należy użyć najnowszej wersji głównej pakietu rozszerzeń i zezwolić środowisku uruchomieniowemu na automatyczne utrzymywanie najnowszej wersji pomocniczej. Zawartość najnowszego pakietu można wyświetlić na stronie wydania pakietów rozszerzeń. Aby uzyskać więcej informacji, zobacz Pakiety rozszerzeń usługi Azure Functions.
Example
Funkcję języka C# można utworzyć przy użyciu jednego z następujących trybów języka C#:
- Model izolowanego procesu roboczego: skompilowana funkcja języka C#, która jest uruchamiana w procesie roboczym izolowanym od środowiska uruchomieniowego. Proces izolowanego procesu roboczego jest wymagany do obsługi funkcji języka C# działających w długoterminowych wersjach pomocy technicznej (LTS) i innych niż LTS dla platformy .NET i programu .NET Framework.
- Model przetwarzania: skompilowana funkcja języka C#, która działa w tym samym procesie co środowisko uruchomieniowe usługi Azure Functions.
- Skrypt języka C#: używany głównie podczas tworzenia funkcji języka C# w witrynie Azure Portal.
Important
Wsparcie zostanie zakończone dla modelu procesu 10 listopada 2026 r. Zdecydowanie zalecamy przeprowadzenie migracji aplikacji do izolowanego modelu procesu roboczego w celu uzyskania pełnej obsługi.
Obecnie nie mamy przykładu użycia powiązania SendGrid w aplikacji funkcji uruchomionej w izolowanym procesie roboczym.
W poniższym przykładzie przedstawiono powiązanie wyjściowe usługi SendGrid w pliku function.json i funkcję Języka JavaScript , która używa powiązania.
Oto dane powiązania w pliku function.json :
{
"bindings": [
{
"name": "$return",
"type": "sendGrid",
"direction": "out",
"apiKey" : "MySendGridKey",
"to": "{ToEmail}",
"from": "{FromEmail}",
"subject": "SendGrid output bindings"
}
]
}
W sekcji konfiguracji opisano te właściwości.
Oto kod JavaScript:
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;
};
Kompletne przykłady programu PowerShell nie są obecnie dostępne dla powiązań usługi SendGrid.
W poniższym przykładzie przedstawiono funkcję wyzwalaną przez protokół HTTP, która wysyła wiadomość e-mail przy użyciu powiązania SendGrid. Wartości domyślne można podać w konfiguracji powiązania. Na przykład adres e-mail z adresu e-mail jest skonfigurowany w 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"
}
]
}
Poniższa funkcja pokazuje, jak można podać wartości niestandardowe dla właściwości opcjonalnych.
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")
W poniższym przykładzie @SendGridOutput użyto adnotacji z biblioteki środowiska uruchomieniowego funkcji Języka Java do wysłania wiadomości e-mail przy użyciu powiązania wyjściowego usługi 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();
}
}
Attributes
Zarówno w procesie przetwarzania, jak i izolowanym procesie roboczym biblioteki języka C# używają atrybutów do zdefiniowania powiązania wyjściowego. Zamiast tego skrypt języka C# używa pliku konfiguracji function.json.
W roboczego obsługiwane są następujące parametry:
| Właściwość atrybutu/adnotacji | Description |
|---|---|
| ApiKey | Nazwa ustawienia aplikacji zawierającego klucz interfejsu API. Jeśli nie zostanie ustawiona, domyślna nazwa ustawienia aplikacji to AzureWebJobsSendGridApiKey. |
| To | (Opcjonalnie) Adres e-mail adresata. |
| From | (Opcjonalnie) Adres e-mail nadawcy. |
| Subject | (Opcjonalnie) Temat wiadomości e-mail. |
| Text | (Opcjonalnie) Zawartość wiadomości e-mail. |
Annotations
Adnotacja SendGridOutput umożliwia deklaratywne konfigurowanie powiązania usługi SendGrid przez podanie następujących wartości konfiguracji.
Configuration
W poniższej tabeli wymieniono właściwości konfiguracji powiązania dostępne w pliku function.json oraz atrybut/adnotację SendGrid .
| właściwość function.json | Description |
|---|---|
| type | Musi być ustawiona wartość sendGrid. |
| direction | Musi być ustawiona wartość out. |
| name | Nazwa zmiennej używana w kodzie funkcji dla treści żądania lub żądania. Ta wartość jest $return taka, gdy jest tylko jedna zwracana wartość. |
| apiKey | Nazwa ustawienia aplikacji zawierającego klucz interfejsu API. Jeśli nie zostanie ustawiona, domyślna nazwa ustawienia aplikacji to AzureWebJobsSendGridApiKey. |
| to | (Opcjonalnie) Adres e-mail adresata. |
| from | (Opcjonalnie) Adres e-mail nadawcy. |
| subject | (Opcjonalnie) Temat wiadomości e-mail. |
| text | (Opcjonalnie) Zawartość wiadomości e-mail. |
Właściwości opcjonalne mogą mieć wartości domyślne zdefiniowane w powiązaniu i programowo dodane lub zastąpione.
Podczas tworzenia aplikacji lokalnie dodaj ustawienia aplikacji w plikulocal.settings.json w kolekcji Values .
ustawienia pliku host.json
W tej sekcji opisano ustawienia konfiguracji dostępne dla tego powiązania w wersji 2.x lub nowszej. Ustawienia w pliku host.json mają zastosowanie do wszystkich funkcji w wystąpieniu aplikacji funkcji. Aby uzyskać więcej informacji na temat ustawień konfiguracji aplikacji funkcji, zobacz host.json dokumentacja usługi Azure Functions.
Note
Aby zapoznać się z dokumentacją host.json w usłudze Functions 1.x, zobacz host.json reference for Azure Functions 1.x (Dokumentacja usługi Azure Functions 1.x).
{
"version": "2.0",
"extensions": {
"sendGrid": {
"from": "Azure Functions <samples@functions.com>"
}
}
}
| Property | Default | Description |
|---|---|---|
| from | n/a | Adres e-mail nadawcy we wszystkich funkcjach. |