適用於 Azure Functions 的 Mobile Apps 系結
注意
Azure Mobile Apps 系結僅適用於 Azure Functions 1.x。 Azure Functions 2.x 和更新版本中不支持它們。
重要
Azure Functions 執行階段 1.x 版的支援將於 2026 年 9 月 14 日結束。 強烈建議您將應用程式移轉至 4.x 版,以取得完整支援。
本文說明如何在 Azure Functions 中使用 Azure Mobile Apps 系結。 Azure Functions 支援 Mobile Apps 的輸入和輸出系結。
Mobile Apps 系結可讓您讀取及更新行動應用程式中的數據表。
套件 - Functions 1.x
Mobile Apps 系結會在 Microsoft.Azure.WebJobs.Extensions.MobileApps NuGet 套件 1.x 版中提供。 套件的原始碼位於 azure-webjobs-sdk-extensions GitHub 存放庫中。
下表列出如何在每個開發環境中新增輸出系結的支援。
開發環境 | 在 Functions 1.x 中新增支援 |
---|---|
本機開發:C# 類別庫 | 安裝套件 |
本機開發:C# 腳本、JavaScript、F# | 自動 |
入口網站開發 | 自動 |
輸入
Mobile Apps 輸入系結會從行動數據表端點載入記錄,並將其傳遞至您的函式。 在 C# 和 F# 函式中,當函式順利結束時,記錄所做的任何變更都會自動傳回數據表。
輸入 - 範例
請參閱特定語言範例:
下列範例示範 function.json 檔案中的Mobile Apps 輸入系結,以及使用系結的 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 屬性 | 屬性內容 | 描述 |
---|---|---|
type | n/a | 必須設定為 “mobileTable” |
direction | n/a | 必須設定為 “in” |
name | n/a | 函式簽章中的輸入參數名稱。 |
tableName | TableName | 行動應用程式數據表的名稱 |
id | Id | 要擷取之記錄的標識碼。 可以是靜態或以叫用函式的觸發程式為基礎。 例如,如果您使用函式的佇列觸發程式,則 "id": "{queueTrigger}" 使用佇列訊息的字串值做為要擷取的記錄標識符。 |
connection | [連接] | 具有行動應用程式 URL 的應用程式設定名稱。 函式會使用此 URL 來針對您的行動應用程式建構必要的 REST 作業。 在函式應用程式中建立包含行動應用程式 URL 的應用程式設定,然後在輸入系結的 屬性中 connection 指定應用程式設定的名稱。 URL 看起來像 https://<appname>.azurewebsites.net 。 |
apiKey | ApiKey | 具有行動應用程式 API 金鑰的應用程式設定名稱。 如果您在 Node.js行動應用程式中實作 API 金鑰,或在 .NET 行動應用程式中實作 API 金鑰,請提供 API 金鑰。 若要提供金鑰,請在函式應用程式中建立包含 API 金鑰的應用程式設定,然後使用應用程式設定的名稱,在輸入系結中新增 apiKey 屬性。 |
當您在本機開發時,請在集合中的 local.settings.json 檔案Values
中新增應用程式設定。
重要
請勿與行動應用程式用戶端共用 API 金鑰。 它應該只安全地散發給服務端用戶端,例如 Azure Functions。 Azure Functions 會將您的連線資訊和 API 金鑰儲存為應用程式設定,使其不會簽入原始檔控制存放庫。 這會保護您的敏感性資訊。
輸入 - 使用量
在 C# 函式中,找到具有指定標識碼的記錄時,它會傳遞至具名 JObject 參數。 找不到記錄時,參數值為 null
。
在 JavaScript 函式中,記錄會傳遞至 context.bindings.<name>
物件。 找不到記錄時,參數值為 null
。
在 C# 和 F# 函式中,您對輸入記錄所做的任何變更(輸入參數)都會在函式順利結束時自動傳回數據表。 您無法在 JavaScript 函式中修改記錄。
輸出
使用Mobile Apps輸出系結,將新記錄寫入Mobile Apps資料表。
輸出 - 範例
下列範例顯示 由佇列訊息觸發的 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 屬性 | 屬性內容 | 描述 |
---|---|---|
type | n/a | 必須設定為 “mobileTable” |
direction | n/a | 必須設定為 “out” |
name | n/a | 函式簽章中的輸出參數名稱。 |
tableName | TableName | 行動應用程式數據表的名稱 |
connection | MobileAppUriSetting | 具有行動應用程式 URL 的應用程式設定名稱。 函式會使用此 URL 來針對您的行動應用程式建構必要的 REST 作業。 在函式應用程式中建立包含行動應用程式 URL 的應用程式設定,然後在輸入系結的 屬性中 connection 指定應用程式設定的名稱。 URL 看起來像 https://<appname>.azurewebsites.net 。 |
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>
,其中T
是JObject
或具有public string Id
屬性的任何型別。out JObject
out T
或out T[]
,其中T
是具有public string Id
屬性的任何 Type。
在 Node.js 函式中,使用 context.bindings.<name>
來存取輸出記錄。