Поделиться через


Руководство: Как активировать Azure Functions в контейнерах 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 для Visual Studio Code находится в предварительной версии.

Создание функции, активируемой большим двоичным объектом

При создании триггерной функции для хранилища объектов Blob с помощью Visual Studio Code одновременно создается новый проект. Необходимо изменить функцию, чтобы использовать подписку на события в качестве источника, а не использовать обычный контейнер опроса.

  1. В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд, введите Azure Functions: Create Function...и выберите "Создать проект".

  2. В рабочей области проекта выберите расположение каталога. Убедитесь, что вы создадите новую папку или выберите пустую папку для рабочей области проекта.

    Не выбирайте папку проекта, которая уже входит в рабочую область.

  3. В запросах укажите следующие сведения:

    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.
  1. В палитре команд введите Azure Functions: Create Function... и выберите EventGridBlobTrigger. Если этот шаблон не отображается, сначала выберите "Изменить фильтр>шаблонов все".

  2. В запросах укажите следующие сведения:

    Prompt Действие
    Укажите имя пакета Выберите com.function.
    Укажите имя функции Введите EventGridBlobTrigger.
    Select setting from "local.settings.json" (Выберите параметр из файла local.settings.json) Выберите Create new local app setting.
    Выбор подписки Выберите свою подписку.
    Выбрать учетную запись хранения Используйте эмулятор Azurite для локального хранилища.
    Путь в учетной записи хранения, отслеживаемой триггером Примите значение по умолчанию samples-workitems.

Теперь у вас есть функция, которая может быть активирована событиями в контейнере хранилища BLOB-объектов.

Обновление источника триггера

Необходимо переключить источник триггера с триггера Blob по умолчанию (опрос контейнера) на источник подписки на событие.

  1. Откройте файл проекта function_app.py. Вы увидите определение функции EventGridBlobTrigger с примененным декоратором blob_trigger .

  2. Обновите декоратор, добавив 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 на событие контейнера BLOB-объектов используется в качестве источника события, запускающего триггер.

(Необязательно) Просмотр кода

Откройте созданный 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}", name, 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 BLOB-объектов является источником события, запускающего триггер.

В папке EventGridBlobTrigger откройте function.json файл и найдите определение привязки, подобное этому, с помощью typeblobTriggersourceEventGridследующих объектов:

{
    "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`
        );
    },
});

В этом определении sourceEventGrid указывает на то, что подписка на событие в контейнере BLOB 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 
  1. Откройте файл host.json проекта и просмотрите элемент extensionBundle.

  2. Если 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 во время локальной разработки и тестирования.

  1. Если вы еще этого не сделали, установите расширение Azurite версии 3 для Visual Studio Code.

  2. Убедитесь, что в файле local.settings.json задано значение для AzureWebJobsStorage. Этот параметр указывает Core Tools использовать Azurite вместо подключения к реальной учетной записи хранения при локальном запуске.

  3. Нажмите клавишу F1, чтобы открыть палитру команд, введите Azurite: Start Blob Service и нажмите клавишу ВВОД. Это действие запускает эмулятор службы хранилища BLOB-объектов Azurite.

  4. Щелкните значок Azure на панели действий, разверните локальный эмулятор присоединенных к рабочей области>учетных>записей хранения, щелкните правой кнопкой мыши контейнеры BLOB-объектов, выберите "Создать контейнер BLOB-объектов...", введите имя samples-workitemsи нажмите клавишу ВВОД.

    Снимок экрана: выбор параметра

  5. Разверните примеры контейнеров>BLOB-объектов и выберите "Отправить файлы...".

    Снимок экрана: выборка

  6. Выберите файл для отправки в локально эмулированный контейнер. Функция обрабатывает этот файл позже, чтобы проверить и отладить код функции. Текстовый файл может работать лучше всего с кодом шаблона триггера BLOB-объектов.

