Привязки мобильных приложений для службы "Функции Azure"

Примечание.

Привязки мобильных приложений Azure доступны только для функций Azure версии 1.x. Они не поддерживаются функциями Azure версий 2.х и более поздних.

В этой статье описывается использование привязок мобильных приложений Azure в "Функциях Azure". Функции Azure поддерживают входные и выходные привязки для мобильных приложений.

Привязки мобильных приложений позволяют вам считывать и обновлять данные таблиц в мобильных приложениях.

Пакеты – Функции 1.x

Привязки мобильных приложений доступны в пакете NuGet Microsoft.Azure.WebJobs.Extensions.MobileApps версии 1.х. Исходный код для пакета находится в репозитории GitHub azure-webjobs-sdk-extensions.

В следующей таблице показано, как добавить поддержку выходной привязки в каждой среде разработки.

Среда разработки Добавление поддержки в Функциях 1.x
Локальная разработка: библиотека классов C# Установка пакета
Локальная разработка: скрипт C#, JavaScript, F# Автоматически
Разработка на портале Автоматически

Входные данные

Входная привязка мобильных приложений загружает запись из конечной точки мобильной таблицы и передает ее в функцию. В функциях 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 Свойство атрибута Описание
type Н/Д Для этого свойства необходимо задать значение mobileTable.
direction Н/Д Для этого свойства необходимо задать значение in
name Н/Д Имя входного параметра в сигнатуре функции.
tableName TableName Имя таблицы данных мобильного приложения
id Id Идентификатор извлекаемой записи. Может быть статическим или определяться по триггеру, который вызывает функцию. Например, если вы используете триггер очереди для функции, то "id": "{queueTrigger}" использует строковое значение сообщения очереди в качестве идентификатора записи, который нужно получить.
Подключение Соединение Имя параметра приложения, в котором содержится URL-адрес мобильного приложения. Функция использует этот URL-адрес для создания необходимых операций REST с мобильным приложением. Создайте параметр приложения в приложении-функции, содержащем URL-адрес мобильного приложения, а затем укажите имя параметра приложения в свойстве connection во входной привязке. URL-адрес выглядит следующим образом: https://<appname>.azurewebsites.net.
apiKey ApiKey Имя параметра приложения, в котором содержится ваш ключ API для мобильных приложений. При внедрении ключа API в мобильное приложение Node.js предоставьте этот ключ или внедрите ключ в мобильном приложении .NET. Для этого создайте параметр приложения в приложении-функции, содержащем ключ API, а затем добавьте свойство apiKey в свою входную привязку с именем параметра приложения.

Если разработка ведется на локальном компьютере, добавьте параметры приложения в файл local.settings.json в коллекции Values.

Внимание

Не используйте ключ API совместно с клиентами мобильных приложений. Его нужно безопасно распространять среди клиентов на стороне службы, таких как Функции Azure. Функции Azure хранят сведения о подключении и ключи API в качестве параметров приложения, чтобы они не возвращались в репозиторий системы управления версиями. Таким образом обеспечивается защита конфиденциальной информации.

Использование входной привязки

В функциях C#, когда найденная запись з указанным идентификатором передается именованному параметру 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 Свойство атрибута Описание
type Н/Д Для этого свойства необходимо задать значение mobileTable.
direction Н/Д Для этого свойства необходимо задать значение out.
name Н/Д Имя выходного параметра в сигнатуре функции.
tableName TableName Имя таблицы данных мобильного приложения
Подключение MobileAppUriSetting Имя параметра приложения, в котором содержится URL-адрес мобильного приложения. Функция использует этот URL-адрес для создания необходимых операций REST с мобильным приложением. Создайте параметр приложения в приложении-функции, содержащем URL-адрес мобильного приложения, а затем укажите имя параметра приложения в свойстве connection во входной привязке. URL-адрес выглядит следующим образом: https://<appname>.azurewebsites.net.
apiKey ApiKeySetting Имя параметра приложения, в котором содержится ваш ключ API для мобильных приложений. При внедрении ключа API в серверную часть мобильного приложения Node.js предоставьте этот ключ или внедрите ключ в серверную часть мобильного приложения .NET. Для этого создайте параметр приложения в приложении-функции, содержащем ключ API, а затем добавьте свойство apiKey в свою входную привязку с именем параметра приложения.

Если разработка ведется на локальном компьютере, добавьте параметры приложения в файл local.settings.json в коллекции Values.

Внимание

Не используйте ключ API совместно с клиентами мобильных приложений. Его нужно безопасно распространять среди клиентов на стороне службы, таких как Функции Azure. Функции Azure хранят сведения о подключении и ключи API в качестве параметров приложения, чтобы они не возвращались в репозиторий системы управления версиями. Таким образом обеспечивается защита конфиденциальной информации.

Использование выходной привязки

Используйте именованный выходной параметр типа out object для доступа к выходной записи в функциях сценария C#. В библиотеках классов C# атрибут MobileTable можно использовать в любом из следующих типов:

  • ICollector<T> или IAsyncCollector<T>, где T имеет значение JObject или является типом со свойством public string Id.
  • out JObject
  • out T или out T[], где T является любим типом со свойством public string Id.

Для доступа к выходной записи в функциях Node.js используйте context.bindings.<name>.

Следующие шаги