Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как отправлять сообщения электронной почты с помощью привязок SendGrid в Функциях Azure. Служба "Функции Azure" поддерживают выходную привязку для SendGrid.
Это справочные сведения для разработчиков функций Azure. Если вы новичок в функциях Azure, начните со следующих ресурсов:
Ссылки для разработчиков C#:
Установка расширения
Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:
Функции выполняются в изолированном рабочем процессе C#. Дополнительные сведения см. в руководстве по запуску Функции Azure C# в изолированном рабочем процессе.
Функциональные возможности расширения отличаются в зависимости от версии расширения:
Добавьте расширение в проект, установив пакет NuGet версии 3.x.
Установка пакета
Чтобы использовать это расширение привязки в приложении, убедитесь, что файл host.json в корне проекта содержит следующую extensionBundle ссылку:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
В этом примере значение указывает узлу version функций использовать версию пакета, которая по крайней мере [4.0.0, 5.0.0) меньше4.0.0, чем , которая включает все потенциальные версии 4.x.5.0.0 Эта нотация эффективно поддерживает ваше приложение в последней доступной дополнительной версии пакета расширений версии 4.x.
По возможности следует использовать последнюю версию пакета расширений и разрешить среде выполнения автоматически поддерживать последнюю дополнительную версию. Содержимое последнего пакета можно просмотреть на странице выпуска пакетов расширений. Дополнительные сведения см. в пакетах расширений функций Azure.
Example
Вы можете создать функцию C# с помощью одного из следующих режимов C#:
- Изолированная рабочая модель: скомпилированная функция C#, которая выполняется в рабочем процессе, изолированном от среды выполнения. Изолированный рабочий процесс необходим для поддержки функций C#, работающих в долгосрочной поддержке (LTS) и версиях, отличных от LTS для .NET и .NET Framework.
- Модель в процессе: скомпилированная функция C#, которая выполняется в том же процессе, что и среда выполнения Функций Azure.
- Скрипт C#: используется в основном при создании функций C# на портале Azure.
Important
Поддержка будет завершена для модели в процессе 10 ноября 2026 г. Настоятельно рекомендуется перенести приложения в изолированную рабочую модель для полной поддержки.
В настоящее время у нас нет примера использования привязки SendGrid в приложении-функции, работающем в изолированном рабочем процессе.
В следующем примере показана выходная привязка SendGrid в файле function.json и функция JavaScript , использующая привязку.
Ниже приведены данные привязки в файле function.json :
{
"bindings": [
{
"name": "$return",
"type": "sendGrid",
"direction": "out",
"apiKey" : "MySendGridKey",
"to": "{ToEmail}",
"from": "{FromEmail}",
"subject": "SendGrid output bindings"
}
]
}
В разделе конфигурации описаны эти свойства.
Ниже показан код JavaScript.
module.exports = function (context, input) {
var message = {
"personalizations": [ { "to": [ { "email": "[email protected]" } ] } ],
from: { email: "[email protected]" },
subject: "Azure news",
content: [{
type: 'text/plain',
value: input
}]
};
return message;
};
Полные примеры PowerShell для привязок SendGrid в настоящее время недоступны.
В следующем примере показана функция, активируемая по HTTP, которая отправляет сообщение электронной почты с помощью привязки SendGrid. В конфигурации этой привязки можно оставить значения по умолчанию. Например, адрес электронной почты настроен в 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": "[email protected]"
}
]
}
Следующая функция демонстрирует, как указать пользовательские значения для необязательных свойств.
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": "[email protected]"
}]}],
"subject": "Azure Functions email with SendGrid",
"content": [{
"type": "text/plain",
"value": value }]}
sendGridMessage.set(json.dumps(message))
return func.HttpResponse(f"Sent")
В следующем примере применяется аннотация @SendGridOutput из библиотеки среды выполнения функций Java, чтобы отправить сообщение электронной почты с использованием выходной привязки 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 = "[email protected]",
from = "[email protected]",
subject = "Azure Functions email with SendGrid",
text = "Sent from Azure Functions")
OutputBinding<String> message,
final ExecutionContext context) {
final String toAddress = "[email protected]";
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
Библиотеки C# в процессе и изолированном рабочем процессе используют атрибуты для определения выходной привязки. Вместо этого в скрипте C# используется файл конфигурации function.json.
В поддерживаются следующие параметры:
| Свойство Атрибута и заметки | Description |
|---|---|
| ApiKey | Имя параметра приложения, в котором содержится ваш ключ API. Если имя параметра приложения не указано, по умолчанию используется AzureWebJobsSendGridApiKey. |
| To | (Необязательно) Введите адрес электронной почты получателя. |
| From | (Необязательно) Введите адрес электронной почты отправителя. |
| Subject | (Необязательно) Введите тему сообщения электронной почты. |
| Text | (Необязательно) Текст сообщения. |
Annotations
Заметка SendGridOutput позволяет декларативно настроить привязку SendGrid, указав следующие значения конфигурации.
Configuration
В следующей таблице перечислены свойства конфигурации привязки, доступные в файле function.json и SendGrid атрибуте или заметке.
| Свойство в function.json | Description |
|---|---|
| type | Должен иметь значениеsendGrid. |
| direction | Должен иметь значениеout. |
| name | Имя переменной, из которой в коде функции можно получить запрос или текст запроса. Это значение имеет только $return одно возвращаемое значение. |
| apiKey | Имя параметра приложения, в котором содержится ваш ключ API. Если параметр приложения по умолчанию не задан, это AzureWebJobsSendGridApiKey. |
| to | (Необязательно) Введите адрес электронной почты получателя. |
| from | (Необязательно) Введите адрес электронной почты отправителя. |
| subject | (Необязательно) Введите тему сообщения электронной почты. |
| text | (Необязательно) Текст сообщения. |
Для необязательных свойств можно определить в привязке значения по умолчанию, а затем добавлять или переопределять их программно.
При локальной разработке добавьте параметры приложения в файлlocal.settings.json в Values коллекции.
Параметры файла host.json
В этом разделе описаны параметры конфигурации, доступные для этой привязки в версии 2.x и более поздних версиях. Параметры в файле host.json применяются ко всем функциям в экземпляре приложения-функции. Дополнительные сведения о параметрах конфигурации приложения-функции см. вhost.json справочнике по функциям Azure.
Note
Чтобы получить дополнительные сведения о файле host.json в Функции 1.x, см. статью host.json reference for Azure Functions 1.x(Справочник по файлу host.json для службы "Функции Azure" версии 1.x.).
{
"version": "2.0",
"extensions": {
"sendGrid": {
"from": "Azure Functions <[email protected]>"
}
}
}
| Property | Default | Description |
|---|---|---|
| from | n/a | Адрес электронной почты для всех функций. |