Локальное выполнение функции

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

  1. Задайте все точки останова и нажмите клавишу F5, чтобы запустить проект для локальной отладки. Функции Azure Основные инструменты должны работать в окне терминала.

  2. Вернитесь в область Azure, разверните функции локального проекта, щелкните правой кнопкой мыши функцию и выберите >

    Снимок экрана: кнопка

  3. В диалоговом окне текста запроса введите samples-workitems/<TEST_FILE_NAME>имя файла, <TEST_FILE_NAME> отправленного в локальном эмуляторе хранилища.

  4. Нажмите клавишу ВВОД, чтобы запустить функцию. Указанное значение — путь к большому двоичному объекту в локальном эмуляторе. Эта строка передается триггеру в полезные данные запроса, который имитирует полезные данные, когда подписка на событие вызывает функцию, чтобы сообщить о добавлении большого двоичного объекта в контейнер.

  5. Просмотрите выходные данные выполнения этой функции. Вы увидите в выходных данных имя файла и его содержимое. Если вы устанавливаете точки останова, может потребоваться продолжить выполнение.

Теперь, когда вы успешно проверили код функции локально, пора опубликовать проект в новом приложении-функции в Azure.

Подготовка учетной записи служба хранилища Azure

Для подписок на события для служба хранилища Azure требуется учетная запись хранения общего назначения версии 2. Расширение служба хранилища Azure для Visual Studio Code можно использовать для создания этой учетной записи хранения.

  1. В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд и ввести Azure Storage: Create Storage Account.... Укажите эти сведения при появлении запроса:

    Prompt Действие
    Введите имя новой учетной записи хранения Присвойте ему произвольное глобально уникальное имя. Имена учетных записей хранения должны содержать от 3 до 24 символов длиной только строчных букв и чисел. Чтобы упростить идентификацию, используйте то же имя для группы ресурсов и имени приложения-функции.
    Выбор расположения для новых ресурсов Для повышения производительности выберите регион рядом с вами.

    Расширение создает учетную запись хранения общего назначения версии 2 с указанным именем. То же имя также используется для группы ресурсов, содержащей учетную запись хранения. Триггер хранилища BLOB-объектов на основе сетки событий требует учетной записи хранения общего назначения версии 2.

  2. Снова нажмите клавишу F1 и в палитре команд введите Azure Storage: Create Blob Container.... Укажите эти сведения при появлении запроса:

    Prompt Действие
    Выбор ресурса Выберите созданную учетную запись хранения общего назначения версии 2.
    Введите имя нового контейнера больших двоичных объектов Введите samples-workitemsимя контейнера, на которое ссылается проект кода.

Для запуска приложения-функции также требуется учетная запись хранения. Для простоты в этом руководстве используется та же учетная запись хранения для триггера BLOB-объекта и приложения-функции. Однако в рабочей среде может потребоваться использовать отдельную учетную запись хранения с приложением-функцией. Дополнительные сведения см. в статье Рекомендации по хранению для Функций Azure.

Создание приложения-функции

Используйте эти действия, чтобы создать приложение-функцию в плане потребления Flex. При размещении приложения в плане Flex Consumption, триггеры Azure Blob Storage должны использовать подписки на события.

  1. В палитре команд введите Функции Azure: создайте приложение-функцию в Azure... (Дополнительно).

  2. Следуйте инструкциям и предоставьте следующие сведения:

    Prompt Выбор
    Введите глобально уникальное имя нового приложения-функции Введите глобально уникальное имя для определения вашего нового приложения-функции, а затем нажмите клавишу ВВОД. Допустимые символы для имени приложения-функции: a-z, 0-9 и -.
    Выбор плана размещения Выберите Flex Consumption, который является рекомендуемым планом размещения для бессерверного размещения.
    Выбор расположения для новых ресурсов Выберите расположение в регионе рядом с вами или рядом с другими службами, к которым обращаются ваши функции.
    Выберите стек сред выполнения Выберите языковую версию, выполняемую локально.
    Выбор размера экземпляра Выберите 512. Вы всегда можете изменить параметр размера экземпляра на более крупный размер позже.
    Введите максимальное число экземпляров Выберите значение по умолчанию 100, которое ограничивает общий масштаб приложения. Можно также выбрать другое значение от 40 до 1000.
    Выбор группы ресурсов Выберите "Создать группу ресурсов " и примите значение по умолчанию или введите другое имя новой группы, уникальной в подписке.
    Выбор типа проверки подлинности ресурса Выберите управляемое удостоверение , чтобы приложение подключилось к удаленным ресурсам с помощью проверки подлинности идентификатора Microsoft Entra, а не с использованием общих секретов (строк подключения и ключей), которые являются менее безопасными.
    Выбор идентичности, назначенной пользователем Выберите Создать новую пользовательскую назначенную идентичность.
    Выбор расположения для новых ресурсов Выберите тот же регион, что и созданная учетная запись хранения. Если по какой-то причине этот регион не поддерживается моделью потребления Flex, он не отображается. В этом случае выберите ближайший регион . Дополнительные сведения см. в разделе "Просмотр поддерживаемых в настоящее время регионов".
    Выбрать учетную запись хранения Выберите имя созданной учетной записи хранения.
    Выбор ресурса Application Insights для приложения Выберите "Создать новый ресурс Application Insights" и в запросе укажите имя экземпляра, используемого для хранения данных среды выполнения из функций.

    Уведомление появляется после создания приложения-функции. Выберите "Просмотреть выходные данные " в этом уведомлении, чтобы просмотреть результаты создания, включая созданные ресурсы Azure.

