Общие сведения о привязке хранилища BLOB-объектов Azure для службы "Функции Azure"
Служба "Функции Azure" интегрируются со службой хранилища Azure с помощью триггеров и привязок. Интеграция с хранилищем BLOB-объектов позволяет создавать функции, реагирующие на изменения в данных BLOB-объектов, а также в значениях чтения и записи.
Действие | Тип |
---|---|
Выполнение функции при внесении изменений в данные хранилища BLOB-объектов | Триггер |
Чтение данных из хранилища BLOB-объектов в функции | Входная привязка |
Разрешить функции записи данных хранилища BLOB-объектов | Выходная привязка |
Установка расширения
Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:
Функции выполняются в изолированном рабочем процессе C#. Дополнительные сведения см. в руководстве по запуску Функции Azure C# в изолированном рабочем процессе.
Функциональные возможности расширения отличаются в зависимости от версии расширения:
В этой версии появляется возможность подключения с использованием удостоверения, а не секрета. Руководство по настройке приложений-функций с помощью управляемых удостоверений см. в руководстве по созданию приложения-функции с подключениями на основе удостоверений.
Эта версия позволяет выполнить привязку к типам из Azure.Storage.Blobs. Дополнительные сведения об отличиях этих новых типов WindowsAzure.Storage
и Microsoft.Azure.Storage
способах их миграции в Руководстве по их миграции из Руководства по миграции Azure.Storage.Blobs.
Добавьте расширение в проект, установив пакет NuGet Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs NuGet версии 5.x или более поздней версии.
С использованием .NET CLI:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
Примечание.
Большие двоичные объекты 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
параметр. Затем в теле этого делегата вызовите ConfigureBlobStorageExtension()
объект:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureBlobStorageExtension() |> ignore
) |> ignore
Установка пакета
Привязка хранилища BLOB-объектов входит в пакет расширений, который указан в файле проекта host.json. Возможно, потребуется изменить этот пакет, чтобы изменить версию привязки, а также в том случае если пакеты еще не установлены. Дополнительные сведения см. в разделе Пакет расширений.
В этой версии появляется возможность подключения с использованием удостоверения, а не секрета. Руководство по настройке приложений-функций с помощью управляемых удостоверений см. в руководстве по созданию приложения-функции с подключениями на основе удостоверений.
Эту версию расширения можно добавить из пакета расширений версии 3, добавив или заменив следующий код в файле host.json
:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Для получения дополнительных сведений см. раздел Обновление расширений.
Типы привязки
Типы привязки, поддерживаемые для .NET, зависят от версии расширения и режима выполнения C#, что может быть одним из следующих типов:
Изолированная библиотека классов рабочих процессов, скомпилированная функция C# выполняется в процессе, изолированном от среды выполнения.
Выберите версию, чтобы просмотреть сведения о типе привязки для режима и версии.
Изолированный рабочий процесс поддерживает типы параметров в соответствии с таблицами ниже.
триггер большого двоичного объекта;
Триггер большого двоичного объекта может привязаться к следующим типам:
Тип | Описание |
---|---|
string |
Содержимое большого двоичного объекта в виде строки. Используется, когда содержимое большого двоичного объекта является простым текстом. |
byte[] |
Байты содержимого большого двоичного объекта. |
Сериализуемые в JSON типы | Если большой двоичный объект содержит данные JSON, функции пытаются десериализировать данные JSON в обычный тип объекта CLR (POCO). |
Поток1 | Входной поток содержимого большого двоичного объекта. |
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
Клиент, подключенный к большому двоичному объекту. Этот набор типов обеспечивает большую часть управления обработкой большого двоичного объекта и может использоваться для записи обратно в большой двоичный объект, если подключение имеет достаточно разрешений. |
1 Для использования этих типов необходимо ссылаться на Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 или более поздней версии , а также общие зависимости для привязок типов ПАКЕТА SDK.
входная привязка большого двоичного объекта;
Если требуется, чтобы функция обрабатывала один большой двоичный объект, входная привязка большого двоичного объекта может привязаться к следующим типам:
Тип | Описание |
---|---|
string |
Содержимое большого двоичного объекта в виде строки. Используется, когда содержимое большого двоичного объекта является простым текстом. |
byte[] |
Байты содержимого большого двоичного объекта. |
Сериализуемые в JSON типы | Если большой двоичный объект содержит данные JSON, функции пытаются десериализировать данные JSON в обычный тип объекта CLR (POCO). |
Поток1 | Входной поток содержимого большого двоичного объекта. |
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
Клиент, подключенный к большому двоичному объекту. Этот набор типов предлагает большую часть управления для обработки БОЛЬШОго двоичного объекта и может использоваться для записи обратно в него, если подключение имеет достаточно разрешений. |
Если требуется, чтобы функция обрабатывала несколько больших двоичных объектов из контейнера, входная привязка большого двоичного объекта может привязаться к следующим типам:
Тип | Описание |
---|---|
T[] или List<T> где T находится один из типов входных привязок большого двоичного объекта |
Массив или список нескольких больших двоичных объектов. Каждая запись представляет один большой двоичный объект из контейнера. Вы также можете привязаться к любым интерфейсам, реализованным этими типами, например IEnumerable<T> . |
BlobContainerClient1 | Клиент, подключенный к контейнеру. Этот тип предоставляет большую часть управления для обработки контейнера и может использоваться для записи в него, если подключение имеет достаточно разрешений. |
1 Для использования этих типов необходимо ссылаться на Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 или более поздней версии , а также общие зависимости для привязок типов ПАКЕТА SDK.
выходная привязка большого двоичного объекта.
Если требуется, чтобы функция записывала в один большой двоичный объект, выходная привязка большого двоичного объекта может привязаться к следующим типам:
Тип | Описание |
---|---|
string |
Содержимое большого двоичного объекта в виде строки. Используется, когда содержимое большого двоичного объекта является простым текстом. |
byte[] |
Байты содержимого большого двоичного объекта. |
Сериализуемые в JSON типы | Объект, представляющий содержимое БОЛЬШОго двоичного объекта JSON. Функции пытаются сериализовать обычный тип объекта CLR (POCO) в данные JSON. |
Если требуется, чтобы функция записывала в несколько больших двоичных объектов, выходная привязка большого двоичного объекта может привязаться к следующим типам:
Тип | Описание |
---|---|
T[] где T является одним из типов выходных привязок большого двоичного объекта |
Массив, содержащий содержимое для нескольких больших двоичных объектов. Каждая запись представляет содержимое одного большого двоичного объекта. |
Для других выходных сценариев создайте и используйте blobClient или BlobContainerClient с другими типами из Azure.Storage.Blobs напрямую. Пример использования внедрения зависимостей для создания типа клиента из пакета SDK Azure см. в статье "Регистрация клиентов Azure".
Параметры файла host.json
В этом разделе описываются параметры конфигурации приложения-функции, доступные для функций, использующих эту привязку. Эти параметры применяются только при использовании расширения версии 5.0.0 и более поздних версий. В приведенном ниже примере файла host.json содержатся только параметры этой привязки для версии 2.x или новее. Дополнительные сведения о параметрах конфигурации приложения-функции в версии 2.x или более поздней см. в статье Справочник по файлу host.json для Функций Azure.
Примечание.
Этот раздел не применяется к версиям расширений до версии 5.0.0. Для этих более ранних версий нет параметров конфигурации приложения-функции для BLOB-объектов.
{
"version": "2.0",
"extensions": {
"blobs": {
"maxDegreeOfParallelism": 4,
"poisonBlobThreshold": 1
}
}
}
Свойство | По умолчанию | Description |
---|---|---|
maxDegreeOfParallelism | 8 * (количество доступных ядер) | Целочисленное число одновременных вызовов, разрешенное для всех функций, активированных большим двоичным объектом, в данном приложении-функции. Минимальное допустимое значение — 1. |
poisonBlobThreshold | 5 | Целое число раз, чтобы попытаться обработать сообщение, прежде чем переместить его в очередь яда. Минимальное допустимое значение — 1. |