Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба "Функции 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
Установка пакета
Чтобы использовать это расширение привязки в приложении, убедитесь, что файл host.json в корне проекта содержит следующую extensionBundle ссылку:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
В этом примере значение указывает узлу version функций использовать версию пакета, которая по крайней мере [4.0.0, 5.0.0) меньше4.0.0, чем , которая включает все потенциальные версии 4.x.5.0.0 Эта нотация эффективно поддерживает ваше приложение в последней доступной дополнительной версии пакета расширений версии 4.x.
По возможности следует использовать последнюю версию пакета расширений и разрешить среде выполнения автоматически поддерживать последнюю дополнительную версию. Содержимое последнего пакета можно просмотреть на странице выпуска пакетов расширений. Дополнительные сведения см. в пакетах расширений функций Azure.
Типы привязки
Типы привязки, поддерживаемые для .NET, зависят от версии расширения и режима выполнения C#, что может быть одним из следующих типов:
Изолированная библиотека классов рабочих процессов, скомпилированная функция C# выполняется в процессе, изолированном от среды выполнения.
Выберите версию, чтобы просмотреть сведения о типе привязки для режима и версии.
Изолированный рабочий процесс поддерживает типы параметров в соответствии с таблицами ниже. Поддержка привязки к типам из Azure.Data.Tables доступна в предварительной версии.
Входная привязка таблиц Azure
При работе с одной сущностью таблицы входная привязка "Таблицы Azure" может привязаться к следующим типам:
| Тип | Описание |
|---|---|
| Сериализуемый тип JSON, реализующий ITableEntity | Функции пытаются десериализировать сущность в обычный тип объекта CLR (POCO). Тип должен реализовать ITableEntity или иметь строковое свойство и строковое RowKeyPartitionKey свойство. |
| TableEntity1 | Сущность в виде типа словаря. |
При работе с несколькими сущностями из запроса входная привязка таблиц Azure может привязаться к следующим типам:
| Тип | Описание |
|---|---|
IEnumerable<T> где T реализуется ITableEntity |
Перечисление сущностей, возвращаемых запросом. Каждая запись представляет одну сущность. Тип T должен реализовать ITableEntity или иметь строковое свойство и строковое RowKeyPartitionKey свойство. |
| TableClient1 | Клиент, подключенный к таблице. Это обеспечивает большую часть управления для обработки таблицы и может использоваться для записи в нее, если подключение имеет достаточно разрешений. |
1 Для использования этих типов необходимо ссылаться на Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 или более поздней версии , а также общие зависимости для привязок типов SDK.
Выходная привязка таблиц Azure
Если требуется, чтобы функция записывала в одну сущность, выходная привязка таблиц Azure может привязаться к следующим типам:
| Тип | Описание |
|---|---|
| Сериализуемый тип JSON, реализующий [ITableEntity] | Функции пытаются сериализовать обычный тип объекта CLR (POCO) в качестве сущности. Тип должен реализовать [ITableEntity] или иметь строковое свойство и строковое RowKeyPartitionKey свойство. |
Если требуется, чтобы функция записывала в несколько сущностей, выходная привязка таблиц Azure может привязаться к следующим типам:
| Тип | Описание |
|---|---|
T[] где T является одним из типов отдельных сущностей |
Массив, содержащий несколько сущностей. Каждая запись представляет одну сущность. |
Для других сценариев вывода создайте и используйте TableClient с другими типами из Azure.Data.Tables напрямую. Пример использования внедрения зависимостей для создания типа клиента из пакета SDK Azure см. в статье "Регистрация клиентов Azure".