Развертывание кода функции

Внимание

Развертывание в существующем приложении-функции всегда перезаписывает содержимое этого приложения в Azure.

  1. В палитре команд введите и выберите Функции Azure: Развернуть в приложении-функции.

  2. Выберите только что созданное приложение-функцию. При появлении запроса на перезапись предыдущих развертываний выберите "Развернуть ", чтобы развернуть код функции в новом ресурсе приложения-функции.

  3. После завершения развертывания выберите "Просмотреть выходные данные ", чтобы просмотреть результаты создания и развертывания, включая созданные ресурсы Azure. Если вы пропустили уведомление, выберите значок колокольчика в правом нижнем углу, чтобы увидеть его снова.

    Снимок экрана с окном

Обновление параметров приложения

Так как процесс публикации не автоматически передает необходимые параметры приложения из local.settings.json файла, их необходимо передать в приложение-функцию, чтобы функция выполнялось правильно в Azure.

  1. В палитре команд введите Azure Functions: Download Remote Settings..., и в Выбор ресурса выберите имя вашего приложения-функции.

  2. Когда появится запрос на AzureWebJobsStorage наличие параметра, выберите "Да", чтобы перезаписать параметр локального эмулятора с помощью фактической учетной записи хранения строка подключения из Azure.

  3. В файле замените local.settings.json параметр локального эмулятора тем же строка подключения, что и дляAzureWebJobsStorage этого.

  4. FUNCTIONS_WORKER_RUNTIME Удалите запись, которая не поддерживается в плане потребления Flex.

  5. В палитре команд введите 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>

Хотя ваше приложение подключается к учетной записи хранения с помощью аутентификации через Microsoft Entra ID, ключ доступа к расширению BLOB помогает защитить вебхук расширения BLOB от несанкционированного доступа. Чтобы найти ключ доступа к расширению BLOB, выполните приведённые действия.

  1. В Visual Studio Code выберите значок Azure на панели действий. В разделе Ресурсы разверните подписку, разверните Приложение-функция, щелкните правой кнопкой мыши созданное приложение-функцию и выберите Открыть на портале.

  2. В меню слева в разделе Функции выберите Ключи приложения.

  3. В разделе "Системные ключи" выберите ключ с именем blobs_extension и скопируйте значение ключа.

    Включите это значение в строку запроса нового URL-адреса конечной точки.

  4. Создайте 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-адрес конечной точки.

  1. В Visual Studio Code щелкните значок Azure на панели действий. В разделе Ресурсы разверните подписку, разверните Учетные записи хранения, щелкните правой кнопкой мыши созданную ранее учетную запись хранения и выберите Открыть на портале.

  2. Войдите на портал Azure и запишите группу ресурсов для учетной записи хранения. Создайте другие ресурсы в той же группе, чтобы упростить очистку ресурсов при завершении.

  3. Выберите параметр "События" в меню слева.

    Добавление события учетной записи хранения

  4. В окне События нажмите кнопку + Подписка на события и укажите значения из приведенной ниже таблицы на вкладке Базовые.

    Параметр Предлагаемое значение Описание:
    Имя myBlobEventSub Имя, идентифицирующее подписку на события. Используйте имя, чтобы быстро найти подписку на событие.
    Схема событий Схема сетки событий Используйте схему по умолчанию для событий.
    Имя системного раздела samples-workitems-blobs Имя раздела, представляющего контейнер. Этот раздел создается с первой подпиской и используется для будущих подписок на события.
    Фильтрация по типам событий Blob created (Большой двоичный объект создан)
    Тип конечной точки Веб-перехватчик Триггер Хранилища BLOB-объектов использует конечную точку типа "Веб-перехватчик".
    Конечная точка Конечная точка URL-адреса на основе Azure Используйте созданную конечную точку URL-адреса, которая включает значение ключа.
  5. Выберите Подтвердить выбор, чтобы проверить URL-адрес конечной точки.

  6. Перейдите на вкладку "Фильтры" и укажите следующие сведения в запросах:

    Параметр Предлагаемое значение Описание:
    Включение фильтрации субъектов Включено Включает фильтрацию, в которой большие двоичные объекты могут активировать функцию.
    Тема начинается с /blobServices/default/containers/<CONTAINER_NAME>/blobs/<BLOB_PREFIX> Замените и <CONTAINER_NAME замените <BLOB_PREFIX> значениями, которые вы выбрали. Этот параметр активирует подписку только для блобов, которые начинаются с BLOB_PREFIX и находятся в контейнере CONTAINER_NAME.
    Тема заканчивается с .txt Гарантирует, что функция запускается только для BLOB, заканчивающихся на .txt.

    Дополнительные сведения о фильтрации для определенных больших двоичных объектов см. в разделе "Фильтрация событий" для Центры событий Azure.

  7. Выберите Создать, чтобы создать подписку на события.

