Привязка Twilio для службы "Функции Azure"Twilio binding for Azure Functions

В этой статье описано, как отправлять текстовые сообщения с помощью привязок Twilio в службу "Функции Azure".This article explains how to send text messages by using Twilio bindings in Azure Functions. Служба "Функции Azure" поддерживают выходные привязки для Twilio.Azure Functions supports output bindings for Twilio.

Это справочные сведения для разработчиков функций Azure.This is reference information for Azure Functions developers. Если вы новичок в функциях Azure, начните со следующих ресурсов:If you're new to Azure Functions, start with the following resources:

Пакеты – Функции 1.xPackages - Functions 1.x

Привязки Twilio доступны в пакете NuGet Microsoft.Azure.WebJobs.Extensions.Twilio, версия 1.х.The Twilio bindings are provided in the Microsoft.Azure.WebJobs.Extensions.Twilio NuGet package, version 1.x. Исходный код для пакета находится в репозитории GitHub azure-webjobs-sdk.Source code for the package is in the azure-webjobs-sdk GitHub repository.

В следующей таблице указано как добавить поддержку для этой привязки в каждой среде разработки.The following table tells how to add support for this binding in each development environment.

Среда разработкиDevelopment environment Для добавления поддержки вTo add support in
Функции 1.xFunctions 1.x
Локальная разработка – библиотека классов C#Local development - C# class library Установка пакетаInstall the package
Локальная разработка – Скрипт C#, JavaScript, F#Local development - C# script, JavaScript, F# АвтоматическийAutomatic
Разработка на порталеPortal development АвтоматическийAutomatic

Packages — функции 2. x и более поздних версийPackages - Functions 2.x and higher

Привязки Twilio доступны в пакете NuGet Microsoft.Azure.WebJobs.Extensions.Twilio, версия 3.х.The Twilio bindings are provided in the Microsoft.Azure.WebJobs.Extensions.Twilio NuGet package, version 3.x. Исходный код для пакета находится в репозитории GitHub azure-webjobs-sdk.Source code for the package is in the azure-webjobs-sdk GitHub repository.

В следующей таблице указано как добавить поддержку для этой привязки в каждой среде разработки.The following table tells how to add support for this binding in each development environment.

Среда разработкиDevelopment environment Добавление поддержкиTo add support
Локальная разработка – библиотека классов C#Local development - C# class library Установка пакетаInstall the package
Локальная разработка — скрипт C#, JavaScript, F#, Java и PythonLocal development - C# script, JavaScript, F#, Java and Python Регистрация расширенияRegister the extension
Разработка на порталеPortal development Установка при добавлении выходной привязкиInstall when adding output binding

Дополнительные сведения об обновлении существующих расширений привязки на портале, не переиздавая проект приложения-функции, см. раздел Обновление расширений.To learn how to update existing binding extensions in the portal without having to republish your function app project, see Update your extensions.

Example-functions 2. x и более поздние версииExample - Functions 2.x and higher

В следующем примере показана функция C#, которая отправляет текстовое сообщение при активации сообщением из очереди.The following example shows a C# function that sends a text message when triggered by a queue message.

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;
using Twilio.Rest.Api.V2010.Account;
using Twilio.Types;
namespace TwilioQueueOutput
{
    public static class QueueTwilio
    {
        [FunctionName("QueueTwilio")]
        [return: TwilioSms(AccountSidSetting = "TwilioAccountSid", AuthTokenSetting = "TwilioAuthToken", From = "+1425XXXXXXX")]
        public static CreateMessageOptions Run(
        [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] JObject order,
        ILogger log)
        {
            log.LogInformation($"C# Queue trigger function processed: {order}");

            var message = new CreateMessageOptions(new PhoneNumber(order["mobileNumber"].ToString()))
            {
                Body = $"Hello {order["name"]}, thanks for your order!"
            };

            return message;
        }
    }
}

В этом примере используется TwilioSms атрибут с помощью возвращаемого значения метода.This example uses the TwilioSms attribute with the method return value. Альтернативой является использование атрибута с параметрами out CreateMessageOptions, ICollector<CreateMessageOptions> или IAsyncCollector<CreateMessageOptions>.An alternative is to use the attribute with an out CreateMessageOptions parameter or an ICollector<CreateMessageOptions> or IAsyncCollector<CreateMessageOptions> parameter.

Атрибуты и заметкиAttributes and annotations

В библиотеках классов C# используйте атрибут TwilioSms.In C# class libraries, use the TwilioSms attribute.

Дополнительные сведения о настройке свойств атрибутов см. в разделе Конфигурация.For information about attribute properties that you can configure, see Configuration. Ниже приведен пример атрибута TwilioSms в сигнатуре метода:Here's a TwilioSms attribute example in a method signature:

[FunctionName("QueueTwilio")]
[return: TwilioSms(AccountSidSetting = "TwilioAccountSid", AuthTokenSetting = "TwilioAuthToken", From = "+1425XXXXXXX")]
public static CreateMessageOptions Run(
[QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] JObject order, ILogger log)
{
    ...
}

Полный пример см. в разделе Пример C#.For a complete example, see C# example.

НастройкаConfiguration

В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json и атрибуте TwilioSms.The following table explains the binding configuration properties that you set in the function.json file and the TwilioSms attribute.

Свойство function.json версии 1v1 function.json property Свойство function.json версии 2v2 function.json property Свойство атрибутаAttribute property DescriptionDescription
typetype typetype Нужно задать значение twilioSms.must be set to twilioSms.
directiondirection directiondirection Нужно задать значение out.must be set to out.
namename namename Имя переменной, используемое в коде функции для текстового SMS-сообщения Twilio.Variable name used in function code for the Twilio SMS text message.
accountSidaccountSid accountSidSettingaccountSidSetting AccountSidSettingAccountSidSetting Это значение должно быть равно имени параметра приложения, в котором хранится идентификатор безопасности учетной записи Twilio (TwilioAccountSid).This value must be set to the name of an app setting that holds your Twilio Account Sid (TwilioAccountSid). Если значение не задано, имя параметра приложения по умолчанию — AzureWebJobsTwilioAccountSid.If not set, the default app setting name is "AzureWebJobsTwilioAccountSid".
authTokenauthToken authTokenSettingauthTokenSetting AuthTokenSettingAuthTokenSetting Это значение должно быть равно имени параметра приложения, который содержит токен проверки подлинности Twilio (TwilioAccountAuthToken).This value must be set to the name of an app setting that holds your Twilio authentication token (TwilioAccountAuthToken). Если значение не задано, имя параметра приложения по умолчанию — AzureWebJobsTwilioAuthToken.If not set, the default app setting name is "AzureWebJobsTwilioAuthToken".
toto Недоступно — указать в кодеN/A - specify in code ЧтобыTo Требуемое значение: номер телефона, на который отправляется текст SMS-сообщения.This value is set to the phone number that the SMS text is sent to.
fromfrom fromfrom ОтFrom Требуемое значение: номер телефона, с которого отправляется текст SMS-сообщения.This value is set to the phone number that the SMS text is sent from.
bodybody bodybody ТекстBody Это значение можно использовать для жесткого кодирования текстового SMS-сообщения, если его не нужно задавать динамически в коде функции.This value can be used to hard code the SMS text message if you don't need to set it dynamically in the code for your function.

При локальной разработке параметры приложения перейдут в файл local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Дальнейшие действияNext steps