Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предыдущие версии триггера больших двоичных объектов Функции Azure опрашивали контейнер хранилища на наличие изменений. Более последние версии расширения хранилища BLOB-объектов (5.x+) вместо этого используют подписку на событие Сетки событий в контейнере. Эта подписка на события снижает задержку, мгновенно запуская вашу функцию при возникновении изменений в контейнере, на который оформлена подписка.
В этой статье показано, как создать функцию, которая запускается при возникновении событий, когда в контейнер добавляется BLOB-объект. Вы используете Visual Studio Code для локальной разработки и проверяете код перед развертыванием проекта в Azure.
- Создайте в новом проекте функцию, активируемую триггером хранилища BLOB-объектов на основе событий.
- Проверьте локально в Visual Studio Code с помощью эмулятора Azurite.
- Создайте контейнер хранилища BLOB-объектов в новой учетной записи хранения в Azure.
- Создайте приложение функций в плане Flex Consumption.
- Создайте подписку на событие для нового контейнера BLOB-объектов.
- Разверните и проверьте код функции в Azure.
В этой статье рассматривается версия 4 модели программирования Node.js для Функции Azure.
В этой статье поддерживается версия 2 модели программирования Python для Функции Azure.
В этой статье создается приложение C#, которое выполняется в изолированном рабочем режиме, которое поддерживает .NET 8.0.
Совет
В этом руководстве показано, как создать приложение, работающее на плане Flex Consumption. План потребления Flex поддерживает только вариант триггера Хранилище BLOB-объектов на основе событий.
Предварительные требования
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Пакет SDK для .NET 8.0.
Visual Studio Code на одной из поддерживаемых платформ.
Расширение C# для Visual Studio Code.
Расширение службы "Функции Azure" для Visual Studio Code.
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Node.js 22.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
При создании триггерной функции для хранилища объектов Blob с помощью Visual Studio Code одновременно создается новый проект. Необходимо изменить функцию, чтобы использовать подписку на события в качестве источника, а не использовать обычный контейнер опроса.
В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд, введите
Функции Azure: Create Function...и выберите "Создать проект".В рабочей области проекта выберите расположение каталога. Убедитесь, что вы создадите новую папку или выберите пустую папку для рабочей области проекта.
Не выбирайте папку проекта, которая уже входит в рабочую область.
В ответ на запросы введите следующие сведения:
Запрос Действие Выбор языка Выберите C#.Выберите среду выполнения .NET Выберите .NET 8.0 Isolated LTS.Выбор шаблона для первой функции проекта Выберите Хранилище BLOB-объектов Azure 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.Запрос Действие Выбор языка Выберите 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.Запрос Действие Выбор языка Выберите 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). Вы не будете использовать эту функцию и должны вместо этого создать новую функцию.Запрос Действие Выбор язык для проекта приложения-функции Выберите TypeScript.Выбор модели программирования TypeScript Выберите Model V4.Выбор шаблона для первой функции проекта Выберите Хранилище BLOB-объектов Azure 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.Запрос Действие Выбор язык для проекта приложения-функции Выберите JavaScript.Выбор модели программирования JavaScript Выберите Model V4.Выбор шаблона для первой функции проекта Выберите Хранилище BLOB-объектов Azure 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.Запрос Действие Выбор язык для проекта приложения-функции Выберите PowerShell.Выбор шаблона для первой функции проекта Выберите Хранилище BLOB-объектов Azure 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: Create Function...и выберитеEventGridBlobTrigger. Если этот шаблон не отображается, сначала выберите Изменить фильтр шаблонов>Все.В ответ на запросы введите следующие сведения:
Запрос Действие Укажите имя пакета Выберите 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на событие контейнера 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 и найдите определение привязки примерно такого вида: с typeblobTrigger и sourceEventGrid
{
"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,
});
В этом определении sourceEventGrid указывает на то, что подписка на событие в контейнере BLOB 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.
Убедитесь, что в файле local.settings.json задано значение для
"UseDevelopmentStorage=true". Этот параметр указывает Core Tools использовать Azurite вместо подключения к реальной учетной записи хранения при локальном запуске.Нажмите клавишу F1, чтобы открыть палитру команд, введите
Azurite: Startи нажмите клавишу ВВОД. Это действие запускает эмулятор службы хранилища BLOB-объектов Azurite.Выберите значок Azure на панели действий, разверните Рабочая область>Подключенные учетные записи хранения>Локальный эмулятор, щелкните правой кнопкой мыши контейнеры BLOB-объектов, выберите Создать контейнер BLOB..., введите имя
samples-workitemsи нажмите Enter.
Разверните Контейнеры BLOB-объектов>samples-workitems и выберите Загрузить файлы....
Выберите файл для отправки в локально эмулированный контейнер. Функция обрабатывает этот файл позже, чтобы проверить и отладить код функции. Текстовый файл может работать лучше всего с кодом шаблона триггера BLOB-объектов.
Локальное выполнение функции
С помощью файла в эмулированном хранилище можно запустить функцию для имитации события, вызываемого подпиской сетки событий. Сведения о событии, передаваемые триггеру, зависят от файла, добавленного в локальный контейнер.
Задайте все точки останова и нажмите клавишу F5, чтобы запустить проект для локальной отладки. Функции Azure Core Tools должны быть запущены в окне терминала.
Вернувшись в область Azure, разверните Workspace>Local Project>Functions, щелкните правой кнопкой мыши функцию и выберите Execute Function Now....
В диалоговом окне тела запроса введите
samples-workitems/<TEST_FILE_NAME>, заменив<TEST_FILE_NAME>именем файла, который вы загрузили в локальный эмулятор хранилища.Нажмите клавишу Enter, чтобы запустить функцию. Указанное вами значение — это путь к BLOB-объекту в локальном эмуляторе. Эта строка передаётся вашему триггеру в полезной нагрузке запроса, которая имитирует полезную нагрузку при вызове вашей функции подпиской на событие, чтобы сообщить о добавлении BLOB-объекта в контейнер.
Просмотрите выходные данные выполнения этой функции. Вы увидите в выходных данных имя файла и его содержимое. Если вы установили точки останова, вам может потребоваться продолжить выполнение.
Теперь, когда вы успешно проверили код функции локально, пора опубликовать проект в новом приложении-функции в Azure.
Подготовьте учетную запись службы хранилища Azure
Для подписок на события для службы хранилища Azure требуется учетная запись хранения общего назначения версии v2. Вы можете использовать расширение служба хранилища Azure для Visual Studio Code, чтобы создать эту учетную запись хранения.
В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд и ввести
служба хранилища Azure: Create Storage Account.... Укажите эти сведения при появлении запроса:Запрос Действие Введите имя новой учетной записи хранения Присвойте ему произвольное глобально уникальное имя. Имена учетных записей хранилища должны содержать от 3 до 24 символов и состоять только из строчных букв и цифр. Чтобы упростить идентификацию, используйте то же имя для группы ресурсов и имени приложения-функции. Выбор расположения для новых ресурсов Для повышения производительности выберите регион рядом с вами. Расширение создает учетную запись хранения общего назначения версии 2 с указанным именем. То же имя также используется для группы ресурсов, содержащей учетную запись хранения. Триггер хранилища BLOB-объектов на основе Event Grid требует учетную запись хранения общего назначения версии v2.
Снова нажмите клавишу F1 и в палитре команд введите
служба хранилища Azure: Create Blob Container.... Укажите эти сведения при появлении запроса:Запрос Действие Выбор ресурса Выберите созданную учетную запись хранения общего назначения версии 2. Введите имя нового контейнера BLOB-объектов Введите samples-workitemsимя контейнера, на которое ссылается проект кода.
Для работы приложения-функции также требуется учетная запись хранения данных. Для простоты в этом руководстве используется та же учетная запись хранения для триггера BLOB-объекта и приложения-функции. Однако в рабочей среде может потребоваться отдельная учетная запись хранения для вашего приложения-функции. Дополнительные сведения см. в статье Рекомендации по хранению для Функций Azure.
Создайте приложение-функцию
Используйте эти шаги, чтобы создать приложение-функцию в плане Flex Consumption. При размещении приложения в плане Flex Consumption, триггеры Azure Хранилище BLOB-объектов должны использовать подписки на события.
В палитре команд введите Функции Azure: создайте приложение-функцию в Azure... (Дополнительно).
Следуйте инструкциям и предоставьте следующие сведения:
Запрос Выбор Введите глобально уникальное имя нового приложения-функции Введите глобально уникальное имя, которое будет идентифицировать ваше новое приложение-функцию, а затем нажмите Enter. Допустимые символы для имени приложения-функции: a-z,0-9и-.Выбор плана размещения Выберите Flex Consumption, который является рекомендуемым планом размещения для бессерверного размещения. Выбор расположения для новых ресурсов Выберите расположение в регионе рядом с вами или рядом с другими службами, к которым обращаются ваши функции. Выберите стек сред выполнения Выберите языковую версию, выполняемую локально. Выбор размера экземпляра Выберите 512. Вы всегда можете изменить параметр размера экземпляра на более крупный размер позже. Введите максимальное число экземпляров Выберите значение по умолчанию 100, которое ограничивает общий масштаб приложения. Можно также выбрать другое значение от 1 до 1000. Выбор группы ресурсов Выберите "Создать группу ресурсов " и примите значение по умолчанию или введите другое имя новой группы, уникальной в подписке. Выбор типа проверки подлинности ресурса Выберите управляемое удостоверение , чтобы приложение подключилось к удаленным ресурсам с помощью проверки подлинности идентификатора Microsoft Entra, а не с использованием общих секретов (строк подключения и ключей), которые являются менее безопасными. Выбор идентичности, назначенной пользователем Выберите Создать новую пользовательскую назначенную идентичность. Выбор расположения для новых ресурсов Выберите тот же регион, что и созданная учетная запись хранения. Если по какой-то причине этот регион не поддерживается моделью потребления Flex, он не отображается. В этом случае выберите ближайший регион . Дополнительные сведения см. в разделе "Просмотр поддерживаемых в настоящее время регионов". Выбрать учетную запись хранения Выберите имя созданной учетной записи хранения. Выбор ресурса Application Insights для приложения Выберите Создать новый ресурс Application Insights и в появившемся запросе укажите имя экземпляра, используемого для хранения данных среды выполнения ваших функций. Уведомление отображается после того, как приложение-функция будет создано. Выберите "Просмотреть выходные данные " в этом уведомлении, чтобы просмотреть результаты создания, включая созданные ресурсы Azure.
Развертывание кода функции
Внимание
Развертывание в существующем приложении-функции всегда перезаписывает содержимое этого приложения в Azure.
В палитре команд введите, а затем выберите Функции Azure: Развернуть в приложении-функции.
Выберите приложение функций, которое вы только что создали. При появлении запроса на перезапись предыдущих развертываний выберите "Развернуть ", чтобы развернуть код функции в новом ресурсе приложения-функции.
После завершения развертывания выберите "Просмотреть выходные данные ", чтобы просмотреть результаты создания и развертывания, включая созданные ресурсы Azure. Если вы пропустили уведомление, выберите значок колокольчика в правом нижнем углу, чтобы увидеть его снова.
Обновление параметров приложения
Так как процесс публикации не автоматически передает необходимые параметры приложения из local.settings.json файла, их необходимо передать в приложение-функцию, чтобы функция выполнялось правильно в Azure.
В палитре команд введите
Функции Azure: Download Remote Settings..., и в Выбор ресурса выберите имя вашего приложения-функции.Когда появится сообщение о том, что параметр
AzureWebJobsStorageуже существует, выберите Да, чтобы перезаписать значение параметра локального эмулятора на фактическую строку подключения к учетной записи хранения из Azure.В файле
local.settings.jsonзамените параметр локального эмулятора на ту же строку подключения, которая используется дляAzureWebJobsStorage.Удалите элемент
FUNCTIONS_WORKER_RUNTIME, который не поддерживается в тарифном плане Flex Consumption.В палитре команд введите
Функции Azure: Upload Local Settings..., и в Выбор ресурса выберите имя вашего приложения-функции.
Теперь узел функций и триггер используют одну и ту же учетную запись хранения.
Создание URL-адреса конечной точки
Чтобы создать подписку на события, необходимо предоставить Event Grid URL-адрес конкретной конечной точки для отправки уведомлений о событиях Хранилище BLOB-объектов. Этот URL-адрес расширения blob состоит из следующих частей:
| Часть | Пример |
|---|---|
| URL-адрес базового приложения-функции | https://<FUNCTION_APP_NAME>.azurewebsites.net |
| Путь, специфичный для BLOB | /runtime/webhooks/blobs |
| Строка запроса функции | ?functionName=Host.Functions.<FUNCTION_NAME> |
| Ключ доступа для расширения Blob | &code=<BLOB_EXTENSION_KEY> |
Хотя ваше приложение подключается к учетной записи хранения с помощью аутентификации через Microsoft Entra ID, ключ доступа к расширению 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-объектов, на который оформлена подписка. Затем это событие отправляется в конечную точку расширения BLOB для вашей функции. После создания подписки на событие невозможно обновить URL-адрес конечной точки.
В Visual Studio Code щелкните значок Azure на панели действий. В разделе Ресурсы разверните подписку, разверните Учетные записи хранения, щелкните правой кнопкой мыши созданную ранее учетную запись хранения и выберите Открыть на портале.
Войдите в портал Azure и запишите название группы ресурсов для своей учетной записи хранения. Создайте другие ресурсы в той же группе, чтобы упростить очистку ресурсов при завершении.
Выберите параметр "События" в меню слева.
В окне События нажмите кнопку + Подписка на события и укажите значения из приведенной ниже таблицы на вкладке Базовые.
Настройка Предлагаемое значение Описание: Имя myBlobEventSub Имя, идентифицирующее подписку на события. Используйте имя, чтобы быстро найти подписку на событие. Схема событий Схема сетки событий Используйте схему по умолчанию для событий. Имя системного раздела samples-workitems-blobs Имя раздела, представляющего контейнер. Этот раздел создается с первой подпиской и используется для будущих подписок на события. Фильтрация по типам событий Blob created (Большой двоичный объект создан) Тип конечной точки Вебхук Триггер хранилища BLOB-объектов использует конечную точку веб-перехватчика. Конечная точка URL-адрес конечной точки на базе Azure Используйте URL-адрес конечной точки, который вы создали и который содержит значение ключа. Выберите Подтвердить выбор, чтобы проверить URL-адрес конечной точки.
Перейдите на вкладку "Фильтры" и укажите следующие сведения в запросах:
Настройка Предлагаемое значение Описание: Включение фильтрации субъектов Включено Позволяет фильтровать, какие BLOB-объекты могут активировать функцию. Тема начинается с /blobServices/default/containers/<CONTAINER_NAME>/blobs/<BLOB_PREFIX>Замените <CONTAINER_NAMEи<BLOB_PREFIX>выбранными вами значениями. Этот параметр активирует подписку только для блобов, которые начинаются сBLOB_PREFIXи находятся в контейнереCONTAINER_NAME.Тема заканчивается с .txt Гарантирует, что функция запускается только для BLOB, заканчивающихся на .txt.Дополнительные сведения о фильтрации по определенным BLOB-объектам см. в разделе Фильтрация событий для Центры событий Azure.
Выберите Создать, чтобы создать подписку на события.
Отправка файла в контейнер
Вы можете загрузить файл с вашего компьютера в контейнер блоб-объектов с помощью Visual Studio Code.
В Visual Studio Code нажмите F1, чтобы открыть палитру команд, и введите
служба хранилища Azure: Upload Files....В диалоговом окне "Открыть" выберите файл, предпочтительный текстовый файл и нажмите кнопку "Отправить".
Введите следующую информацию в ответ на запросы:
Настройка Предлагаемое значение Описание: Введите целевой каталог этой отправки default Примите значение /по умолчанию, которое является корнем контейнера.Выбор ресурса Название учетной записи хранилища Выберите имя учетной записи хранения, созданной на предыдущем шаге. Выберите тип ресурсов Контейнеры BLOB-объектов Вы загружаете данные в контейнер BLOB-объектов. Выберите контейнер BLOB samples-workitems Это значение представляет собой имя контейнера, созданного на предыдущем шаге.
Перейдите к локальной файловой системе, чтобы найти файл для отправки, а затем нажмите кнопку "Отправить ", чтобы отправить файл.
Проверка функции в Azure
При отправке файла в контейнер samples-workitems активируется функция. Чтобы проверить эту функцию, проверьте следующие элементы на портале Azure:
В учетной записи хранения перейдите на страницу "События", выберите "Подписки на события" и убедитесь, что событие доставлено. Отображение события на диаграмме может задержаться до пяти минут.
Вернувшись на страницу приложения-функции на портале, в разделе Functions найдите свою функцию и выберите Вызовы и другое. Вы должны увидеть трассировки, записанные в ходе успешного выполнения функции.
Очистка ресурсов
При переходе к следующему шагу и добавлении привязки очереди службы хранилища Azure к функции, вам потребуется сохранить все ресурсы, чтобы использовать их в будущем.
В противном случае выполните следующие действия, чтобы удалить приложение-функцию и связанные с ним ресурсы и избежать дополнительных расходов.
В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд. В палитре команд найдите и щелкните
Azure: Open in portal.Выберите приложение-функцию и нажмите клавишу Enter. Страница приложения-функции откроется на портале Azure.
На вкладке Обзор выберите именованную ссылку рядом с полем Группа ресурсов.
На странице Группа ресурсов просмотрите список включенных ресурсов и убедитесь, что именно их нужно удалить.
Выберите Удалить группу ресурсов и следуйте инструкциям.
Удаление может занять несколько минут. Когда процесс завершится, на несколько секунд появится уведомление. Кроме того, можно выбрать значок колокольчика в верхней части страницы, чтобы просмотреть уведомление.
Дополнительные сведения о затратах на использование Функций см. в статье Оценка затрат на план потребления.