Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сетка событий Azure — это служба маршрутизации событий для облака. Функции Azure является одним из поддерживаемых обработчиков событий.
В этом кратком руководстве вы используете портал Azure для создания пользовательского раздела, подписки на настраиваемый раздел и активации события для просмотра результата. События отправляются в функцию Azure.
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Необходимые компоненты
Создание функции с триггером сетки событий с помощью Visual Studio Code
В этом разделе описано, как создать функцию с триггером сетки событий с помощью Visual Studio Code.
Создание функции
Откройте Visual Studio Code.
На левой панели выберите Azure.
На левой панели в разделе "РАБОЧАЯ ОБЛАСТЬ " выберите "Функции Azure " на панели команд. Затем выберите "Создать функцию".
Выберите папку, в которой нужно сохранить код функции.
Для команды "Создать проект" для языка выберите C#. Выберите Enter.
Для среды выполнения .NET выберите .NET 8.0 Isolated LTS и нажмите клавишу Enter.
Для шаблона для функции выберите триггер сетки событий Azure. Выберите Enter.
В поле "Имя функции" введите имя функции. Выберите Enter.
Для Namespace введите имя пространства имен. Выберите Enter.
Откройте проект в текущем окне или новом окне или добавьте его в рабочую область.
Дождитесь создания функции. Состояние создания функции отображается в правом нижнем углу.
Просмотрите код в файле YourFunctionName.cs , в частности
Runметод. Он печатает сведения с помощью средства ведения журнала.[Function(nameof(MyEventGridTriggerFunc))] public void Run([EventGridTrigger] CloudEvent cloudEvent) { _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject); }
Развертывание функции для Azure
Нажмите кнопку Azure на левой панели, если область Azure еще не открыта.
Наведите указатель мыши на проект и нажмите кнопку "Развернуть в Azure ".
В раскрывающемся списке палитры команд выберите +Создать приложение-функцию и нажмите клавишу ВВОД.
В поле "Имя" введите глобально уникальное имя для нового приложения-функции. Выберите Enter.
Для стека среды выполнения выберите изолированное .NET 8.
Для расположения ресурсов Azure выберите регион, близкий к вам.
Состояние создания приложения-функции отображается на вкладке AZURE нижней панели. После создания приложения-функции вы увидите состояние развертывания функции, созданной локально в приложении-функции.
После успешного развертывания разверните сообщение "Создание приложения-функции успешно". Выберите "Щелкните", чтобы просмотреть ресурс. Убедитесь, что функция выбрана в разделе RESOURCES на левой панели.
Щелкните правой кнопкой мыши функцию и выберите "Открыть" на портале.
При необходимости войдите в Azure и убедитесь, что страница приложения-функции отображается для вашей функции.
На нижней панели выберите свою функцию.
Перейдите на вкладку "Журналы ". Откройте эту вкладку, чтобы вы могли видеть зарегистрированные сообщения при отправке события в раздел сетки событий далее в этой статье.
Создание пользовательской темы
Раздел сетки событий содержит определяемую пользователем конечную точку, в которой можно размещать свои события.
На новой вкладке окна веб-браузера войдите в портал Azure.
На панели поиска в разделе найдите разделы сетки событий и выберите разделы сетки событий.
На странице разделов нажмите кнопку +Создать на панели команд.
На панели "Создание раздела" выполните следующие действия.
Подписка — выберите подписку Azure.
Для группы ресурсов выберите ту же группу ресурсов из предыдущих шагов.
В поле "Имя" укажите уникальное имя настраиваемого раздела. Имя раздела должно быть уникальным, так как запись системы доменных имен (DNS) представляет ее.
Не используйте имя, показанное на примере изображения. Вместо этого создайте собственное имя. Он должен иметь 3-50 символов и содержать только значения a-z, A-Z, 0-9 и дефис (
-).Для региона выберите расположение для раздела "Сетка событий".
Выберите Review + create (Просмотреть и создать).
На вкладке "Просмотр и создание " проверьте параметры и нажмите кнопку "Создать".
После создания настраиваемого раздела выберите "Перейти к ресурсу ", чтобы открыть страницу " Раздел сетки событий " для этого раздела.
Создание подписки на события пользовательского раздела
Вы подписываетесь на раздел "Сетка событий", чтобы сообщить сетке событий, какие события нужно отслеживать и куда отправлять события.
На странице "Раздел сетки событий" для настраиваемого раздела выберите +Подписка на события на панели инструментов.
На панели "Создать подписку на события" выполните следующие действия.
В поле "Имя" введите имя подписки на события.
Для схемы событий выберите Cloud Event Schema версии 1.0.
В поле Тип конечной точки выберите Функция Azure.
Выберите " Настроить конечную точку".
На панели "Выбор функции Azure" выполните следующие действия.
Для подписки выберите подписку Azure, которая имеет функцию.
Для группы ресурсов выберите группу ресурсов, которая имеет функцию.
Для приложения-функции выберите приложение-функцию.
Для функции выберите функцию в приложении-функции.
Выберите Подтвердить выбор.
Этот шаг является необязательным, но мы рекомендуем его для рабочих сценариев. На панели "Создание подписки на события" перейдите на вкладку "Дополнительные функции" и задайте значения для событий Max для каждого пакета и предпочтительного размера пакета в килобайтах.
Пакетная обработка может обеспечить высокую пропускную способность. Для максимального количества событий на пакет задайте максимальное количество событий, которые могут быть включены в один пакет подписки. Предпочтительный размер пакета в килобайтах задает предпочтительную верхнюю границу размера пакета, но его можно превысить, если одно событие больше этого порога.
На панели "Создать подписку на события" нажмите кнопку "Создать".
Отправка события в тему
Теперь активируйте событие, чтобы узнать, как сетка событий распределяет сообщение в конечную точку. Используйте Azure CLI или Azure PowerShell для отправки тестового события в настраиваемый раздел. Как правило, приложение или служба Azure отправляют данные о событии.
В первом примере используется Azure CLI. Он получает URL-адрес и ключ для пользовательского раздела и примеров данных события. Используйте имя пользовательского раздела для topicname. Будет создан пример данных событий.
Элемент data JSON отображает полезные данные события. Любое значение JSON с правильным форматом может быть в этом поле. Кроме того, можно использовать поле темы для дополнительной маршрутизации и фильтрации.
Средство cURL отправляет HTTP-запросы. В этой статье вы используете cURL для отправки события в пользовательский раздел.
Azure CLI (Интерфейс командной строки для Azure)
На портале Azure выберите Cloud Shell. Если вы находитесь в режиме Azure PowerShell, выберите "Переключиться на Bash".
topicnameЗадайте переменные иresourcegroupnameпеременные, используемые в командах.Замените
TOPICNAMEименем раздела "Сетка событий".topicname="TOPICNAME"Замените
RESOURCEGROUPNAMEименем группы ресурсов Azure, содержащей раздел "Сетка событий".resourcegroupname="RESOURCEGROUPNAME"Чтобы получить конечную точку раздела, используйте следующую команду. После копирования и вставки команды обновите имя раздела и имя группы ресурсов перед его запуском.
endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --query "endpoint" --output tsv)Используйте следующую команду, чтобы получить ключ для пользовательского раздела. После копирования и вставки команды обновите имя раздела и имя группы ресурсов перед его запуском.
key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv)Скопируйте следующую инструкцию с определением события и нажмите клавишу ВВОД.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'Выполните следующую команду cURL, чтобы опубликовать событие:
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpointУбедитесь, что сообщение из функции отображается на вкладке "Журналы" для функции в портал Azure.
Azure PowerShell
Второй пример использует Azure PowerShell для выполнения аналогичных действий.
На портале Azure выберите Cloud Shell или перейдите на страницу Azure Cloud Shell. В левом верхнем углу окна Cloud Shell выберите "Перейти к PowerShell".
Задайте следующие переменные. После копирования и вставки каждой команды обновите имя раздела и имя группы ресурсов перед его запуском.
$resourceGroupName = "RESOURCEGROUPNAME"$topicName = "TOPICNAME"Выполните следующую команду, чтобы получить конечную точку и ключи для раздела:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicNameПодготовьте событие. Скопируйте и запустите эти инструкции в окне Cloud Shell:
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct the body by using a hash table $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert the event body from a hash table to a JSON object #Append square brackets to the converted JSON payload because they're expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"Invoke-WebRequestИспользуйте командлет для отправки события:Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}Убедитесь, что сообщение из функции отображается на вкладке "Журналы" для функции в портал Azure.
Убедитесь, что функция получила событие
Вы активировали событие, а сетка событий отправила сообщение в конечную точку, настроенную при подписке. Теперь можно проверить, получена ли функция.
Откройте вкладку "Вызов " для функции.
Чтобы отобразить сведения, выберите вызов.
Вы также можете использовать вкладку "Журналы ".
Очистка ресурсов
Если вы планируете продолжить работу с этим событием, не убирайте ресурсы, созданные в этой статье. В противном случае удалите ресурсы, созданные в этой статье.
В поле поиска на портале Azure введите группы ресурсов и выберите группы ресурсов.
Выберите группу ресурсов, чтобы открыть область для получения сведений.
На панели инструментов выберите "Удалить группу ресурсов".
Подтвердите удаление, введя имя группы ресурсов, а затем нажмите кнопку "Удалить".
Окно Cloud Shell создало и использовало другую группу ресурсов, которая отображается на странице групп ресурсов. Удалите эту группу ресурсов, если вы не планируете использовать окно Cloud Shell позже.
Связанный контент
Теперь, когда вы знаете, как создавать темы и подписки на события, ознакомьтесь с дополнительными сведениями о сетке событий, которые могут помочь вам:
- An introduction to Azure Event Grid (Общие сведения о службе "Сетка событий Azure")
- Маршрутизация событий Хранилище BLOB-объектов Azure в пользовательскую веб-конечную точку
- Monitor virtual machine changes with Azure Event Grid and Logic Apps (Отслеживание изменений виртуальной машины с помощью Azure Logic Apps и службы "Сетка событий Azure")
- Потоковая передача больших данных в хранилище данных
Сведения о публикации событий и использовании событий из сетки событий с помощью различных языков программирования см. в следующих примерах: