Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как отправлять текстовые сообщения с помощью привязок Twilio в Функциях Azure. Служба "Функции Azure" поддерживают выходные привязки для Twilio.
Это справочные сведения для разработчиков функций Azure. Если вы новичок в функциях Azure, начните со следующих ресурсов:
Ссылки для разработчиков C#:
Установка расширения
Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:
Функции выполняются в изолированном рабочем процессе C#. Дополнительные сведения см. в руководстве по запуску Функции Azure C# в изолированном рабочем процессе.
Функциональные возможности расширения отличаются в зависимости от версии расширения:
В настоящее время нет поддержки Twilio для изолированного приложения рабочего процесса.
Установка пакета
Чтобы использовать это расширение привязки в приложении, убедитесь, что файл 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
Если не указано иное, эти примеры относятся к версии среды выполнения Функций 2.x и более поздним.
Вы можете создать функцию C# с помощью одного из следующих режимов C#:
- Изолированная рабочая модель: скомпилированная функция C#, которая выполняется в рабочем процессе, изолированном от среды выполнения. Изолированный рабочий процесс необходим для поддержки функций C#, работающих в долгосрочной поддержке (LTS) и версиях, отличных от LTS для .NET и .NET Framework.
- Модель в процессе: скомпилированная функция C#, которая выполняется в том же процессе, что и среда выполнения Функций Azure.
- Скрипт C#: используется в основном при создании функций C# на портале Azure.
Important
Поддержка будет завершена для модели в процессе 10 ноября 2026 г. Настоятельно рекомендуется перенести приложения в изолированную рабочую модель для полной поддержки.
Привязка Twilio в настоящее время не поддерживается для приложения-функции, работающего в изолированном рабочем процессе.
В следующем примере показана выходная привязка Twilio в файле function.json и функция JavaScript , использующая привязку.
Данные привязки в файле function.json:
Пример файла function.json:
{
"type": "twilioSms",
"name": "message",
"accountSidSetting": "TwilioAccountSid",
"authTokenSetting": "TwilioAuthToken",
"from": "+1425XXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Ниже показан код JavaScript.
module.exports = async function (context, myQueueItem) {
context.log('Node.js queue trigger function processed work item', myQueueItem);
// In this example the queue item is a JSON string representing an order that contains the name of a
// customer and a mobile number to send text updates to.
var msg = "Hello " + myQueueItem.name + ", thank you for your order.";
// Even if you want to use a hard coded message in the binding, you must at least
// initialize the message binding.
context.bindings.message = {};
// A dynamic message can be set instead of the body in the output binding. The "To" number
// must be specified in code.
context.bindings.message = {
body : msg,
to : myQueueItem.mobileNumber
};
};
Полные примеры PowerShell для привязок SendGrid в настоящее время недоступны.
В следующем примере показано, как отправить SMS-сообщение с помощью выходной привязки, как определено в следующем function.json.
{
"type": "twilioSms",
"name": "twilioMessage",
"accountSidSetting": "TwilioAccountSID",
"authTokenSetting": "TwilioAuthToken",
"from": "+1XXXXXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Вы можете передать сериализованный объект JSON в параметр func.Out, чтобы отправить текстовое сообщение.
import logging
import json
import azure.functions as func
def main(req: func.HttpRequest, twilioMessage: func.Out[str]) -> func.HttpResponse:
message = req.params.get('message')
to = req.params.get('to')
value = {
"body": message,
"to": to
}
twilioMessage.set(json.dumps(value))
return func.HttpResponse(f"Message sent")
В следующем примере показано, как использовать заметку TwilioSmsOutput для отправки SMS-сообщения. Значения для to , from и body обязательны в определении атрибута, даже если они переопределяются программным способом.
package com.function;
import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
public class TwilioOutput {
@FunctionName("TwilioOutput")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = { HttpMethod.GET, HttpMethod.POST },
authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request,
@TwilioSmsOutput(
name = "twilioMessage",
accountSid = "AzureWebJobsTwilioAccountSID",
authToken = "AzureWebJobsTwilioAuthToken",
to = "+1XXXXXXXXXX",
body = "From Azure Functions",
from = "+1XXXXXXXXXX") OutputBinding<String> twilioMessage,
final ExecutionContext context) {
String message = request.getQueryParameters().get("message");
String to = request.getQueryParameters().get("to");
StringBuilder builder = new StringBuilder()
.append("{")
.append("\"body\": \"%s\",")
.append("\"to\": \"%s\"")
.append("}");
final String body = String.format(builder.toString(), message, to);
twilioMessage.setValue(body);
return request.createResponseBuilder(HttpStatus.OK).body("Message sent").build();
}
}
Attributes
Библиотеки C# в процессе и изолированном рабочем процессе используют атрибуты для определения выходной привязки. Вместо этого в скрипте C# используется файл конфигурации function.json.
Привязка Twilio в настоящее время не поддерживается для приложения-функции, работающего в изолированном рабочем процессе.
Annotations
Заметка TwilioSmsOutput позволяет декларативно настроить выходную привязку Twilio, указав следующие значения конфигурации:
+
Поместите заметку TwilioSmsOutput в OutputBinding<T> параметр, где T может быть любой собственный тип Java, например int, Stringbyte[]или тип POJO.
Configuration
В следующей таблице описываются свойства конфигурации привязки, заданные в файле function.json , который отличается версией среды выполнения:
| свойство function.json | Description |
|---|---|
| type | Нужно задать значение twilioSms. |
| direction | Нужно задать значение out. |
| name | Имя переменной, используемое в коде функции для текстового SMS-сообщения Twilio. |
| accountSidSetting | Требуемое значение: имя параметра приложения, содержащего идентификатор безопасности учетной записи Twilio (TwilioAccountSid). Если имя параметра приложения не указано, по умолчанию используется AzureWebJobsTwilioAccountSid. |
| authTokenSetting | Требуемое значение: имя параметра приложения, содержащего токен аутентификации Twilio (TwilioAccountAuthToken). Если имя параметра приложения не указано, по умолчанию используется AzureWebJobsTwilioAuthToken. |
| from | Требуемое значение: номер телефона, с которого отправляется текст SMS-сообщения. |
| body | Это значение можно использовать для жесткого кодирования текстового SMS-сообщения, если его не нужно задавать динамически в коде функции. |
В версии 2.x значение to задается в программном коде.
При локальной разработке добавьте параметры приложения в файлlocal.settings.json в Values коллекции.