Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы используете Azure CLI для создания настраиваемого раздела Сетки событий и подписки хранилища очередей для этого раздела. Затем вы отправляете примеры событий в пользовательский раздел и убедитесь, что эти события доставляются в очередь.
Сетка событий Azure — это высокомасштабируемый и бессерверный брокер событий, который можно использовать для интеграции приложений с помощью событий. Служба "Сетка событий" предоставляет события для поддерживаемых обработчиков событий, таких как хранилище очередей Azure. Дополнительные сведения см. в разделе обработчиков событий.
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Создание или изменение группы ресурсов
Разделы сетки событий — это ресурсы Azure. Поместите их в группу ресурсов Azure. Группа ресурсов — это логическая коллекция, в которой ресурсы Azure развертываются и управляются.
Создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем gridResourceGroup в расположении именем westus2.
Выберите Open Cloud Shell, чтобы открыть Azure Cloud Shell на правой панели. Нажмите кнопку "Копировать ", чтобы скопировать команду, вставьте ее в Cloud Shell и нажмите клавишу ВВОД , чтобы выполнить команду.
az group create --name gridResourceGroup --location westus2
Включение поставщика ресурсов службы "Сетка событий"
Если это первый раз, когда вы используете Event Grid в подписке Azure, может потребоваться зарегистрировать поставщика ресурсов Event Grid. Выполните следующую команду для регистрации поставщика:
az provider register --namespace Microsoft.EventGridРегистрация может занять некоторое время. Чтобы проверить состояние, выполните следующую команду:
az provider show --namespace Microsoft.EventGrid --query "registrationState"Когда состояние
registrationStateизменится наRegistered, вы сможете продолжить работу.
Создание пользовательской темы
Раздел сетки событий содержит определяемую пользователем конечную точку, в которой можно размещать свои события. В приведенном ниже примере создается пользовательский раздел в вашей группе ресурсов.
Замените <TOPIC NAME> уникальным именем для вашего пользовательского раздела. Имя раздела сетки событий должно быть уникальным, так как запись системы доменных имен (DNS) представляет ее.
Укажите имя раздела:
topicname="<TOPIC NAME>"Выполните следующую команду, чтобы создать раздел:
az eventgrid topic create --name $topicname --location westus2 --resource-group gridResourceGroup
Создать очередь
Перед подпиской на пользовательский раздел создайте конечную точку для сообщения о событии. Вы создаете очередь для сбора событий.
Укажите уникальное имя учетной записи хранения Azure:
storagename="<STORAGE ACCOUNT NAME>"Выполните следующие команды, чтобы создать учетную запись хранения и очередь (именованную
eventqueue) в хранилище:queuename="eventqueue" az storage account create --name $storagename --resource-group gridResourceGroup --location westus2 --sku Standard_LRS key="$(az storage account keys list --account-name $storagename --query "[0].{value:value}" --output tsv)" az storage queue create --name $queuename --account-name $storagename --account-key $key
Создание подписки на события пользовательского раздела
Следующий пример подписывается на созданный пользовательский раздел. Он передает идентификатор ресурса очереди в конечную точку. С помощью Azure CLI идентификатор очереди передается в качестве конечной точки. Конечная точка находится в следующем формате:
/subscriptions/<AZURE SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>/queueservices/default/queues/<QUEUE NAME>
Приведенный ниже скрипт получает идентификатор ресурса учетной записи хранения для очереди. Он создает идентификатор очереди и подписывается на раздел "Сетка событий". В нем также задается тип storagequeue для конечной точки и используется ее идентификатор.
Перед выполнением команды замените заполнитель на дату окончания срока действия (<yyyy-mm-dd>) фактическим значением года, месяца и дня.
storageid=$(az storage account show --name $storagename --resource-group gridResourceGroup --query id --output tsv)
queueid="$storageid/queueservices/default/queues/$queuename"
topicid=$(az eventgrid topic show --name $topicname --resource-group gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name mystoragequeuesubscription \
--endpoint-type storagequeue \
--endpoint $queueid \
--expiration-date "<yyyy-mm-dd>"
Учетная запись, создающая подписку на событие, должна иметь доступ на запись в очередь. Для подписки задана дата окончания срока действия.
Если вы используете REST API для создания подписки, передайте идентификатор учетной записи хранения и имя очереди в качестве отдельного параметра:
"destination": {
"endpointType": "storagequeue",
"properties": {
"queueName":"eventqueue",
"resourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>"
}
...
Отправка события в пользовательский раздел
Активируйте событие, чтобы увидеть, как сетка событий распространяет сообщение в конечную точку. Сначала получите URL-адрес и ключ для пользовательского раздела:
endpoint=$(az eventgrid topic show --name $topicname --resource-group gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname --resource-group gridResourceGroup --query "key1" --output tsv)
Для простоты в этой статье используются примеры данных события для отправки в пользовательскую тему. Как правило, приложение или служба Azure отправляют данные о событии.
Средство cURL отправляет HTTP-запросы. В этой статье вы используете cURL для отправки события в пользовательский раздел. В следующем примере три события отправляются в раздел "Сетка событий".
for i in 1 2 3
do
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 -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done
Перейдите в очередь на портале Azure, чтобы увидеть, что сетка событий отправила эти три события в очередь.
Очистка ресурсов
Если вы планируете продолжить работу с этим событием, не удаляйте ресурсы, созданные в этой статье. В противном случае используйте следующую команду, чтобы удалить ресурсы:
az group delete --name gridResourceGroup
Связанный контент
Теперь, когда вы знаете, как создавать темы и подписки на события, ознакомьтесь с дополнительными сведениями о сетке событий, которые могут помочь вам:
- An introduction to Azure Event Grid (Общие сведения о службе "Сетка событий Azure")
- Маршрутизация событий Хранилище BLOB-объектов Azure в пользовательскую веб-конечную точку
- Monitor virtual machine changes with Azure Event Grid and Logic Apps (Отслеживание изменений виртуальной машины с помощью Azure Logic Apps и службы "Сетка событий Azure")
- Перенос данных, полученных с помощью Event Hubs, из Azure Storage в Azure Synapse Analytics
Сведения о публикации событий и использовании событий из сетки событий с помощью различных языков программирования см. в следующих примерах: