Azure Functions の Twilio バインド

この記事では、Azure Functions の Twilio バインドを使用してテキスト メッセージを送信する方法について説明します。 Azure Functions は、Twilio の出力バインドをサポートします。

これは、Azure Functions の開発者向けリファレンス情報です。 Azure Functions を初めて使用する場合は、先に次のリソースを参照してください。

パッケージ - Functions 1.x

Twilio バインディングは Microsoft.Azure.WebJobs.Extensions.Twilio NuGet パッケージ、バージョン 1.x で提供されます。 パッケージのソース コードは、azure-webjobs-sdk GitHub リポジトリにあります。

次の表に、各開発環境でこのバインディングのサポートを追加する方法を示します。

開発環境 サポートを追加するバージョン:
Functions 1.x
ローカル開発 - C# クラス ライブラリ パッケージをインストールする
ローカル開発で - C# スクリプト、JavaScript、F# 自動
Portal 開発 自動

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

Twilio バインディングは Microsoft.Azure.WebJobs.Extensions.Twilio NuGet パッケージ、バージョン 3.x で提供されます。 パッケージのソース コードは、azure-webjobs-sdk GitHub リポジトリにあります。

次の方法を使用して、推奨される開発環境にサポートを追加します。

開発環境 アプリケーションの種類 サポートを追加するには
Visual Studio C# クラス ライブラリ NuGet パッケージをインストールする
Visual Studio Code コアツールに基づく 拡張機能バンドルを登録する

Azure Tools 拡張機能 をインストールすることをお勧めします。
その他のエディター/IDE コアツールに基づく 拡張機能バンドルを登録する
Azure portal ポータルでのみオンライン バインドを追加するときにインストールする

関数アプリを再発行せずに、既存のバインディング拡張機能を更新するには、拡張機能の更新に関するページを参照してください。

例 - Functions 2.x 以降

次の例は、キュー メッセージによってトリガーされたときにテキスト メッセージを送信する C# 関数を示しています。

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 属性を使用します。 代わりに、out CreateMessageOptions パラメーターまたは ICollector<CreateMessageOptions> または IAsyncCollector<CreateMessageOptions> パラメーターを持つ属性を使用することができます。

属性と注釈

C# クラス ライブラリでは、TwilioSms 属性を使用します。

構成可能な属性プロパティについては、構成を参照してください。 メソッド シグネチャでの TwilioSms 属性の例を次に示します。

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

完全な例については、「C# の例」を参照してください。

構成

次の表は、function.json ファイルと TwilioSms 属性で設定したバインド構成のプロパティを説明しています。

v1 function.json のプロパティ v2 function.json のプロパティ 属性のプロパティ 説明
type type twilioSms に設定する必要があります。
direction direction out に設定する必要があります。
name name Twilio SMS テキスト メッセージの関数コードで使用される変数名です。
accountSid accountSidSetting AccountSidSetting この値には、Twilio Account Sid (TwilioAccountSid) を保持するアプリ設定の名前を指定する必要があります。 設定されていない場合、既定のアプリの設定名は"AzureWebJobsTwilioAccountSid" です。
authToken authTokenSetting AuthTokenSetting この値には、Twilio 認証トークン (TwilioAccountAuthToken) を保持するアプリ設定の名前を指定する必要があります。 設定されていない場合、既定のアプリの設定名は"AzureWebJobsTwilioAuthToken" です。
to 該当なし - コード内の指定 To この値は、SMS テキストの送信先の電話番号に設定されます。
from from From この値は、SMS テキストの送信元の電話番号に設定されます。
body body 本文 この値は、SMS テキスト メッセージを関数のコードで動的に設定する必要がない場合に、メッセージをハード コーディングするために使用できます。

ローカルで開発している場合、アプリ設定は local.settings.json ファイルに保存されます。

次のステップ