你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Functions 的 Twilio 绑定
本文介绍如何使用 Azure Functions 中的 Twilio 绑定发送短信。 Azure Functions 支持 Twilio 的输出绑定。
此参考信息面向 Azure Functions 开发人员。 Azure Functions 的新手请从以下资源入手:
安装扩展
你安装的扩展 NuGet 包取决于你在函数应用中使用的 C# 模式:
函数在独立的 C# 工作进程中执行。 若要了解详细信息,请参阅有关在独立工作进程中运行 C# Azure Functions 的指南。
扩展的功能因扩展版本而异:
当前不支持 Twilio 用于独立工作进程应用。
安装捆绑包
从 Functions 版本 2.x 开始,HTTP 扩展是扩展包的一部分,在 host.json 项目文件中指定。 若要了解详细信息,请参阅扩展捆绑包。
此版本的扩展应该已可以通过扩展包版本 2.x 提供给函数应用。
示例
除非另有说明,否则这些示例特定于版本 2.x 和更高版本的 Functions 运行时。
可使用以下 C# 模式之一来创建 C# 函数:
- 独立辅助角色模型:编译的 C# 函数,该函数在独立于运行时的工作进程中运行。 需要独立工作进程才能支持在 LTS 和非 LTS 版 .NET 和 .NET Framework 上运行的 C# 函数。
- 进程内模型:编译的 C# 函数,该函数在与 Functions 运行时相同的进程中运行。
- C# 脚本:主要在 Azure 门户中创建 C# 函数时使用。
重要
对进程内模型的支持将于 2026 年 11 月 10 日结束。 为获得完全支持,强烈建议将应用迁移到独立工作模型。
以下示例演示 function.json 文件中的一个 Twilio 输出绑定以及使用该绑定的 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 绑定。
下面的示例演示如何按以下 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 注释发送短信。 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();
}
}
特性
进程内和独立工作进程 C# 库都使用属性来定义输出绑定。 C# 脚本改为使用 function.json 配置文件。
批注
TwilioSmsOutput 注释允许通过提供以下配置值以声明性方式配置 Twilio 输出绑定:
+
将 TwilioSmsOutput 注释放置在 OutputBinding<T>
参数上,其中 T
可以是任何本机 Java 类型,如 int
、String
、byte[]
或 POJO 类型。
配置
下表说明了在 function.json 文件中设置的绑定配置属性,这些属性因运行时版本而异:
function.json 属性 | 说明 |
---|---|
type | 必须设置为 twilioSms 。 |
direction | 必须设置为 out 。 |
name | 在 Twilio 短信的函数代码中使用的变量名。 |
AccountSidSetting | 此值必须设置为保留 Twilio 帐户 Sid 的应用设置的名称 (TwilioAccountSid )。 未设置时,默认应用设置名称为 AzureWebJobsTwilioAccountSid 。 |
AuthTokenSetting | 此值必须设置为保留 Twilio 身份验证令牌的应用设置的名称 (TwilioAccountAuthToken )。 未设置时,默认应用设置名称为 AzureWebJobsTwilioAuthToken 。 |
from | 此值设置为发送短信的电话号码。 |
body | 如果不需要在函数的代码中动态设置短信,则可以使用此值对其进行硬编码。 |
在版本 2.x 中,可以在代码中设置 to
值。
在本地开发时,请将应用程序设置添加到 Values
集合的 local.settings.json 文件。