Azure Functions の Twilio バインドTwilio binding for Azure Functions

この記事では、Azure Functions の Twilio バインドを使用してテキスト メッセージを送信する方法について説明します。This article explains how to send text messages by using Twilio bindings in Azure Functions. Azure Functions は、Twilio の出力バインドをサポートします。Azure Functions supports output bindings for Twilio.

これは、Azure Functions の開発者向けリファレンス情報です。This is reference information for Azure Functions developers. Azure Functions を初めて使用する場合は、先に次のリソースを参照してください。If you're new to Azure Functions, start with the following resources:

パッケージ - Functions 1.xPackages - Functions 1.x

Twilio バインディングは Microsoft.Azure.WebJobs.Extensions.Twilio NuGet パッケージ、バージョン 1.x で提供されます。The Twilio bindings are provided in the Microsoft.Azure.WebJobs.Extensions.Twilio NuGet package, version 1.x. パッケージのソース コードは、azure-webjobs-sdk GitHub リポジトリにあります。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
Functions 1.xFunctions 1.x
ローカル開発 - C# クラス ライブラリLocal development - C# class library パッケージをインストールするInstall the package
ローカル開発で - C# スクリプト、JavaScript、F#Local development - C# script, JavaScript, F# 自動Automatic
Portal 開発Portal development 自動Automatic

パッケージ - Functions 2.x 以降Packages - Functions 2.x and higher

Twilio バインディングは Microsoft.Azure.WebJobs.Extensions.Twilio NuGet パッケージ、バージョン 3.x で提供されます。The Twilio bindings are provided in the Microsoft.Azure.WebJobs.Extensions.Twilio NuGet package, version 3.x. パッケージのソース コードは、azure-webjobs-sdk GitHub リポジトリにあります。Source code for the package is in the azure-webjobs-sdk GitHub repository.

次の方法を使用して、推奨される開発環境にサポートを追加します。Add support in you preferred development environment using the following methods.

開発環境Development environment アプリケーションの種類Application type サポートを追加するにはTo add support
Visual StudioVisual Studio C# クラス ライブラリC# class library NuGet パッケージをインストールするInstall the NuGet package
Visual Studio CodeVisual Studio Code コアツールに基づくBased on core tools 拡張機能バンドルを登録するRegister the extension bundle

Azure Tools 拡張機能 をインストールすることをお勧めします。Installing the Azure Tools extension is recommended.
その他のエディター/IDEAny other editor/IDE コアツールに基づくBased on core tools 拡張機能バンドルを登録するRegister the extension bundle
Azure portalAzure Portal ポータルでのみオンラインOnline only in portal バインドを追加するときにインストールするInstalls when adding a binding

関数アプリを再発行せずに、既存のバインディング拡張機能を更新するには、拡張機能の更新に関するページを参照してください。See Update your extensions to update existing binding extensions without having to republish your function app.

例 - 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.

v1 function.json のプロパティv1 function.json property v2 function.json のプロパティv2 function.json property 属性のプロパティAttribute property 説明Description
typetype typetype twilioSms に設定する必要があります。must be set to twilioSms.
directiondirection directiondirection out に設定する必要があります。must be set to out.
namename namename Twilio SMS テキスト メッセージの関数コードで使用される変数名です。Variable name used in function code for the Twilio SMS text message.
accountSidaccountSid accountSidSettingaccountSidSetting AccountSidSettingAccountSidSetting この値には、Twilio Account Sid (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 ToTo この値は、SMS テキストの送信先の電話番号に設定されます。This value is set to the phone number that the SMS text is sent to.
fromfrom fromfrom FromFrom この値は、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