Aplica-se a: ✔️ VMs do Windows ✔️ VMs do Linux ✔️ Ambiente local ✔️ VMs do Azure ✔️ Servidores habilitados para Azure Arc ✔️ VMs do Azure.
Os pré e pós-eventos permitem que você execute as ações definidas pelo usuário antes e depois da configuração de manutenção agendada. Para obter mais informações, confira o funcionamento de um pré e pós-evento no Gerenciador de Atualizações do Azure.
Este artigo descreve como criar pré e pós-eventos no Gerenciador de Atualizações do Azure.
Grade de Eventos em configurações de manutenção de agendamento
O Gerenciador de Atualizações do Azure tira proveito da Grade de Eventos para criar e gerenciar os eventos pré e pós. Para obter mais informações, confira a visão geral da Grade de Eventos. Para disparar um evento antes ou depois de uma janela de manutenção de agendamento, você precisará do seguinte:
-
Configuração de manutenção agendada - Você pode criar pré e pós-eventos para uma configuração de manutenção agendada no Gerenciador de Atualizações do Azure. Para obter mais informações, confira agendar atualizações usando as configurações de manutenção.
-
Ação a ser realizada antes e após eventos – Você pode usar os Manipuladores de eventos (pontos de extremidade) compatíveis com a Grade de Eventos para definir ações ou tarefas. Aqui estão exemplos de como criar Runbooks de Automação do Azure por meio de Webhooks e Azure Functions. Dentro desses Manipuladores de eventos/Pontos de extremidade, você deve definir as ações que devem ser executadas como parte de pré e pós-eventos.
-
Webhook - Criar um runbook do PowerShell 7.2 e vincular o runbook a um webhook.
-
Azure Function - Criar um Azure Function.
-
Pré e pós-evento – Você pode seguir as etapas compartilhadas na seção a seguir para criar um pré e pós-evento para a configuração de manutenção de agendamento. Para saber mais sobre os termos usados na guia Básico da Grade de Eventos, consulte os termos da Grade de Eventos.
Criar um evento pré e pós
Criar pré e pós-eventos ao criar uma nova configuração de manutenção de agendamento
Entre no portal do Azure e vá para Azure Update Manager.
Em Gerenciar, selecione Computadores.
Selecione Agendar atualizações na faixa de opções na parte superior.
Na página Criar uma configuração de manutenção, selecione a guia Eventos.
Selecione +Assinatura de evento para criar pré/pós-evento.
Na página Adicionar assinatura de evento, insira os seguintes detalhes: na seção Detalhes da assinatura de evento, forneça um nome apropriado.
- Mantenha o esquema como Esquema da Grade de Eventos.
- Insira o Nome do tópico do sistema para o primeiro evento que você criar nesta configuração de manutenção. O mesmo nome do tópico do sistema será preenchido automaticamente para os eventos consequentes.
- Na seção Tipos de eventos, Filtrar para tipos de eventos, selecione os tipos de eventos que você deseja enviar para o ponto de extremidade ou destino. Você pode selecionar Pré-evento de manutenção ou Pós-evento de manutenção ou ambos. Para saber mais sobre os tipos de eventos específicos para configurações de manutenção de agendamento, consulte Tipos de eventos do Azure.
- Na seção Detalhes do ponto de extremidade, selecione o ponto de extremidade de onde você deseja receber a resposta.
Selecione Adicionar para criar pré e pós-eventos para o agendamento após sua criação.
Observação
No fluxo acima, o Webhook e o Azure Functions são os dois manipuladores/pontos de extremidade de eventos que você pode escolher. Quando você seleciona Adicionar, a assinatura do evento não é criada, mas adicionada à configuração de manutenção. A assinatura do evento é criada junto com a configuração de manutenção de agendamento.
Crie uma configuração de manutenção seguindo as etapas listadas aqui.
-
# 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
Crie uma configuração de manutenção seguindo as etapas listadas aqui.
-
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
Crie uma configuração de manutenção seguindo as etapas listadas aqui.
# Criação de tópicos do sistema Saiba mais
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Corpo da solicitação:
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Criação de assinatura do evento Saiba mais
Tipos de eventos permitidos – Microsoft.Maintenance.PreMaintenanceEvent, Microsoft.Maintenance.PostMaintenanceEvent
Webhook
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Corpo da solicitação:
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Função do 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
Corpo da solicitação
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Criar pré e pós-eventos em uma configuração de manutenção de agendamento existente
Entre no portal do Azure e vá para Azure Update Manager.
Em Gerenciar, selecione Máquinas, Configurações de Manutenção.
Na página Configuração de manutenção, selecione a configuração de manutenção à qual você deseja adicionar um pré e pós-evento.
Na página Configuração de manutenção selecionada, em Configurações, selecione Eventos. Alternativamente, em Visão geral, selecione o cartão Criar um evento de manutenção.
Selecione +Assinatura de evento para criar um evento de pré/pós-manutenção.
Na página Criar assinatura de evento, insira os seguintes detalhes:
Na seção Detalhes da assinatura do evento, forneça um nome apropriado.
Mantenha o esquema como Esquema da Grade de Eventos.
Na seção Detalhes do tópico, forneça um nome apropriado para o Nome do tópico do sistema.
Na seção Tipos de eventos, Filtrar para tipos de eventos, selecione os tipos de eventos que você deseja enviar para o ponto de extremidade ou destino. Você pode selecionar entre Evento de Pré-Manutenção e Evento de Pós-Manutenção. Para saber mais sobre os tipos de eventos específicos para configurações de manutenção de agendamento, consulte Tipos de eventos do Azure.
Na seção Detalhes do ponto de extremidade, selecione o ponto de extremidade de onde você deseja receber a resposta.
Selecione Criar para configurar os eventos pré e pós em uma programação existente.
$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
# Criação de tópicos do sistema Saiba mais
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Corpo da solicitação:
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Criação de assinatura do evento Saiba mais
Tipos de eventos permitidos – Microsoft.Maintenance.PreMaintenanceEvent, Microsoft.Maintenance.PostMaintenanceEvent
Webhook
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Corpo da solicitação:
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Função do 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
Corpo da solicitação
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Próximas etapas
- Para obter uma visão geral dos eventos pré e pós no Gerenciador de Atualizações do Azure, consulte aqui.
- Para saber mais sobre como gerenciar pré e pós-eventos ou cancelar uma execução de agendamento, consulte pré e pós-eventos de configuração de manutenção.
- Para saber como usar pré e pós-eventos para ativar e desativar suas VMs usando Webhooks, consulte aqui.
- Para saber como usar pré e pós-eventos para ativar e desativar suas VMs usando o Azure Functions, consulte aqui.