Учебник. Активация Функций Azure в контейнерах BLOB-объектов с помощью подписки на события
Предыдущие версии триггера хранилища BLOB-объектов Функции Azure опрашивали контейнер хранилища для изменений. Более поздняя версия расширения хранилища BLOB-объектов (5.x+) вместо этого использует подписку на события Сетки событий в контейнере. Эта подписка на событие уменьшает задержку, активируя функцию мгновенно, как изменения происходят в контейнере, подписанном.
В этой статье показано, как создать функцию, которая выполняется на основе событий, возникающих при добавлении большого двоичного объекта в контейнер. Вы используете Visual Studio Code для локальной разработки и проверяете код перед развертыванием проекта в Azure.
- Создайте функцию хранилища BLOB-объектов на основе событий в новом проекте.
- Проверьте локально в Visual Studio Code с помощью эмулятора Azurite.
- Создайте контейнер хранилища BLOB-объектов в новой учетной записи хранения в Azure.
- Создайте приложение-функцию в плане потребления Flex (предварительная версия).
- Создайте подписку на событие для нового контейнера BLOB-объектов.
- Разверните и проверьте код функции в Azure.
Эта статья поддерживает версию 4 модели программирования Node.js для Функции Azure.
Эта статья поддерживает версию 2 модели программирования Python для Функции Azure.
В этой статье создается приложение C#, которое выполняется в изолированном рабочем режиме, которое поддерживает .NET 8.0.
Внимание
В этом руководстве вы используете план потребления Flex, который в настоящее время находится в предварительной версии. План потребления Flex поддерживает только версию триггера хранилища BLOB-объектов на основе событий.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Пакет SDK для .NET 8.0.
Visual Studio Code на одной из поддерживаемых платформ.
Расширение C# для Visual Studio Code.
Расширение службы "Функции Azure" для Visual Studio Code.
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Node.js 14.x или более поздней версии. Используйте команду
node --version
, чтобы проверить установленную версию.Visual Studio Code на одной из поддерживаемых платформ.
Расширение "Функции Azure" для Visual Studio Code. Это расширение устанавливает Функции Azure Core Tools при первом запуске функций.
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Visual Studio Code на одной из поддерживаемых платформ.
Расширение "Функции Azure" для Visual Studio Code.
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Версии Python, поддерживаемые Функциями Azure. Дополнительные сведения см. в разделе Как установить Python.
Visual Studio Code на одной из поддерживаемых платформ.
Расширение Python для Visual Studio Code.
Расширение "Функции Azure" для Visual Studio Code.
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Пакет средств разработки Java версии 8, 11, 17 или 21 (Linux).
Apache Maven 3.0 или более поздней версии.
Visual Studio Code на одной из поддерживаемых платформ.
Расширение "Функции Azure" для Visual Studio Code.
- расширение служба хранилища Azure для Visual Studio Code.
Примечание.
Расширение служба хранилища Azure для Visual Studio Code в настоящее время находится в предварительной версии.
Создание функции, активируемой большим двоичным объектом
При создании функции триггера хранилища BLOB-объектов с помощью Visual Studio Code также создается новый проект. Необходимо изменить функцию, чтобы использовать подписку на события в качестве источника, а не использовать обычный контейнер опроса.
В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд, введите
Azure Functions: Create Function...
и выберите "Создать проект".В рабочей области проекта выберите расположение каталога. Убедитесь, что вы создадите новую папку или выберите пустую папку для рабочей области проекта.
Не выбирайте папку проекта, которая уже входит в рабочую область.
- В запросах укажите следующие сведения:
Prompt Действие Выбор языка Выберите C#
.Выберите среду выполнения .NET Выберите .NET 8.0 Isolated LTS
.Выбор шаблона для первой функции проекта Выберите Azure Blob Storage trigger (using Event Grid)
.Укажите имя функции Введите EventGridBlobTrigger
.Укажите пространство имен Введите My.Functions
.Select setting from "local.settings.json" (Выберите параметр из файла local.settings.json) Выберите Create new local app setting
.Выбор подписки При необходимости выберите подписку. Выбрать учетную запись хранения Используйте эмулятор Azurite для локального хранилища. Путь в учетной записи хранения, отслеживаемой триггером Примите значение по умолчанию samples-workitems
.Выбор способа открытия проекта Выберите Open in current window
.Prompt Действие Выбор языка Выберите Python
.Выбор модели программирования Python Выберите Model V2
Выберите интерпретатор Python для создания виртуальной среды Выберите предпочитаемый интерпретатор Python. Если параметр не отображается, введите полный путь к двоичному файлу Python. Выбор шаблона для первой функции проекта Выберите Blob trigger
. (Шаблон на основе событий еще недоступен.)Укажите имя функции Введите EventGridBlobTrigger
.Путь в учетной записи хранения, отслеживаемой триггером Примите значение по умолчанию samples-workitems
.Select setting from "local.settings.json" (Выберите параметр из файла local.settings.json) Выберите Create new local app setting
.Выбор подписки При необходимости выберите подписку. Выбрать учетную запись хранения Используйте эмулятор Azurite для локального хранилища. Выбор способа открытия проекта Выберите Open in current window
.Prompt Действие Выбор языка Выберите Java
.Выберите версию Java Выберите Java 11
илиJava 8
, версию Java, в которой выполняются функции в Azure, и вы проверили ее локально.Укажите идентификатор группы Выберите com.function
.Укажите идентификатор артефакта Выберите EventGridBlobTrigger
(или значение по умолчанию).Укажите версию Выберите 1.0-SNAPSHOT
.Укажите имя пакета Выберите com.function
.Укажите имя приложения Примите созданное имя, начиная с EventGridBlobTrigger
.Выберите средство сборки для проекта Java Выберите Maven
.Выбор способа открытия проекта Выберите Open in current window
.Для вас создается активированная HTTP-функция .
HttpExample
. Вы не будете использовать эту функцию и должны вместо этого создать новую функцию. Prompt Действие Выбор язык для проекта приложения-функции Выберите TypeScript
.Выбор модели программирования TypeScript Выберите Model V4
.Выбор шаблона для первой функции проекта Выберите Azure Blob Storage trigger (using Event Grid)
.Укажите имя функции Введите EventGridBlobTrigger
.Select setting from "local.settings.json" (Выберите параметр из файла local.settings.json) Выберите Create new local app setting
.Выбор подписки При необходимости выберите подписку. Выбрать учетную запись хранения Используйте эмулятор Azurite для локального хранилища. Путь в учетной записи хранения, отслеживаемой триггером Примите значение по умолчанию samples-workitems
.Выбор способа открытия проекта Выберите Open in current window
.Prompt Действие Выбор язык для проекта приложения-функции Выберите JavaScript
.Выбор модели программирования JavaScript Выберите Model V4
.Выбор шаблона для первой функции проекта Выберите Azure Blob Storage trigger (using Event Grid)
.Укажите имя функции Введите eventGridBlobTrigger
.Select setting from "local.settings.json" (Выберите параметр из файла local.settings.json) Выберите Create new local app setting
.Выбор подписки При необходимости выберите подписку. Выбрать учетную запись хранения Используйте эмулятор Azurite для локального хранилища. Путь в учетной записи хранения, отслеживаемой триггером Примите значение по умолчанию samples-workitems
.Выбор способа открытия проекта Выберите Open in current window
.Prompt Действие Выбор язык для проекта приложения-функции Выберите PowerShell
.Выбор шаблона для первой функции проекта Выберите Azure Blob Storage trigger (using Event Grid)
.Укажите имя функции Введите EventGridBlobTrigger
.Select setting from "local.settings.json" (Выберите параметр из файла local.settings.json) Выберите Create new local app setting
.Выбор подписки При необходимости выберите подписку. Выбрать учетную запись хранения Используйте эмулятор Azurite для локального хранилища. Путь в учетной записи хранения, отслеживаемой триггером Примите значение по умолчанию samples-workitems
.Выбор способа открытия проекта Выберите Open in current window
.
В палитре команд введите
Azure Functions: Create Function...
и выберитеEventGridBlobTrigger
. Если этот шаблон не отображается, сначала выберите "Изменить фильтр>шаблонов все".В запросах укажите следующие сведения:
Prompt Действие Укажите имя пакета Выберите com.function
.Укажите имя функции Введите EventGridBlobTrigger
.Select setting from "local.settings.json" (Выберите параметр из файла local.settings.json) Выберите Create new local app setting
.Выбор подписки Выберите свою подписку. Выбрать учетную запись хранения Используйте эмулятор Azurite для локального хранилища. Путь в учетной записи хранения, отслеживаемой триггером Примите значение по умолчанию samples-workitems
.
Теперь у вас есть функция, которая может быть активирована событиями в контейнере хранилища BLOB-объектов.
Обновление источника триггера
Сначала необходимо переключить источник триггера из источника триггера BLOB-объектов по умолчанию (опрос контейнера) в источник подписки на событие.
Откройте файл проекта function_app.py и вы увидите определение функции
EventGridBlobTrigger
с примененным декораторомblob_trigger
.Обновите декоратор, добавив
source = "EventGrid"
. Теперь функция должна выглядеть примерно так:@app.blob_trigger(arg_name="myblob", source="EventGrid", path="samples-workitems", connection="<STORAGE_ACCOUNT>") def EventGridBlobTrigger(myblob: func.InputStream): logging.info(f"Python blob trigger function processed blob" f"Name: {myblob.name}" f"Blob Size: {myblob.length} bytes")
В этом определении
source = "EventGrid"
указывается, что подпискаsamples-workitems
на событие в контейнер больших двоичных объектов используется в качестве источника события, запускающего триггер.
(Необязательно) Просмотр кода
Откройте созданный EventGridBlobTrigger.cs
файл, и вы увидите определение функции EventGridBlobTrigger
, которая выглядит примерно так:
[Function(nameof(EventGridBlobTriggerCSharp))]
public async Task Run([BlobTrigger("PathValue/{name}", Source = BlobTriggerSource.EventGrid, Connection = "ConnectionValue")] Stream stream, string name)
{
using var blobStreamReader = new StreamReader(stream);
var content = await blobStreamReader.ReadToEndAsync();
_logger.LogInformation($"C# Blob Trigger (using Event Grid) processed blob\n Name: {name} \n Data: {content}");
}
В этом определении Source = BlobTriggerSource.EventGrid
указывается, что подписка на событие для контейнера BLOB-объектов (в примере PathValue
) используется в качестве источника события, запускающего триггер.
Откройте созданный EventGridBlobTrigger.java
файл, и вы увидите определение функции EventGridBlobTrigger
, которая выглядит примерно так:
@FunctionName("EventGridBlobTrigger")
@StorageAccount("<STORAGE_ACCOUNT>")
public void run(
@BlobTrigger(name = "content", source = "EventGrid", path = "samples-workitems/{name}", dataType = "binary") byte[] content,
@BindingName("name") String name,
final ExecutionContext context
) {
context.getLogger().info("Java Blob trigger function processed a blob. Name: " + name + "\n Size: " + content.length + " Bytes");
}
В этом определении source = EventGrid
указывается, что подписка samples-workitems
на событие в контейнер больших двоичных объектов используется в качестве источника события, запускающего триггер.
В папке EventGridBlobTrigger
откройте function.json
файл и найдите определение привязки, подобное этому, с помощью source
type
blobTrigger
EventGrid
следующих объектов:
{
"bindings": [
{
"name": "InputBlob",
"type": "blobTrigger",
"direction": "in",
"path": "samples-workitems/{name}",
"source": "EventGrid",
"connection":""
}
]
}
Указывает path
, что samples-workitems
контейнер BLOB-объектов используется в качестве источника события, запускающего триггер.
Откройте созданный EventGridBlobTrigger.js
файл и увидите определение функции, которая выглядит примерно так:
const { app } = require('@azure/functions');
app.storageBlob('storageBlobTrigger1', {
path: 'samples-workitems/{name}',
connection: 'MyStorageAccountAppSetting',
source: 'EventGrid',
handler: (blob, context) => {
context.log(
`Storage blob function processed blob "${context.triggerMetadata.name}" with size ${blob.length} bytes`
);
},
});
В этом определении указывается, source
EventGrid
что подписка samples-workitems
на событие в контейнер больших двоичных объектов используется в качестве источника события, запускающего триггер.
Откройте созданный EventGridBlobTrigger.ts
файл и увидите определение функции, которая выглядит примерно так:
import { app, InvocationContext } from '@azure/functions';
export async function storageBlobTrigger1(blob: Buffer, context: InvocationContext): Promise<void> {
context.log(
`Storage blob function processed blob "${context.triggerMetadata.name}" with size ${blob.length} bytes`
);
}
app.storageBlob('storageBlobTrigger1', {
path: 'samples-workitems/{name}',
connection: 'MyStorageAccountAppSetting',
source: 'EventGrid',
handler: storageBlobTrigger1,
});
В этом определении указывается, source
EventGrid
что подписка samples-workitems
на событие в контейнер больших двоичных объектов используется в качестве источника события, запускающего триггер.
Обновление расширения хранилища
Чтобы использовать триггер хранилища BLOB-объектов на основе сетки событий, необходимо иметь по крайней мере версию 5.x расширения хранилища Функции Azure.
Чтобы обновить проект с требуемой версией расширения, в окне терминала выполните следующую dotnet add package
команду:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
Откройте файл проекта host.json и просмотрите
extensionBundle
элемент.Если
extensionBundle.version
элемент не является по крайней мере3.3.0
, заменитеextensionBundle
его этой версией:"extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[4.0.0, 5.0.0)" }
Подготовка эмуляции локального хранилища
Visual Studio Code использует Azurite для эмуляции служба хранилища Azure служб при локальном запуске. Вы используете Azurite для эмуляции службы Хранилище BLOB-объектов Azure во время локальной разработки и тестирования.
Если вы еще этого не сделали, установите расширение Azurite версии 3 для Visual Studio Code.
Убедитесь, что для файла
"UseDevelopmentStorage=true"
local.settings.json задано значениеAzureWebJobsStorage
, которое сообщает Core Tools использовать Azurite вместо реального подключения к учетной записи хранения при локальном запуске.Нажмите клавишу F1, чтобы открыть палитру команд, введите
Azurite: Start Blob Service
и нажмите клавишу ВВОД, которая запускает эмулятор службы хранилища BLOB-объектов Azurite.Щелкните значок Azure на панели действий, разверните локальный эмулятор присоединенных к рабочей области>учетных>записей хранения, щелкните правой кнопкой мыши контейнеры BLOB-объектов, выберите "Создать контейнер BLOB-объектов...", введите имя
samples-workitems
и нажмите клавишу ВВОД.Разверните примеры контейнеров>BLOB-объектов и выберите "Отправить файлы...".
Выберите файл для отправки в локально эмулированный контейнер. Этот файл обрабатывается позже функцией для проверки и отладки кода функции. Текстовый файл может работать лучше всего с кодом шаблона триггера BLOB-объектов.
Локальное выполнение функции
С помощью файла в эмулированном хранилище можно запустить функцию для имитации события, вызываемого подпиской сетки событий. Сведения о событии, передаваемые триггеру, зависят от файла, добавленного в локальный контейнер.
Задайте все точки останова и нажмите клавишу F5, чтобы запустить проект для локальной отладки. Функции Azure Основные инструменты должны работать в окне терминала.
Вернитесь в область Azure, разверните функции локального проекта>рабочей области>, щелкните правой кнопкой мыши функцию и выберите "Выполнить функцию сейчас...".
В диалоговом окне текста запроса введите
samples-workitems/<TEST_FILE_NAME>
имя файла,<TEST_FILE_NAME>
отправленного в локальном эмуляторе хранилища.Нажмите клавишу ВВОД, чтобы запустить функцию. Указанное значение — путь к большому двоичному объекту в локальном эмуляторе. Эта строка передается триггеру в полезные данные запроса, который имитирует полезные данные, когда подписка на событие вызывает функцию, чтобы сообщить о добавлении большого двоичного объекта в контейнер.
Просмотрите выходные данные выполнения этой функции. Вы увидите в выходных данных имя файла и его содержимое. Если вы устанавливаете точки останова, может потребоваться продолжить выполнение.
Теперь, когда вы успешно проверили код функции локально, пора опубликовать проект в новом приложении-функции в Azure.
Подготовка учетной записи служба хранилища Azure
Для подписок на события для служба хранилища Azure требуется учетная запись хранения общего назначения версии 2. Расширение служба хранилища Azure для Visual Studio Code можно использовать для создания этой учетной записи хранения.
В Visual Studio Code снова нажмите клавишу F1, чтобы открыть палитру команд и ввести
Azure Storage: Create Storage Account...
. Укажите эти сведения при появлении запроса:Prompt Действие Введите имя новой учетной записи хранения Присвойте ему произвольное глобально уникальное имя. Имена учетных записей хранения должны содержать от 3 до 24 символов длиной только строчных букв и чисел. Чтобы упростить идентификацию, мы используем то же имя для группы ресурсов и имени приложения-функции. Выбор расположения для новых ресурсов Для повышения производительности выберите регион рядом с вами. Расширение создает учетную запись хранения общего назначения версии 2 с указанным именем. То же имя также используется для группы ресурсов, содержащей учетную запись хранения. Триггер хранилища BLOB-объектов на основе сетки событий требует учетной записи хранения общего назначения версии 2.
Снова нажмите клавишу F1 и в палитре команд введите
Azure Storage: Create Blob Container...
. Укажите эти сведения при появлении запроса:Prompt Действие Выбор ресурса Выберите созданную учетную запись хранения общего назначения версии 2. Введите имя нового контейнера больших двоичных объектов Введите samples-workitems
имя контейнера, на которое ссылается проект кода.
Для запуска приложения-функции также требуется учетная запись хранения. Для простоты в этом руководстве используется та же учетная запись хранения для триггера BLOB-объекта и приложения-функции. Однако в рабочей среде может потребоваться использовать отдельную учетную запись хранения с приложением-функцией. Дополнительные сведения см. в статье Рекомендации по хранению для Функций Azure.
Создание приложения-функции
Используйте эти действия, чтобы создать приложение-функцию в плане потребления Flex. Если приложение размещено в плане потребления Flex, триггеры хранилища BLOB-объектов должны использовать подписки на события.
В палитре команд введите Azure Functions: Create function app in Azure...(Advanced) (Функции Azure: создание приложения-функции в Azure... (Дополнительно)).
Следуя инструкциям, введите следующие сведения:
Prompt Выбор Введите глобально уникальное имя нового приложения-функции. Введите глобально уникальное имя для определения вашего нового приложения-функции, а затем нажмите клавишу ВВОД. Допустимые символы для имени приложения-функции: a-z
,0-9
и-
.Выберите план размещения. Выбор потребления Flex (предварительная версия). Выберите стек сред выполнения Выберите стек языка и версию, в которой вы работали локально. Выберите группу ресурсов для новых ресурсов. Выберите существующую группу ресурсов, в которой вы создали учетную запись хранения. Выберите расположение для новых ресурсов. Выберите расположение в поддерживаемом регионе рядом с вами или рядом с другими службами, к которым обращаются функции. Неподдерживаемые регионы не отображаются. Дополнительные сведения см. в разделе "Просмотр поддерживаемых в настоящее время регионов". Выберите учетную запись хранения. Выберите имя созданной учетной записи хранения. Выберите ресурс Application Insights для приложения. Выберите "Создать новый ресурс Application Insights" и в запросе укажите имя экземпляра, используемого для хранения данных среды выполнения из функций. Уведомление появляется после создания приложения-функции. Выберите "Просмотреть выходные данные " в этом уведомлении, чтобы просмотреть результаты создания, включая созданные ресурсы Azure.
Развертывание кода функции
Внимание
Развертывание в существующем приложении-функции всегда перезаписывает содержимое этого приложения в Azure.
В палитре команд введите и выберите Функции Azure: Развернуть в приложении-функции.
Выберите только что созданное приложение-функцию. При появлении запроса на перезапись предыдущих развертываний выберите "Развернуть ", чтобы развернуть код функции в новом ресурсе приложения-функции.
После завершения развертывания выберите "Просмотреть выходные данные ", чтобы просмотреть результаты создания и развертывания, включая созданные ресурсы Azure. Если вы пропустили уведомление, выберите значок колокольчика в правом нижнем углу, чтобы увидеть его снова.
Обновление параметров приложения
Так как необходимые параметры приложения из local.settings.json
файла не публикуются автоматически, их необходимо передать в приложение-функцию, чтобы функция выполнялось правильно в Azure.
В поддоне команды введите
Azure Functions: Download Remote Settings...
и в строке выбора ресурса выберите имя приложения-функции.Когда появится запрос на
AzureWebJobsStorage
наличие параметра, выберите "Да", чтобы перезаписать параметр локального эмулятора с помощью фактической учетной записи хранения строка подключения из Azure.В файле замените
local.settings.json
параметр локального эмулятора тем же строка подключения, что и дляAzureWebJobsStorage
этого.FUNCTIONS_WORKER_RUNTIME
Удалите запись, которая не поддерживается в плане потребления Flex.В поддоне команды введите
Azure Functions: Upload Local Settings...
и в строке выбора ресурса выберите имя приложения-функции.
Теперь узел функций и триггер используют одну и ту же учетную запись хранения.
Создание URL-адреса конечной точки
Чтобы создать подписку на события, необходимо предоставить сетку событий URL-адрес конкретной конечной точки, чтобы сообщить о событиях хранилища BLOB-объектов. Этот URL-адрес расширения BLOB-объектов состоит из следующих частей:
Часть | Пример |
---|---|
URL-адрес базового приложения-функции | https://<FUNCTION_APP_NAME>.azurewebsites.net |
Путь, зависящий от большого двоичного объекта | /runtime/webhooks/blobs |
Строка запроса функции | ?functionName=Host.Functions.<FUNCTION_NAME> |
Ключ доступа к расширению BLOB-объектов | &code=<BLOB_EXTENSION_KEY> |
Ключ доступа к расширению BLOB-объектов предназначен для того, чтобы другие пользователи могли получить доступ к конечной точке расширения BLOB-объектов. Чтобы определить ключ доступа к расширению BLOB-объектов, выполните приведенные далее действия.
В Visual Studio Code щелкните значок Azure на панели действий. В разделе Ресурсы разверните подписку, разверните Приложение-функция, щелкните правой кнопкой мыши созданное приложение-функцию и выберите Открыть на портале.
В меню слева в разделе Функции выберите Ключи приложения.
В разделе Системные ключи выберите ключ с именем blobs_extension и скопируйте значение ключа.
Это значение включается в строку запроса нового URL-адреса конечной точки.
Создайте URL-адрес конечной точки для триггера Хранилища BLOB-объектов на основе следующего примера:
https://<FUNCTION_APP_NAME>.azurewebsites.net/runtime/webhooks/blobs?functionName=Host.Functions.EventGridBlobTrigger&code=<BLOB_EXTENSION_KEY>
В этом примере замените
<FUNCTION_APP_NAME>
именем приложения-функции и<BLOB_EXTENSION_KEY>
значением, полученным на портале. Если для функции использовалось другое имя, заменитеEventGridBlobTrigger
его именем.
Теперь этот URL-адрес конечной точки можно использовать для создания подписки на события.
Создание подписки на события
Подписка на события, на основе Сетка событий Azure, вызывает события на основе изменений в контейнере большого двоичного объекта, подписанного на подписку. Затем это событие отправляется в конечную точку расширения BLOB-объектов для вашей функции. После создания подписки на событие невозможно обновить URL-адрес конечной точки.
В Visual Studio Code щелкните значок Azure на панели действий. В разделе Ресурсы разверните подписку, разверните Учетные записи хранения, щелкните правой кнопкой мыши созданную ранее учетную запись хранения и выберите Открыть на портале.
Войдите на портал Azure и запишите группу ресурсов для учетной записи хранения. Вы создаете другие ресурсы в той же группе, чтобы упростить очистку ресурсов при завершении.
Выберите параметр "События" в меню слева.
В окне События нажмите кнопку + Подписка на события и укажите значения из приведенной ниже таблицы на вкладке Базовые.
Параметр Предлагаемое значение Описание: Имя myBlobEventSub Имя, идентифицирующее подписку на события. Имя можно использовать для быстрого поиска подписки на события. Схема событий Схема сетки событий Используйте схему по умолчанию для событий. Имя системного раздела samples-workitems-blobs Имя раздела, представляющего контейнер. Раздел создается с первой подпиской, и вы будете использовать его для будущих подписок на события. Фильтрация по типам событий Blob created (Большой двоичный объект создан) Тип конечной точки Веб-перехватчик Триггер Хранилища BLOB-объектов использует конечную точку типа "Веб-перехватчик". Конечная точка Конечная точка URL-адреса на основе Azure Используйте созданную конечную точку URL-адреса, которая включает значение ключа. Выберите Подтвердить выбор, чтобы проверить URL-адрес конечной точки.
Перейдите на вкладку "Фильтры" и укажите следующие сведения в запросах:
Параметр Предлагаемое значение Description Включение фильтрации субъектов Включено Включает фильтрацию, в которой большие двоичные объекты могут активировать функцию. Тема начинается с /blobServices/default/containers/<CONTAINER_NAME>/blobs/<BLOB_PREFIX>
Замените и <BLOB_PREFIX>
замените<CONTAINER_NAME
значениями, которые вы выбрали. При этом подписка активируется только для больших двоичных объектов, которые начинаютсяBLOB_PREFIX
с и находятся в контейнереCONTAINER_NAME
.Тема заканчивается с .txt Гарантирует, что функция будет активирована только большими двоичными объектами, заканчивающимися .txt
.
Дополнительные сведения о фильтрации для определенных больших двоичных объектов см. в разделе "Фильтрация событий" для Центры событий Azure.
- Выберите Создать, чтобы создать подписку на события.
Отправка файла в контейнер
Вы можете передать файл с компьютера в контейнер хранилища BLOB-объектов с помощью Visual Studio Code.
В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд и ввести.
Azure Storage: Upload Files...
В диалоговом окне "Открыть" выберите файл, предпочтительный текстовый файл и нажмите кнопку "Отправить".
Введите следующие сведения по соответствующим запросам:
Параметр Предлагаемое значение Description Введите целевой каталог этой отправки default Просто примите значение /
по умолчанию, которое является корнем контейнера.Выбор ресурса Storage account name Выберите имя учетной записи хранения, созданной на предыдущем шаге. Выберите тип ресурсов Контейнеры больших двоичных объектов Вы отправляете данные в контейнер больших двоичных объектов. Выберите контейнер больших двоичных объектов samples-workitems Это значение представляет собой имя контейнера, созданного на предыдущем шаге.
Перейдите к локальной файловой системе, чтобы найти файл для отправки, а затем нажмите кнопку "Отправить ", чтобы отправить файл.
Проверка функции в Azure
После отправки файла в контейнер samples-workitems необходимо активировать функцию. Проверить можно, проверив следующее в портал Azure:
В учетной записи хранения перейдите на страницу "События", выберите "Подписки на события" и убедитесь, что событие доставлено. Может потребоваться до пятиминутной задержки, чтобы событие отображалось на диаграмме.
Вернитесь на страницу приложения-функции на портале, в разделе "Функции " найдите функцию и выберите вызовы и многое другое. Вы должны увидеть трассировки, записанные из успешного выполнения функции.
Очистка ресурсов
При переходе к следующему шагу и добавлении привязки очереди службы хранилища Azure к функции, вам потребуется сохранить все ресурсы, чтобы использовать их в будущем.
В противном случае выполните следующие действия, чтобы удалить приложение-функцию и связанные с ним ресурсы и избежать дополнительных расходов.
В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд. В палитре команд найдите и щелкните
Azure: Open in portal
.Выберите приложение-функцию и нажмите клавишу ВВОД. Страница приложения-функции откроется на портале Azure.
На вкладке Обзор выберите именованную ссылку рядом с полем Группа ресурсов.
На странице Группа ресурсов просмотрите список включенных ресурсов и убедитесь, что именно их нужно удалить.
Выберите Удалить группу ресурсов и следуйте инструкциям.
Удаление может занять несколько минут. После этого на несколько секунд появится уведомление. Кроме того, можно выбрать значок колокольчика в верхней части страницы, чтобы просмотреть уведомление.
Дополнительные сведения о затратах на использование Функций см. в статье Оценка затрат на план потребления.