注释
Azure 移动应用绑定仅适用于 Azure Functions 1.x。 Azure Functions 2.x 及更高版本不支持它们。
重要
对 Azure Functions 运行时 1.x 版的支持将于 2026 年 9 月 14 日结束。 强烈建议 将应用迁移到版本 4.x ,以获取完全支持。
本文介绍如何在 Azure Functions 中使用 Azure 移动应用 绑定。 Azure Functions 支持移动应用的输入和输出绑定。
移动应用绑定允许读取和更新移动应用中的数据表。
包 - Functions 1.x
Microsoft.Azure.WebJobs.Extensions.MobileApps NuGet 包 1.x 版中提供了移动应用绑定。 包的源代码位于 azure-webjobs-sdk-extensions GitHub 存储库中。
下表列出了如何在每个开发环境中添加对输出绑定的支持。
| 开发环境 | 在 Functions 1.x 中添加支持 |
|---|---|
| 本地开发:C# 类库 | 安装包 |
| 本地开发:C# 脚本、JavaScript、F# | 自动 |
| 门户开发 | 自动 |
Input
移动应用输入绑定从移动表终结点加载记录,并将其传递到函数中。 在 C# 和 F# 函数中,当函数成功退出时,对记录所做的任何更改都会自动发送回表。
输入 - 示例
请参阅特定于语言的示例:
以下示例演示 function.json 文件中的移动应用输入绑定以及使用该绑定的 C# 脚本函数 。 该函数由具有记录标识符的队列消息触发。 该函数读取指定的记录并修改其 Text 属性。
下面是 function.json 文件中的绑定数据:
{
"bindings": [
{
"name": "myQueueItem",
"queueName": "myqueue-items",
"connection": "",
"type": "queueTrigger",
"direction": "in"
},
{
"name": "record",
"type": "mobileTable",
"tableName": "MyTable",
"id": "{queueTrigger}",
"connection": "My_MobileApp_Url",
"apiKey": "My_MobileApp_Key",
"direction": "in"
}
]
}
配置部分介绍了这些属性。
C# 脚本代码如下所示:
#r "Newtonsoft.Json"
using Newtonsoft.Json.Linq;
public static void Run(string myQueueItem, JObject record)
{
if (record != null)
{
record["Text"] = "This has changed.";
}
}
输入 - 属性
在 C# 类库中,使用 MobileTable 属性。
有关可以配置的属性属性的信息,请参阅 以下配置部分。
输入 - 配置
下表介绍了在 function.json 文件和属性中设置的 MobileTable 绑定配置属性。
| function.json 属性 | Attribute 属性 | Description |
|---|---|---|
| 类型 | n/a | 必须设置为“mobileTable” |
| 方向 | n/a | 必须设置为“in” |
| name | n/a | 函数签名中的输入参数的名称。 |
| tableName | 表名 | 移动应用的数据表的名称 |
| id | Id | 要检索的记录的标识符。 可以是静态的,也可以基于调用函数的触发器。 例如,如果使用函数的队列触发器,则 "id": "{queueTrigger}" 使用队列消息的字符串值作为要检索的记录 ID。 |
| 连接 | 连接 | 具有移动应用 URL 的应用设置的名称。 该函数使用此 URL 针对移动应用构造所需的 REST作。 在包含移动应用 URL 的函数应用中创建应用设置,然后在输入绑定的属性中 connection 指定应用设置的名称。 URL 如下所示 https://<appname>.chinacloudsites.cn。 |
| apiKey | ApiKey | 具有移动应用 API 密钥的应用设置的名称。 如果在 Node.js 移动应用中实现 API 密钥,或在 .NET 移动应用中实现 API 密钥,请提供 API 密钥。 若要提供密钥,请在包含 API 密钥的函数应用中创建应用设置,然后使用应用设置的名称在输入绑定中添加 apiKey 属性。 |
在本地开发时,请在集合中的 local.settings.json 文件中Values添加应用程序设置。
重要
不要与移动应用客户端共享 API 密钥。 它应仅安全地分发到服务端客户端,例如 Azure Functions。 Azure Functions 将连接信息和 API 密钥存储为应用设置,以便不会将其签入源代码管理存储库。 这将保护敏感信息。
输入 - 使用情况
在 C# 函数中,找到具有指定 ID 的记录时,它将传递到命名 的 JObject 参数中。 找不到记录时,参数值为 null.
在 JavaScript 函数中,记录将 context.bindings.<name> 传递到对象中。 找不到记录时,参数值为 null.
在 C# 和 F# 函数中,对输入记录(输入参数)所做的任何更改都会在函数成功退出时自动发送回表。 无法在 JavaScript 函数中修改记录。
输出
使用移动应用输出绑定将新记录写入移动应用表。
输出 - 示例
以下示例演示由队列消息触发并在移动应用表中创建记录的 C# 函数 。
[FunctionName("MobileAppsOutput")]
[return: MobileTable(ApiKeySetting = "MyMobileAppKey", TableName = "MyTable", MobileAppUriSetting = "MyMobileAppUri")]
public static object Run(
[QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
TraceWriter log)
{
return new { Text = $"I'm running in a C# function! {myQueueItem}" };
}
输出 - 属性
在 C# 类库中,使用 MobileTable 属性。
有关可以配置的属性属性的信息,请参阅 输出 - 配置。
MobileTable下面是方法签名中的属性示例:
[FunctionName("MobileAppsOutput")]
[return: MobileTable(ApiKeySetting = "MyMobileAppKey", TableName = "MyTable", MobileAppUriSetting = "MyMobileAppUri")]
public static object Run(
[QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
TraceWriter log)
{
...
}
输出 - 配置
下表介绍了在 function.json 文件和属性中设置的 MobileTable 绑定配置属性。
| function.json 属性 | Attribute 属性 | Description |
|---|---|---|
| 类型 | n/a | 必须设置为“mobileTable” |
| 方向 | n/a | 必须设置为“out” |
| name | n/a | 函数签名中的输出参数的名称。 |
| tableName | 表名 | 移动应用的数据表的名称 |
| 连接 | MobileAppUriSetting | 具有移动应用 URL 的应用设置的名称。 该函数使用此 URL 针对移动应用构造所需的 REST作。 在包含移动应用 URL 的函数应用中创建应用设置,然后在输入绑定的属性中 connection 指定应用设置的名称。 URL 如下所示 https://<appname>.chinacloudsites.cn。 |
| apiKey | ApiKeySetting | 具有移动应用 API 密钥的应用设置的名称。 如果在 Node.js 移动应用后端中实现 API 密钥,或在 .NET 移动应用后端中实现 API 密钥,请提供 API 密钥。 若要提供密钥,请在包含 API 密钥的函数应用中创建应用设置,然后使用应用设置的名称在输入绑定中添加 apiKey 属性。 |
在本地开发时,请在集合中的 local.settings.json 文件中Values添加应用程序设置。
重要
不要与移动应用客户端共享 API 密钥。 它应仅安全地分发到服务端客户端,例如 Azure Functions。 Azure Functions 将连接信息和 API 密钥存储为应用设置,以便不会将其签入源代码管理存储库。 这将保护敏感信息。
输出 - 使用情况
在 C# 脚本函数中,使用类型的 out object 命名输出参数访问输出记录。 在 C# 类库中,该 MobileTable 属性可用于以下任一类型:
-
ICollector<T>或者IAsyncCollector<T>,其中或TJObject具有属性的任何类型public string Id。 out JObject-
out T或者out T[],其中T具有属性的任何类型public string Id。
在 Node.js 函数中,用于 context.bindings.<name> 访问输出记录。