Применимо: ✔️ виртуальные машины Linux для виртуальных машин ✔️ ✔️ Linux в локальной среде ✔️ с поддержкой Azure Arc серверов ✔️ Azure.
События предварительного и последующего выполнения позволяют выполнять пользовательские действия до и после конфигурации запланированного обслуживания. Дополнительные сведения см. в работе предварительного и последующего события в Диспетчере обновлений Azure.
В этой статье описывается создание событий предварительной и публикации в Диспетчере обновлений Azure.
Сетка событий в конфигурациях запланированного обслуживания
Диспетчер обновлений Azure использует сетку событий для создания и управления событиями до и после операции. Дополнительные сведения см. в обзоре сетки событий. Чтобы активировать событие до или после периода запланированного обслуживания, вам потребуется следующее:
- Конфигурация запланированного обслуживания. В Диспетчере обновлений Azure для конфигурации запланированного обслуживания можно создавать события до и после операции. Дополнительные сведения см. в разделе Планирование обновлений с помощью конфигураций обслуживания.
- Действие, выполняемое в событии до или после операции. Для задания действий или задач можно использовать обработчики событий (конечные точки), поддерживаемые службой "Сетка событий". Ниже приведены примеры создания модулей Runbook службы автоматизации Azure с помощью веб-перехватчиков и функций Azure. В этих обработчиках событий/конечных точках необходимо задать действия, которые должны выполняться в рамках событий до и после операции.
- Веб-перехватчик создает Модуль Runbook PowerShell 7.2 и связывает модуль Runbook с веб-перехватчиком. -
- Функция - Azure создает функцию Azure.
- Событие до и после операции. Чтобы создать событие до и после операции для конфигурации запланированного обслуживания, можно выполнить действия, описанные в следующем разделе. Дополнительные сведения о терминах, используемых на вкладке "Основные сведения" службы "Сетка событий", см. в разделе Условия использования службы "Сетка событий".
Создание события предварительной и публикации
Создание предварительных и постовых событий при создании новой конфигурации обслуживания расписания
Войдите на портал Azure и перейдите в Диспетчер обновлений Azure.
В разделе "Управление" выберите "Компьютеры".
Выберите " Расписание обновлений " на ленте в верхней части.
На странице "Создание конфигурации обслуживания" выберите вкладку "События".
Выберите + Подписка на событие для создания события предварительной или публикации .
На странице "Добавить подписку на события" введите следующие сведения: в разделе "Сведения о подписке на события" укажите соответствующее имя.
- Сохраните схему как схему сетки событий.
- Введите имя раздела системы для первого события, создаваемого в этой конфигурации обслуживания. То же имя system Topic будет автоматически заполнено для последующих событий.
- В разделе "Типы событий" выберите типы событий, которые необходимо отправить в конечную точку или назначение. Вы можете выбрать событие предварительного обслуживания или событие после обслуживания или оба события. Дополнительные сведения о типах событий, характерных для планирования конфигураций обслуживания, см. в статье "Типы событий Azure".
- В разделе сведений о конечной точке выберите конечную точку, из которой вы хотите получить ответ.
Нажмите кнопку "Добавить ", чтобы создать события предварительной и публикации для расписания после его создания.
Примечание.
В приведенном выше потоке веб-перехватчик и Функции Azure являются двумя обработчиками событий и конечными точками, которые можно выбрать. При нажатии кнопки "Добавить" подписка на события не создается, а добавляется в конфигурацию обслуживания. Подписка на события создается вместе с конфигурацией обслуживания расписания.
Создайте конфигурацию обслуживания, выполнив указанные здесь действия.
-
# Obtain the Maintenance Configuration ID from Step 1 and assign it to MaintenanceConfigurationResourceId variable
$MaintenanceConfigurationResourceId = "/subscriptions/<subId>/resourceGroups/<Resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<Maintenance configuration Name>"
# Use the same Resource Group that you used to create maintenance configuration in Step 1
$ResourceGroupForSystemTopic = "<Resource Group for System Topic>"
$SystemTopicName = "<System topic name>"
$TopicType = "Microsoft.Maintenance.MaintenanceConfigurations"
$SystemTopicLocation = "<System topic location>"
# System topic creation
New-AzEventGridSystemTopic -ResourceGroupName $ResourceGroupForSystemTopic -Name $SystemTopicName -Source $MaintenanceConfigurationResourceId -TopicType $TopicType -Location $SystemTopicLocation
# Event subscription creation
$IncludedEventTypes = @("Microsoft.Maintenance.PreMaintenanceEvent")
# Webhook
$EventSubscriptionName = "PreEventWebhook"
$PreEventWebhookEndpoint = "<Webhook URL>"
$dest = New-AzEventGridWebHookEventSubscriptionDestinationObject -EndpointUrl $PreEventWebhookEndpoint
New-AzEventGridSystemTopicEventSubscription -ResourceGroupName $ResourceGroupForSystemTopic -SystemTopicName $SystemTopicName -EventSubscriptionName $EventSubscriptionName -Endpoint $PreEventWebhookEndpoint -IncludedEventType $IncludedEventTypes -Destination $dest
# Azure Function
$dest = New-AzEventGridAzureFunctionEventSubscriptionDestinationObject -ResourceId "<Azure Function Resource Id>"
New-AzEventGridSystemTopicEventSubscription -ResourceGroupName $ResourceGroupForSystemTopic -SystemTopicName $SystemTopicName -EventSubscriptionName $EventSubscriptionName -Destination $dest -IncludedEventType $IncludedEventTypes
Создайте конфигурацию обслуживания, выполнив указанные здесь действия.
-
SystemTopicName="<System topic name>
# Use the same Resource Group that you used to create maintenance configuration in Step 1
ResourceGroupName="<Resource Group mentioned in Step 1>"
# Obtain the Maintenance Configuration ID from Step 1 and assign it to Source variable
Source="/subscriptions/<subId>/resourceGroups/<Resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<Maintenance configuration Name>"
TopicType="Microsoft.Maintenance.MaintenanceConfigurations"
Location="<System topic location> "
# System topic creation
az eventgrid system-topic create --name $SystemTopicName --resource-group $ResourceGroupName --source $Source --topic-type $TopicType --location $Location
# Event subscription creation
IncludedEventTypes='("Microsoft.Maintenance.PreMaintenanceEvent")'
# Webhook
az eventgrid system-topic event-subscription create --name "<Event subscription name>" --resource-group $ResourceGroupName --system-topic-name $SystemTopicName --endpoint-type webhook --endpoint "<webhook URL>" --included-event-types IncludedEventTypes
# Azure Function
az eventgrid system-topic event-subscription create –name "<Event subscription name>" --resource-group $ResourceGroupName --system-topic-name $SystemTopicName --endpoint-type azurefunction --endpoint "<Azure Function ResourceId>" --included-event-types IncludedEventTypes
Создайте конфигурацию обслуживания, выполнив указанные здесь действия.
# Создание системного раздела
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Запрос текста.
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Создание подписки на события подробнее
Допустимые типы событий — Microsoft.Maintenance.PreMaintenanceEvent, Microsoft.Maintenance.PostMaintenanceEvent
Веб-перехватчик
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Запрос текста.
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Функция Azure
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Текст запроса
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Создание предварительных и постовых событий в существующей конфигурации обслуживания расписания
Войдите на портал Azure и перейдите в Диспетчер обновлений Azure.
В разделе "Управление" выберите компьютеры, конфигурации обслуживания.
На странице "Конфигурация обслуживания" выберите конфигурацию обслуживания, в которую требуется добавить событие предварительного и последующего выполнения.
На выбранной странице конфигурации обслуживания в разделе "Параметры" выберите "События". Кроме того, в разделе "Обзор" выберите карточку "Создать событие обслуживания".
Выберите +Подписка на события событий, чтобы создать событие предварительного или последующего обслуживания.
На странице "Создание подписки на события" введите следующие сведения:
В разделе "Сведения о подписке на события" укажите соответствующее имя.
Сохраните схему как схему сетки событий.
В разделе "Сведения о разделе разделов" укажите соответствующее имя имени системного раздела.
В разделе "Типы событий" выберите типы событий, которые необходимо отправить в конечную точку или назначение. Можно выбрать событие предварительного обслуживания и событие после обслуживания. Дополнительные сведения о типах событий, характерных для планирования конфигураций обслуживания, см. в статье "Типы событий Azure".
В разделе сведений о конечной точке выберите конечную точку, из которой вы хотите получить ответ.
Выберите "Создать", чтобы настроить события предварительной и публикации в существующем расписании.
$MaintenanceConfigurationResourceId = "/subscriptions/<subId>/resourceGroups/<Resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<Maintenance configuration Name>"
$ResourceGroupForSystemTopic = "<Resource Group for System Topic>"
$SystemTopicName = "<System topic name>"
$TopicType = "Microsoft.Maintenance.MaintenanceConfigurations"
$SystemTopicLocation = "<System topic location>"
# System topic creation
New-AzEventGridSystemTopic -ResourceGroupName $ResourceGroupForSystemTopic -Name $SystemTopicName -Source $MaintenanceConfigurationResourceId -TopicType $TopicType -Location $SystemTopicLocation
# Event subscription creation
$IncludedEventTypes = @("Microsoft.Maintenance.PreMaintenanceEvent")
# Webhook
$EventSubscriptionName = "PreEventWebhook"
$PreEventWebhookEndpoint = "<Webhook URL>"
$dest = New-AzEventGridWebHookEventSubscriptionDestinationObject -EndpointUrl $PreEventWebhookEndpoint
New-AzEventGridSystemTopicEventSubscription -ResourceGroupName $ResourceGroupForSystemTopic -SystemTopicName $SystemTopicName -EventSubscriptionName $EventSubscriptionName -Endpoint $PreEventWebhookEndpoint -IncludedEventType $IncludedEventTypes -Destination $dest
# Azure Function
$dest = New-AzEventGridAzureFunctionEventSubscriptionDestinationObject -ResourceId "<Azure Function Resource Id>"
New-AzEventGridSystemTopicEventSubscription -ResourceGroupName $ResourceGroupForSystemTopic -SystemTopicName $SystemTopicName -EventSubscriptionName $EventSubscriptionName -Destination $dest -IncludedEventType $IncludedEventTypes
SystemTopicName="<System topic name>
ResourceGroupName="<Resource Group for System Topic>"
Source="/subscriptions/<subId>/resourceGroups/<Resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<Maintenance configuration Name>"
TopicType="Microsoft.Maintenance.MaintenanceConfigurations"
Location="<System topic location> "
# System topic creation
az eventgrid system-topic create --name $SystemTopicName --resource-group $ResourceGroupName --source $Source --topic-type $TopicType --location $Location
# Event subscription creation
IncludedEventTypes='("Microsoft.Maintenance.PreMaintenanceEvent")'
# Webhook
az eventgrid system-topic event-subscription create --name "<Event subscription name>" --resource-group $ResourceGroupName --system-topic-name $SystemTopicName --endpoint-type webhook --endpoint "<webhook URL>" --included-event-types IncludedEventTypes
# Azure Function
az eventgrid system-topic event-subscription create –name "<Event subscription name>" --resource-group $ResourceGroupName --system-topic-name $SystemTopicName --endpoint-type azurefunction --endpoint "<Azure Function ResourceId>" --included-event-types IncludedEventTypes
# Создание системного раздела
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Запрос текста.
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Создание подписки на события подробнее
Допустимые типы событий — Microsoft.Maintenance.PreMaintenanceEvent, Microsoft.Maintenance.PostMaintenanceEvent
Веб-перехватчик
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Запрос текста.
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Функция Azure
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Текст запроса
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Следующие шаги
- Общие сведения о событиях предварительной и публикации в Диспетчере обновлений Azure см . здесь.
- Чтобы узнать, как управлять событиями предварительной и публикации или отменять выполнение расписания, см . сведения о событиях конфигурации предварительного и последующего обслуживания.
- Чтобы узнать, как использовать предварительные и постовые события для включения и отключения виртуальных машин с помощью веб-перехватчиков, см . здесь.
- Чтобы узнать, как использовать предварительные и публикации событий для включения и отключения виртуальных машин с помощью Функции Azure, см. здесь.