Привязки таблиц Azure для службы "Функции Azure"
Служба "Функции Azure" интегрируются с таблицами Azure с помощью триггеров и привязок. Интеграция с таблицами Azure позволяет создавать функции, которые считывают и записывают данные с помощью Azure Cosmos DB для таблицы и хранилища таблиц Azure.
Действие | Тип |
---|---|
Чтение табличных данных в функции | Входная привязка |
Разрешение записи данных хранилища таблиц для функции | Выходная привязка |
Установка расширения
Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:
Функции выполняются в изолированном рабочем процессе C#. Дополнительные сведения см. в руководстве по запуску Функции Azure C# в изолированном рабочем процессе.
Процесс установки расширения зависит от версии расширения:
В этой версии появляется возможность подключения с использованием удостоверения, а не секрета. Руководство по настройке приложений-функций с помощью управляемых удостоверений см. в руководстве по созданию приложения-функции с подключениями на основе удостоверений.
Эта версия позволяет привязать к типам из Azure.Data.Tables
. В ней также представлена возможность использования Azure Cosmos DB для таблицы.
Это расширение доступно путем установки пакета NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables в проект с помощью версии 5.x или более поздней версии расширений для больших двоичных объектов и очередей.
С использованием .NET CLI:
# Install the Azure Tables extension
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Tables --version 1.0.0
# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage --version 5.0.0
Примечание.
Большие двоичные объекты Azure, очереди Azure и таблицы Azure теперь используют отдельные расширения и ссылаются по отдельности. Например, чтобы использовать триггеры и привязки для всех трех служб в приложении изолированного процесса .NET, необходимо добавить в проект следующие пакеты:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
Ранее расширения, отправленные вместе как Microsoft.Azure.Functions.Worker.Extensions.Storage версии 4.x. Этот же пакет также имеет версию 5.x, которая ссылается на разделенные пакеты только для BLOB-объектов и очередей. При обновлении ссылок на пакет из более старых версий может потребоваться дополнительно ссылаться на новый пакет NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables . Кроме того, при ссылке на эти более новые разделенные пакеты убедитесь, что вы не ссылаетесь на более старую версию объединенного пакета хранилища, так как это приведет к конфликтам из-за двух определений одних и тех же привязок.
Если вы пишете приложение с помощью F#, необходимо также настроить это расширение в рамках конфигурации запуска приложения. В вызове ConfigureFunctionsWorkerDefaults()
или ConfigureFunctionsWebApplication()
добавьте делегат, принимающее IFunctionsWorkerApplication
параметр. Затем в теле этого делегата вызовите ConfigureTablesExtension()
объект:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureTablesExtension() |> ignore
) |> ignore
Установка пакета
Привязки таблиц Azure входят в пакет расширений, который указан в файле проекта host.json. Возможно, потребуется изменить этот пакет, чтобы изменить версию привязок, а также в том случае если пакеты еще не установлены. Дополнительные сведения см. в разделе Пакет расширений.
В этой версии появляется возможность подключения с использованием удостоверения, а не секрета. Руководство по настройке приложений-функций с помощью управляемых удостоверений см. в руководстве по созданию приложения-функции с подключениями на основе удостоверений.
Эту версию расширения можно добавить из пакета расширений версии 3, добавив или заменив следующий код в файле host.json
:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Типы привязки
Типы привязки, поддерживаемые для .NET, зависят от версии расширения и режима выполнения C#, что может быть одним из следующих типов:
Изолированная библиотека классов рабочих процессов, скомпилированная функция C# выполняется в процессе, изолированном от среды выполнения.
Выберите версию, чтобы просмотреть сведения о типе привязки для режима и версии.
Изолированный рабочий процесс поддерживает типы параметров в соответствии с таблицами ниже. Поддержка привязки к типам из Azure.Data.Tables доступна в предварительной версии.
Входная привязка таблиц Azure
При работе с одной сущностью таблицы входная привязка "Таблицы Azure" может привязаться к следующим типам:
Тип | Описание |
---|---|
Сериализуемый тип JSON, реализующий ITableEntity | Функции пытаются десериализировать сущность в обычный тип объекта CLR (POCO). Тип должен реализовать ITableEntity или иметь строковое свойство и строковое RowKey PartitionKey свойство. |
TableEntity1 | Сущность в виде типа словаря. |
При работе с несколькими сущностями из запроса входная привязка таблиц Azure может привязаться к следующим типам:
Тип | Описание |
---|---|
IEnumerable<T> где T реализуется ITableEntity |
Перечисление сущностей, возвращаемых запросом. Каждая запись представляет одну сущность. Тип T должен реализовать ITableEntity или иметь строковое свойство и строковое RowKey PartitionKey свойство. |
TableClient1 | Клиент, подключенный к таблице. Это обеспечивает большую часть управления для обработки таблицы и может использоваться для записи в нее, если подключение имеет достаточно разрешений. |
1 Для использования этих типов необходимо ссылаться на Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 или более поздней версии , а также общие зависимости для привязок типов SDK.
Выходная привязка таблиц Azure
Если требуется, чтобы функция записывала в одну сущность, выходная привязка таблиц Azure может привязаться к следующим типам:
Тип | Описание |
---|---|
Сериализуемый тип JSON, реализующий [ITableEntity] | Функции пытаются сериализовать обычный тип объекта CLR (POCO) в качестве сущности. Тип должен реализовать [ITableEntity] или иметь строковое свойство и строковое RowKey PartitionKey свойство. |
Если требуется, чтобы функция записывала в несколько сущностей, выходная привязка таблиц Azure может привязаться к следующим типам:
Тип | Описание |
---|---|
T[] где T является одним из типов отдельных сущностей |
Массив, содержащий несколько сущностей. Каждая запись представляет одну сущность. |
Для других сценариев вывода создайте и используйте TableClient с другими типами из Azure.Data.Tables напрямую. Пример использования внедрения зависимостей для создания типа клиента из пакета SDK Azure см. в статье "Регистрация клиентов Azure".