Отправка файла в контейнер

Вы можете загрузить файл с вашего компьютера в контейнер блоб-объектов с помощью Visual Studio Code.

  1. В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд и ввести.Azure Storage: Upload Files...

  2. В диалоговом окне "Открыть" выберите файл, предпочтительный текстовый файл и нажмите кнопку "Отправить".

  3. Введите следующие сведения по соответствующим запросам:

    Параметр Предлагаемое значение Описание:
    Введите целевой каталог этой отправки default Примите значение /по умолчанию, которое является корнем контейнера.
    Выбор ресурса Название учетной записи хранилища Выберите имя учетной записи хранения, созданной на предыдущем шаге.
    Выберите тип ресурсов Контейнеры больших двоичных объектов Вы отправляете данные в контейнер больших двоичных объектов.
    Выберите контейнер больших двоичных объектов samples-workitems Это значение представляет собой имя контейнера, созданного на предыдущем шаге.

Перейдите к локальной файловой системе, чтобы найти файл для отправки, а затем нажмите кнопку "Отправить ", чтобы отправить файл.

Проверка функции в Azure

При отправке файла в контейнер samples-workitems активируется функция. Чтобы проверить эту функцию, проверьте следующие элементы на портале Azure:

  1. В учетной записи хранения перейдите на страницу "События", выберите "Подписки на события" и убедитесь, что событие доставлено. Отображение события на диаграмме может задержаться до пяти минут.

  2. Вернитесь на страницу приложения-функции на портале, в разделе "Функции " найдите функцию и выберите вызовы и многое другое. Вы должны увидеть трассировки, записанные из успешного выполнения функции.

Очистка ресурсов

При переходе к следующему шагу и добавлении привязки очереди службы хранилища Azure к функции, вам потребуется сохранить все ресурсы, чтобы использовать их в будущем.

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

  1. В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд. В палитре команд найдите и щелкните Azure: Open in portal.

  2. Выберите приложение-функцию и нажмите клавишу ВВОД. Страница приложения-функции откроется на портале Azure.

  3. На вкладке Обзор выберите именованную ссылку рядом с полем Группа ресурсов.

    Снимок экрана: выбор группы ресурсов, которую требуется удалить со страницы приложения-функции.

  4. На странице Группа ресурсов просмотрите список включенных ресурсов и убедитесь, что именно их нужно удалить.

  5. Выберите Удалить группу ресурсов и следуйте инструкциям.

    Удаление может занять несколько минут. После этого на несколько секунд появится уведомление. Кроме того, можно выбрать значок колокольчика в верхней части страницы, чтобы просмотреть уведомление.

Дополнительные сведения о затратах на использование Функций см. в статье Оценка затрат на план потребления.

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